The playback is the show.
Cuelists with fade, snap, follow and per-cue effects (∿N). Fader wing, Grand Master, Programmer Time, Speed Masters, and a Fixed Look slot. ⚑ Prep for a dark opener. GO is always human.
Tell DORAH what the song needs. It patches the rig, builds the presets, writes the cues and the effects — and what leaves the desk is standards-compliant sACN and Art-Net, at stadium scale. Optional Guard tools can lock a certified look for venue work — off by default on normal events. Nothing hits the stage until you press GO.
sACN E1.31 · Art-Net · GDTF · MVR · NDI · SMPTE LTC
Forty times a second the console rebuilds the whole universe set from layers. Bottom layers are creative (playback, programmer, effects). Top layers are venue and safety. Whoever is higher wins on those fixtures. That is the whole story — said simply, then in order.
Creative layers write freely. AI stores in blind. Nothing leaves the programmer onto the stage until you GO or arm. Guest and House stay off unless you turn them on. Same desk for a club night or a tour.
You bake a full look (dimmer, position, colour…). While locked, that look wins after everything creative. Unlock restores the live show underneath — no blackout, no forced re-GO. CLI: secure on/off.
If Fixed Look sat under FX, an effect could still move a “locked” head. By applying it after guest and facility, the certified look is the last creative word before hard safety — and safety still cannot silently kill the field unless you configure override.
No black box between cue and cable: merge → layers → resolve → UDP. The Network page shows the same tick numbers FOH watches. Backup stations can seize output by sACN priority mid-song.
The conversation is the command line. Every request becomes real programming — presets, cuelists, effects — and every reply is a verifiable change on the cue sheet. Never a mystery, never a black box.
Three real exchanges on a loop: the ✓ lines are the exact feedback DORAH prints — everything lands in blind until your GO.
Fixed-rate engine, two standard protocols, a backup already running. The console shows its own vital signs — this bench lives on Network.
NETWORK ▸ BENCH REALTIME · same numbers FOH watches
Production output engine · packets counted at the receiver · 100% reception verified · Mac mini M4 (10-core), Node 24. Live show vs synthetic limit, kept apart on purpose.
| Rig | Universes | Cost per 25 ms tick | Reception | Bandwidth |
|---|---|---|---|---|
| Stadium show — live · 388 fixtures | 70 | 5.7 ms med · 7.4 P95 · 23% | full show, zero incidents | — |
| 1,000 heads × 50 ch bench | 100 | 0.85 ms · 3.4% | 100% · 40.2 Hz | 21 Mbit/s |
| 1,000 heads × 100 ch bench | 200 | 1.32 ms · 5.3% | 100% · 40.3 Hz | 41 Mbit/s |
| 4,000 fixtures × 40 ch bench | 334 | 2.74 ms · 11.0% | 100% · 40.2 Hz | 69 Mbit/s |
| Output engine alone 8 workers | 4,000 | 0.70 ms · 2.8% | 640k / 640k packets | 819 Mbit/s |
Full pipeline rows: merge + 2 FX on every fixture + resolver + real sACN. Green row = the live show. scripts/bench-network.js · M4 · 2026-07-24. Ceiling ~7,700 uni/tick single-thread; past gigabit → 10GbE or session shard.
The rail is not a flat dump of every page. Work is grouped the way a show is run. Screenshots below are from the real stadium showfile — 388 fixtures · 70 universes · summer 2026.
▶ Hub · Show
Everything that runs the live show: cuelists, tracking sheet, setlist and audio analysis.
Cuelists with fade, snap, follow and per-cue effects (∿N). Fader wing, Grand Master, Programmer Time, Speed Masters, and a Fixed Look slot. ⚑ Prep for a dark opener. GO is always human.
Inventory of every sequence: create empty lists, open any in Playback, assign to an executor slot. Store still happens from the programmer — this page is the bank.
Pick sequence and cue, read fixtures as rows — presets and values, ◂N where content inherits. The human check after the AI has written.
Song sections on timecode: click a row, the show jumps there. Import cue points from your editor’s TSV; live offsets shift a whole song.
Offline stems and onsets; each lane has a threshold; regions fire bumps on executors, quantized to the beat.
◧ Hub · Prog
What you select and what you store into — the programming pools.
Hardware-style cells with identity light-bars, appearance colours, batch edit. Sub-fixture groups address single cells of multi-instance machines.
Dimmer steps, colours, positions, gobos — built and filled by the AI. Recall is one tap; store is an armed two-step gesture.
Base pools, dimmer fill, pan patterns across a truss, copy families between fixture types. Quick effects on the selection for the FX pool.
∿ Hub · FX
BPM engines, per-cuelist FX bank, pixel mapping and the 3D / Palette tabs.
Four engines as tabs — Live, Table, 3D, Palette — one shared ∿ pool. Per-cell G/S: selection or group-bound.
Per-cuelist motorized fader bank. Raise to enter a cue, track until pulled down. Link to a Speed Master for one BPM clock.
Clip import or NDI live through UV maps from the real layout. Plates and bulbs as pixels; floor held so video never kills the show.
Waves on true 3D positions: planes, radials, width — all in BPM. Store with a ⬢ badge; rides cues like any other effect.
Sequence any colour presets across the selection. Xfade from hard bands to gradient. Preset-first: fix the colour, every palette follows.
⌗ Hub · Rig
GDTF fixtures and the MVR geometry the programmer trusts.
Fixtures (GDTF, auto-address, pan/tilt invert), Fixture Setup, Builder — by hand or described to the AI.
MVR geometry — trusses, towers, floor. Select by click or marquee, down to a single cell of a multi-instance machine.
◎ Hub · Guard
Fixed Look, look pool, house, emergency, guest sACN and the ops Desk. Cold on a normal event until you open them.
Bake a full look (stage, programmer, cue or pool). While ON, AI, FX, guest, facility and playback cannot change those fixtures. Unlock restores the live stack — no blackout. CLI: secure.
Store complete looks (opening, half-time, finale). Desk fires them as large pads; promote any pad into Fixed Look memory.
House / Eco for walk-in and service. They yield to Fixed Look. Optional on normal events.
Hard modes with confirm. With Fixed Look ON, panic by default does not black locked fixtures (field integrity). Override is explicit config.
Arm when another desk must feed selected universes. Merges outside Fixed Look scope. Default: disarmed.
Pool pads = instant GO. House, Fixed Look, Panic, Freeze, Evac, Clear = small keys with confirm. Full-screen for a security monitor.
⚙ Hub · Sys
Session, machine settings (including language), keyboard/MIDI maps and autonomous pipelines.
Master/backup by multicast; backup seizes output mid-song by sACN priority. Realtime bench on the page — the same numbers as above.
Timecode, audio, outputs, density. Italiano | English on the machine, not in the show. Tabs: Shortcut, MIDI, Visualizer.
Drawn key by key. Learn: arm LS, click target, press key. Letters write keywords — S 5 ⏎ is store 5. Space stays GO.
Same keymap as the keyboard (LM learn). X-Touch motor echo; APC LED feedback paints pads from live state — semantic colours.
Study, program, prep, doctor — one key each, in blind. Touched chips, diff, full-run rollback. AI never toggles Fixed Look or emergency by default.
Every irreversible gesture is two-step: first press arms (yellow), second fires. Store, update, delete, blackout. The AI writes in blind and can never arm the stage by itself.
Rack banners always name the state: Blind, Solo, Highlight, Fixed Look, guest, session. ⟲ Oops holds the last fifty gestures — human and AI — and undoes to any point. Venue stays optional: Guard can stay cold on a normal tour.
Try it. This one is safe here.
Battle-tested where it counts: one stadium stage, 388 fixtures, 70 universes, zero incidents. byte-level output · full show, live audience · summer 2026
Private development, limited beta ahead. One email — who you are and what you light.