The approved Showhub design language — graphite + chrome liquid glass with a single electric-blue accent, Space Grotesk + Space Mono. Every surface below shares one material and one token set (tokens.css). All graphics follow this style.
Six faces of one appliance — operator, guests, and the big screen, all cut from the same glass.
Staff touchscreen — pick a show, now/next
Interactive — queue → pick → name → confirm
Crowd screen — lyric wipe, visualiser, QR
Guest phone — Now / Queue / Play / You
Idle crowd display — modules, scan-to-join
Fleet + analytics dashboard (calmer surface)
The mark, lockups, colourways, boot screen, operator terminal + media-server box
Tokens · type scale · the glass recipe · components · motion · accessibility (see also tokens.css)
Solo beat-the-deck card game wired to the real, deterministic @playbox/core engine. Open all three in separate tabs — they sync live (operator drives, screen + phones mirror).
Host touchscreen — call higher/lower, odds, streak, lives, new deck
1920×1080 crowd display — big card flip, hero streak, bust / cleared
Guest phone — lock higher/lower, your own streak & score
Multi-object tracking, team vs team. Identical orbs appear, a few flash as "the loot", then everything scrambles — at FREEZE each team picks the loot. Selectable difficulty (Chill → Insane) and orbs that keep their spacing. Wired to the deterministic @playbox/core engine; open all three in separate tabs to sync.
Host drives rounds — tag → scramble → freeze → reveal, assign team picks, scoreboard
1920×1080 — glowing orbs scramble, Red vs Blue, cinematic reveal
Guest phone — join a team, tap the loot at freeze
Solo trivia climb — 10 escalating rungs, safety rungs, walk-away, and two lifelines (50:50 + ask-the-audience, a live phone vote). The on-stage contestant uses no phone; the host taps their call. Wired to the deterministic @playbox/core LadderGame + AudienceVote engine.
Reads the question, locks the contestant's call, runs lifelines + walk-away, prize ladder
1920×1080 — question, climbing prize ladder, dramatic reveal, live audience vote bars
Guest phone — answer for your own streak; your tap is the ask-the-audience vote
Guests tap an NFC wristband on a stage reader and their name reveals on the audience screen. Multi-reader from the start — each reader has its own mode (reveal / check-in / buzz) and zone. One-tap companion join (Ephemeral or persistent Stay-Profile with carry-over points), fires /pb/v1/nfc/* OSC. Wired to the deterministic @playbox/core NfcFloor + BandRegistry engines.
Tap a band at any reader — routes reveal / check-in / buzz, live rosters, OSC stream
1920×1080 — cinematic name reveal per zone, plus a check-in roster wall
Register a name (Ephemeral or Stay-Profile), light up on stage, welcome-back + carry-over points
Admin — persisted consented profiles + carry-over scores, retention, revoke, property-sync
Document — season leaderboards (Show Points + capped Practice Points), contestant sign-up pool, age-aware bands, profiles, hardware, privacy, integrity, parks-first rollout
Solo nerve & timing — a clock races up; stop it exactly on the target. Later rounds black out the clock so you count in your head. Scored by milliseconds of error with a precision-streak multiplier; the audience plays along on their own clocks. Wired to the deterministic @playbox/core StopTheClock + timingJudge engine.
Start the clock, tap STOP on the contestant's call; deviation, grade, streak, lives
1920×1080 — the giant racing clock, blackout drama, grade + deviation reveal
Guest phone — stop your own clock on the same target; your nerve, your score
Head-to-head team buzzer trivia — fastest team to buzz answers; a wrong call hands a steal to the other side for fewer points. One ask-the-audience lifeline per team (live phone vote). Stage-first: contestants buzz in, no phones on stage. Wired to the deterministic @playbox/core BuzzWarsMatch + AudienceVote engine.
Open the buzzers, lock who got in, score correct/steal, run lifelines, scoreboard
1920×1080 — Red vs Blue scoreboard, "on the buzzer", steal drama, audience vote bars
Guest phone — answer for your own streak; your tap is a team's ask-the-audience vote
Solo sequencing — put five things in the right order (release years, planet distances, populations…). The contestant drags them on the podium; the crowd arranges the same puzzle on their phones; a staged reveal flips each position green/red. Wired to the deterministic @playbox/core OrderUpGame engine.
Drag the five items into order on the podium, lock & reveal, per-position scoring
1920×1080 — the ordered column, staged green/red reveal, values, perfect flourish
Guest phone — arrange the same puzzle yourself, scored on the reveal
Solo memory — a wall of facedown glass tiles hides matching pairs; flip two at a time to find them within a move budget. Back-to-back matches build a streak multiplier; one peek. The crowd plays the identical board on their phones. Wired to the deterministic @playbox/core VaultPairsGame engine.
Flip tiles to find pairs, streak multiplier, one peek, moves budget, score
1920×1080 — the big tile wall mirror, 3D flips, vault-cracked celebration
Guest phone — race the same board layout on your own, own moves & score
Solo path memory — a safe route across a tile grid flashes for a beat, then goes dark; the contestant walks it tile by tile from memory. A wrong tile costs a life and restarts the route; the maze grows each level. The crowd shadow-walks the same maze. Wired to the deterministic @playbox/core MemoryMazeGame engine.
Flash the path, then tap each tile the contestant calls; lives, level, score
1920×1080 — the path flash, the dark walk, trailing glow, cleared/bust drama
Guest phone — walk the same maze on your own, your own lives & score
Solo estimation — a scene of countable chaos appears ("how many coins?"); guess the count, scored by closeness, with a double-or-nothing twist. Language-free, all-ages, very watchable; the crowd guesses the same scene. Wired to the deterministic @playbox/core EyeballGame engine.
Dial in the contestant's guess, double-or-nothing, lock & reveal the true count
1920×1080 — the big glowing scene, live guess, dramatic count-up reveal
Guest phone — eyeball the same scene, lock your guess, scored on the reveal
Team "human Simon" — a growing sequence of pads flashes; teammates (each on a pad) must reproduce it in order. Survive and the chain grows; the first team to slip loses. Stage-first: physical pads, no phones on stage. Wired to the deterministic @playbox/core EchoChainMatch engine.
Play the sequence, hand to a team, tap the pads they hit; longest-chain duel
1920×1080 — the big flashing pads, watch-then-repeat, Red vs Blue chains
Guest phone — watch the sequence, repeat it on your own pads, beat your best
Team floor-zone commitment quiz — the floor splits into zones A/B/C/D; the whole team must physically commit before lockdown. Unanimous on the right zone scores full; hedge across two and a correct one only scores half. The crowd votes too. Wired to the deterministic @playbox/core StandYourGroundMatch + AudienceVote engine.
Place each team on the zones they're standing on, lock & reveal, full/half/zero
1920×1080 — the big 2×2 floor, team presence, correct-zone reveal, scoreboard
Guest phone — pick your own zone (= a crowd vote), scored on the reveal
Team crowd scavenger hunt — contestants sprint into the audience to find the listed objects and race them back to stage. Every item has a point value; first team back with an item banks a speed bonus, and returning the whole list lands the clean sweep. The host rerolls a random pre-set list or types items in on the fly before the whistle. Wired to the deterministic @playbox/core ScavengerHunt engine.
Build the item list (random or typed), start the clock, tap R/B as items land on stage
1920×1080 — the item wall with values, giant countdown, claims light up Red vs Blue
Guest phone — "I've got one!" — flag the items in your pockets so runners find them fast
The night-long competition every guest belongs to — tap in and you're auto-enrolled into a team (Red vs Blue). Called into any game (except bingo) you play for yourself and your team: contestants earn their own points and a team win credits every member in the room. Whole families stay on one colour — linked by a family code or their booking / pitch, even registering at different times. Names are unique per site (auto-disambiguated, with an optional preferred name), and under-18s sit on a separate junior board with non-cash prizes. Points add up across the night and the season. Wired to the deterministic @playbox/core VenueRoster engine; staged games roll their result straight in.
1920×1080 — team standings + Top Players (cash) and a separate Junior board (non-cash), by segment
Register guests & families (name, age, family code / booking), credit players & team wins, mark sections
1920×1080 — the running Red vs Blue night total, member & family counts, live feed
Traditional 90-ball, played for real money — every venue's evening ends on the same numbers at the same minute, all playing for one progressive jackpot that builds across the whole estate (sliding-N win plus a must-drop ceiling). Tickets print on demand on 80 mm thermal — perfect strips of 6 or singles, each with an offline-verifiable signed QR and optional band linkage. Percentage-of-sales prize pool with an enforced payout floor; shout-and-scan claims pause the network; unclaimed band-linked wins get a zone-level callout (never names). Wired to @playbox/core — bingoJackpot · bingoClaims · bingoLedger · bingoTicket · bingoDraw · bingoPrint.
Sales → commit draw → call numbers → claim-check pause → zone callouts → jackpot drop; source of truth
1920×1080 — central-caller ball, live jackpot ticker, claim-check, zone shame, must-drop & drop beats
The printed artefact — perfect strip / single / large-print, music-practice variant, reprint stamp, signed QR