Vision: what shuffle_engine makes possible
Ten capabilities that applications built on shuffle_engine can offer. (For what the framework offers to the people and AI agents who build those applications, see vibe-coding.md.) They are not features bolted on top: each one falls out of the architecture (pure deterministic cores, one command path, explicit time, ports) and the modules that support it are in the module catalogue.
| # | Capability | What it gives a performer or an operator | Built on |
|---|---|---|---|
| 1 | Show flight recorder | Every command, input and device event recorded with absolute time; replay the whole show offline; “what happened at 01:12:03?” has an exact answer; recorded shows become regression tests. | commands (recorder), time — 0010 |
| 2 | Show linter and simulator | “Compile” a show before going on stage: overlapping cues, abrupt tempo jumps, untranscoded video, silent monitor feeds, messages to devices that are not there. A fast simulation runs the whole show in seconds without audio. | commands (replay), every domain’s validation |
| 3 | Cues anchored to music | “Two bars before the second chorus” instead of “1:34.200”: lights, video, lyrics and timecode follow when the arrangement or the tempo changes; orphaned cues are reported, never moved silently. | time — 0009 |
| 4 | Live re-arrangement | Repeat a chorus, skip a bridge, extend an ending during the show, from a pedal, a gesture or the voice; jumps are quantised musically and everything else follows. Backing tracks behave like a band. | time (quantised boundaries, jump plans), setlist |
| 5 | Hot-standby twin | Two machines play the same show from the same command stream and the same start instant; if one fails, the other takes over without a gap. | time (start at a shared instant), commands, redundancy, netaudio — 0014 |
| 6 | Rig admission check | Every module knows its measured cost; before the show the framework says whether this device can run this show, and with what margin. | [bench] measurements, module budgets |
| 7 | Personal distributed rig | Each musician opens the show on a phone and gets their own view: their monitor mix, their lyrics and chords, the click, the next section, all locked to the master clock. | remote, generated protocol surfaces — 0011 |
| 8 | Self-healing show | Every dependency has a declared fallback; a lost interface, MIDI port or video decoder never stops the music; fault injection proves it on every commit. | resilience — 0012 |
| 9 | Show programming in words | “When the chorus starts, lights red and program change 5 to the pedalboard” becomes visible, previewed, testable cues; a small local model is enough. | commands, assistant — 0008 |
| 10 | Open, git-native show format | Shows are versioned structured text with a semantic diff (“moved Song B after Intro, click −3 dB”) and merge across band members, published as an open specification so shows move between applications. | package, commands |
Capabilities 1, 3 and 8 are foundations: the time model, the recorder and
the degradation rules are designed in from the start. The others build on
them without changing the architecture.
© 2026 Umberto Sorbo. The software is licensed under the Apache License, Version 2.0, and provided “as is”, without warranties or conditions of any kind; see the disclaimer.
SHUFFLE Framework and the SHUFFLE Framework logo are trademarks of Umberto Sorbo; the licence grants no rights to them (trademarks). Other names belong to their owners. Fonts: IBM Plex Sans and JetBrains Mono, SIL Open Font License 1.1.
Contact: shuffleframework@gmail.com · Instagram @shuffleframework. Security problems: write to the same address with “Security” in the subject, not in a public issue.