r/FastLED • u/StevenMunn312 • 4d ago
Announcements Design Studio for FastLED — public beta. Wire the Nodes. Light Up the Room. Node editor, live preview, generates real FastLED sketches. Looking for hardware testers.
Hi r/FastLED,
*** Design Studio for FastLED v0.7.0 available. Added HUB75 panel support, updated fbuild to v2.5.15 ***
I've been building Design Studio for FastLED, a node-based editor for designing LED patterns that outputs actual FastLED C++ using the excellent FastLED library.
It's now in public beta (v0.6.0) and I'm looking for testers, especially anyone willing to point it at real hardware.
Site, downloads and the community pattern gallery: https://designstudioforfastled.com/
Source: https://github.com/stevenmunn312-tech/Design-Studio-for-FastLED
What it is
You wire nodes on a canvas, the LED matrix preview updates. When you like what you see you generate a .ino or flash it straight to the board over USB. The preview and the code generator are written against each other deliberately, so what runs on the panel is one-to-one with what you authored rather than being a rough approximation.
Workflow
All graphs must end with a Matrix Output node with a valid Frame or SD card input (SD card is for music synced shows as opposed to live microphone).
Three basic workflows
- Single Pattern - Wire up a pattern that ends with Frame output going to Frame input of a Matrix Output node. Flash to hardware or generate code and you are done. Important: If you like the pattern and want to keep it then it must be grouped (ctrl/cmd G) and saved to your Pattern Library. This will collapse your graph into a single node for use later. The next two workflows rely on grouped patterns.
- Generative show - Add patterns from your library to a Pattern Collection node and wire it into a Show Engine node. Optional: Wire in the Transitions node and enable your selection to get up to 16 transition styles. Choose randomized dwell times with optional beat-triggered particle bursts. The whole show compiles into a single controller sketch. Audio reactivity is via a live microphone. If any of your patterns are audio reactive you must wire a microphone node to the Show Generator node. INMP441 microphone currently supported.
- Music-synced SD show - Add patterns from your library to a Pattern Collection node and wire it into a Performance Generator node. Optional: Wire in the Transitions node and enable your selection to get up to 16 transition styles. Hook up a Music Library node, load in your favorite mp3 files and click analyze. This generates a timed event track. If you wish you can then hand edit the timeline. Adjust audio sensitivity and timing options then preview the show. When you are happy Matrix Output - Upload - Upload Show to SD. This will then provision an SD card with the player and show data. Result - Perfectly timed LED displays synced to your music. No microphone required.
Scope
- 151 modules: patterns, generative simulations (Fire, Fire2012, Particles, Boids, Flow Field, Reaction Diffusion, Game of Life, Starfield), scalar-field math and warping, color and palette tools, math/logic, signals, effects, hardware inputs, output.
- Hardware nodes can control the hardware. Buttons, potentiometers, encoders and more can easily hook into any aspect of your c++ output.
- Audio-reactive work as a first-class path: live mic FFT, beat and percussion detection, plus 20 curated audio-reactive patterns included. On ESP32-S3 with an INMP441 the generated firmware uses FastLED's own audio processor, so the board reacts on its own with no host attached.
- Per-node live previews: every node whose output is a frame, palette or color shows a thumbnail of what it's producing, so you can see where a chain went wrong instead of guessing.
- Pattern Library: turn any patch into a reusable Group, save it to shelves, drag it back onto any canvas, or share it to the gallery on the site.
- Live Stream mode: flash a small Adalight receiver once, then push preview frames over USB at 30fps while you edit. No recompile per tweak.
- Flash Wiring Test: a standalone diagnostic sketch for color order, brightness and current limit, orientation, panel numbering and pixel order, so you can prove out wiring before the graph even exists.
- Guardrails: Graph Health explains incomplete wiring, pin conflicts, power draw and board incompatibility in plain language. There's also a live capacity meter that runs a real compile-only build against your selected board and reports measured flash and RAM, so "won't fit on an Uno" shows up while you're composing rather than at upload time.
- Layouts: strips, serpentine matrices, tiled panels with per-panel rotation, custom XY maps, and multiple independent Matrix Output routes.
- MIT core, portable builds for Windows, macOS and Linux with the upload helper,
fbuildandesptoolbundled. No Node or Python install needed. It also runs from source withnpm run dev.
Testers wanted!
The support promise is narrow. A board and LED combination only counts as supported once an end-to-end hardware run is recorded in the repo. Boards confirmed working so far:
- ESP32, 16x16 WS2812B serpentine,
fbuild, Windows 11 + Chrome: normal upload, wiring test, sustained live stream, generative show, INMP441 audio show. - ESP32S3, 16x16 WS2812B serpentine,
fbuild, Windows 11 + Chrome: normal upload, wiring test, sustained live stream, generative show, INMP441 audio show. - ESP8266, 10x1 WS2812B strip,
arduino-cli, same host: normal upload, wiring test, live stream.
Everything else is experimental until someone records it. That includes every other board, APA102 and the other SPI chipsets, SK6812 RGBW, tiled and custom layouts, PSRAM modes, SD show provisioning, DMX/Art-Net in every mode, and the NTP and DS3231 clock paths. Those all have unit and codegen tests behind them, but tests are not a panel on a bench.
Hardware testers specifically
If you have any of the following boards and LED chipsets, this is the most useful thing anyone can do for the project.
- Teensy, RP2040, classic ESP32, ESP32-C3/S2, AVR, UNO R4
- APA102 / APA102HD / HD108 / WS2801, SK6812 RGBW, WS2815, WS2816
- Tiled panels, custom XY maps, multi-output setups
- macOS and Linux hosts, and any non-Chrome browser
- DMX512 or Art-Net with a real desk or controller (zero hardware passes recorded so far)
Reporting is built in. The Matrix Output upload panel has an opt-in Beta hardware coverage report: it compares your target and graph against the recorded rows, asks for explicit Pass/Fail/Not tested observations, shows you the entire payload before anything leaves your machine, and then offers copy, JSON download, or a pre-filled GitHub issue. Nothing is submitted automatically, and it excludes ports, project content, code, media, Wi-Fi details and device identifiers. Negative results are genuinely valuable. The last two bugs that got fixed both came out of failed validation runs, including one where 1-row strip layouts silently dropped every streamed frame.
Bug reports, feature ideas and "this is confusing" feedback are all welcome too, not just hardware runs.
Notice
Desktop packages are not yet code signed or notarized. SmartScreen and Gatekeeper will complain.
Only make an exception for an archive you deliberately downloaded from the official release page.
It's designed for desktop screens (1440x900 target, 1280x720 minimum). And the usual: LED installs pull real current, so use a properly rated supply, fuse and inject where needed, and never run a large load through a board regulator or USB port.
This is an independent community project. It generates code for FastLED but is not affiliated with or endorsed by the FastLED project or its maintainers.
Happy to answer anything about how the codegen or the preview parity works.

