# 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.