Files
WLED_MM_Infinity/docs/rfp-local-visualizer.md
jan 4bc4e1257e
Some checks failed
WLED CI / wled_build (push) Has been cancelled
Deploy Nightly / wled_build (push) Has been cancelled
Deploy Nightly / Deploy nightly (push) Has been cancelled
Backup RFP Infinity controller state before Resolume changes
2026-05-14 12:31:13 +02:00

85 lines
2.5 KiB
Markdown

# RFP Local Infinity Visualizer
This visualizer runs on the laptop and uses the master only as a JSON source.
It is the preferred development tool when you only have the master controller
available and want to simulate the six render nodes.
## Layout
The visualizer mirrors the physical installation:
- `6` columns are the six ESP nodes, left to right: `ESP1` to `ESP6`
- `3` rows are the three outputs per ESP
- top row: `UART6`
- middle row: `UART5`
- bottom row: `UART4`
- each output is drawn as one square frame with `106` LEDs
- LED order per frame follows the drawing: top edge left-to-right, right edge
top-to-bottom, bottom edge right-to-left, left edge bottom-to-top
- edge split is `25` LEDs on top, `27` LEDs right, `27` LEDs bottom,
`27` LEDs left
## Start
```bash
cd /home/jan/Documents/RFP/WLED-MM/repo
.venv/bin/python tools/infinity_visualizer_server.py \
--master 10.42.0.213 \
--port 8765
```
Open the URL printed by the tool, normally:
```text
http://127.0.0.1:8765/?master=10.42.0.213
```
If port `8765` is already in use, the tool automatically tries the next free
port and prints that URL instead, for example:
```text
Port 8765 is busy, using 8766 instead.
Infinity visualizer: http://127.0.0.1:8766/?master=10.42.0.213
```
## Why Local
The ESP32 master webserver should stay focused on WLED and Infinity control.
The local visualizer avoids loading extra HTML, JavaScript, canvas rendering,
or polling logic from the ESP itself.
The local server proxies:
```text
http://10.42.0.213/json/infinity
```
to:
```text
http://127.0.0.1:8765/api/infinity
```
This also avoids browser CORS issues.
## Controls
- `Master IP`: change the master target without restarting the server
- `Connect`: fetch state immediately
- `Pause`: freeze polling and animation
- `Master UI`: open the master `/infinity` page
## Notes
- This is not yet a bit-exact WLED renderer. It reads `/json/eff` from the
master and maps effect names to browser preview classes.
- Currently supported preview classes include `Solid`, `Blink`, `Strobe`,
`Breathe/Fade`, `Wipe`, `Scan`, `Chase/Running/Theater`, `Rainbow/Colorloop`,
`Fire`, `Twinkle/Sparkle/Glitter`, and `Noise/Plasma/Waves/Ripple`.
- Unknown effects are shown as a generic moving color blend so they remain
visible while we decide which effects need exact custom previews.
- It is a lightweight development preview for scene state, colors, row dimmers,
effect IDs, brightness, and virtual node layout.
- The simulated layout is six nodes, each with three rows and 106 LEDs.