DORAH

The lighting console you program by talking.

Tell it what the song needs: it patches the rig, builds the presets, writes the cues and the effects, and you check every change on the cue sheet. Nothing hits the stage until you press GO.

Join the waitlist See it in action ↓ one email · no forms, no tracking
PLAYBACKPezzali Stadi 10_07_2026 · live

sACN E1.31 · Art-Net · GDTF · MVR · NDI · SMPTE LTC

You talk. It programs. You verify.

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.

✳ DORAH AI bridge connected · GM 100%
Operator Chorus: white strobe bump on the back trusses, and keep the amber floor from the verse.
DORAH AI Done — ✓ store cue 7 «CHORUS» --fade 0.5 — strobe bump on 46 spots, amber floor held. It's in blind: review it, then GO.

Three real exchanges on a loop: the lines are the exact feedback DORAH prints — everything lands in blind until your GO.

AISys · pipelines on keys
The same conversation lives inside the desk: one key studies the song, one programs it — always in blind, always on the sheet.

Five minutes in.

What actually changes at the desk, from the first soundcheck on.

The patch builds itself while you describe it.

Name the machines, the trusses, the universes — the patch fills up with GDTF profiles, addresses, footprints. You read the table, not the manual.

Detail of the DORAH patch table: GDTF fixtures grouped by type with universe, address and footprint

Cues you can audit, not just trust.

Every cue the AI writes lands on the tracking sheet — fixtures as rows, presets and values in the open. You spot a mistake before the audience does.

Detail of the tracking sheet: the cue list with cue 7 CHORUS selected, fixture counts per cue

Effects in BPM, not in code.

Ask for a slow amber wave at 60 BPM and it runs. Shape, rate and size stay on sliders you can grab — stored, it rides the cues.

Detail of the live effects engine: a sine wave at 60 BPM with size, phase and wing sliders

GO stays a human finger.

The AI writes everything, arms nothing. The stage changes only on your GO — and the emergency keys are one gesture away, with confirm.

Detail of the Playback view: the cue sheet with the green GO key in standby and the masters column

Six hubs. One desk.

Work is grouped the way a show is run. Every screenshot below is the real stadium showfile — 388 fixtures · 70 universes · summer 2026. Click any image to open it full size.

Show — playback, time, the song

Cuelists, the tracking sheet, the setlist on timecode, audio bumps: everything that runs the night.

CUELISTShow · every sequence, live state

Prog — groups, presets, tools

The pools you select from and store into — filled by the AI, laid out like keycaps.

PRESETProg · pools per machine type

FX — motion, video, space, colour

Four BPM engines, a per-cuelist fader bank, pixel mapping from the real layout.

EFFECTS · 3DFX · spatial engine, 60 BPM

Rig — patch and layout

GDTF fixtures and the MVR geometry the whole desk trusts.

LAYOUTRig · MVR geometry, 388 fixtures

Guard — the venue tier, off by default

Fixed Look, look pool, house, emergency, guest input and the ops Desk: cold on a normal event until you open them.

FIXED LOOKGuard · bake + lock

Sys — network, setup, AI

Session and backup, machine settings, keyboard and MIDI maps, autonomous pipelines.

SHORTCUTSys · the keyboard is the front panel

The AI programs.
Only you arm.

Every irreversible gesture is two-step: first press arms (yellow), second fires. The AI writes in blind and can never arm the stage by itself.

Rack banners always name the state — Blind, Solo, Fixed Look, guest — and ⟲ Oops undoes the last fifty gestures, human and AI, to any point.

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

The numbers, for those who want them

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. This bench lives on the Network page — the same numbers FOH watches.

RigUniversesCost per 25 ms tickReceptionBandwidth
Stadium show — live · 388 fixtures705.7 ms med · 7.4 P95 · 23%full show, zero incidents
1,000 heads × 50 ch bench1000.85 ms · 3.4%100% · 40.2 Hz21 Mbit/s
1,000 heads × 100 ch bench2001.32 ms · 5.3%100% · 40.3 Hz41 Mbit/s
4,000 fixtures × 40 ch bench3342.74 ms · 11.0%100% · 40.2 Hz69 Mbit/s
Output engine alone 8 workers4,0000.70 ms · 2.8%640k / 640k packets819 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 tick 25 ms
Rebuild every universe 40×/s through the layer stack. Template packer ~0.12 µs per universe; optional parallel workers when the count grows.
The wire
sACN E1.31 (identity, priority, sequence, clean end-of-stream) and Art-Net with compliant ArtPoll/ArtPollReply. No ghost sources.
The backup
DORAH-Net: stations elect master/backup; backup seizes output mid-song by sACN priority. Universes can shard across stations.
How the signal is built

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.

Normal event · Fixed Look off

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.

Venue · Fixed Look on

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.

Why this order

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.

What is not magic

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.

Bake, not live-ref
Fixed Look freezes absolute channel values (0…1) at lock time. Changing a preset under the desk does not move a locked fixture — you would have to unlock, edit, bake again.
Blind ≠ Fixed Look ≠ panic
Blind hides programmer/FX from the stage while you work. Fixed Look holds a certified look on. Panic is hard safety — and by default respects the lock.
AI bounds
The AI may program looks and even help prepare a bake path, but by default it cannot toggle Fixed Look or emergency. Arming the field stays human.

Be there when the desk lights up.

Private beta ahead, on macOS with Apple Silicon. One email — who you are and what you light — and you're on the list.

Join the waitlist private beta 2026 · macOS · Apple Silicon