What is RFX Effects?
RFX Effects is an animation engine for props and costumes — proton packs, gauntlets, helmets, badges, anything with lights, a screen, or a speaker. It runs on small ESP32-class boards and coordinates everything in real time: LED strips, LCD panels, sound playback, buttons, and the logic that ties them together.
The core idea: your whole show lives in one file, show.json. You flash the
firmware once. After that, the firmware never changes — the JSON is your program.
Change a color, add a button behavior, rewrite the entire state machine: just edit
the file and reload. No compiler, no reflashing.
What a show looks like
Section titled “What a show looks like”A show declares your hardware, then describes behavior declaratively. Here’s the heart of a “tap a button to toggle a rainbow” prop:
"scripts": { "idle": { // a looping background look "loop": true, "children": [ { "comet": "@strip", "color": "hsv(time*0.1, 1, 1)", "lapSec": 2.0, "tail": 6, "loop": true } ] }},"states": { // the brain: when X happens, do Y "initial": "Off", "Off": { "on": { "go.tapped": "On" } }, "On": { "enter": [ { "start": "idle" } ], "exit": [ { "stop": "idle" } ], "on": { "go.tapped": "Off" } }}You describe what things are and when things happen; the engine handles the frame-by-frame animation, timing, audio mixing, and looping. Speed and intensity cascade down the tree — slow a script down and everything inside it, including audio pitch, slows with it.
What it runs on
Section titled “What it runs on”RFX Effects supports 11 boards, from a bare ESP32 devkit up to boards with built-in screens, audio, and SD storage — plus a desktop target so you can build shows with no hardware at all. See the board lineup for the full comparison.
Two ways to deploy
Section titled “Two ways to deploy”Each device is set up for one of two update modes. Standalone (the default)
updates over WiFi: open the device’s web page and upload new firmware from the
Files tab — no cable needed. Loader mode needs no WiFi at all: the device
exposes a USB drive, and you update by dragging a firmware.uf2 file onto it,
with automatic recovery if a bad image ever crash-loops. Either way, show.json
itself is just a file on the device — editing your show never requires a firmware
update in the first place.
The web dashboard
Section titled “The web dashboard”Every device serves its own dashboard over WiFi (at http://<name>.local/ or its
IP). From it you can:
- Press virtual buttons. Inputs without a physical pin show up as buttons on the dashboard — buttons light up only in states that respond to them.
- Edit files live. The Files tab lets you edit
show.json, upload sounds and fonts, and flash new firmware. - Check your work. Saving a show gives you an instant pass/fail validation banner, with the full report in the Console. A show with errors is rejected and the device keeps running the last good one — you can’t brick your prop with a typo.
Preview on your desk
Section titled “Preview on your desk”The same engine runs as a desktop preview: a browser-based visualizer with the
same dashboard, virtual buttons, and a live view of your LED strips and screens.
Edits to show.json hot-reload instantly. It’s the fastest way to write a show —
build the whole thing on your computer, then copy it to the prop. See the
desktop target for details.
Where to go next
Section titled “Where to go next”- Understand the model — How it works: devices, inputs, scripts, and states in ten minutes.
- Pick hardware — Choose a board for your prop’s lights, screen, and sound needs.
- Get a device running — Quickstart: Standalone or Quickstart: Loader.
- Write something — Your first show, a 15-minute hands-on tutorial.