Mix the layers freely
Three independent toggles — no mode dropdown. Color drives every screen the same color on a synced strobe pattern (audio-reactive). Flashlight pulses the phone's rear LED on detected beats (Chrome Android, iOS 17.4+). Video fans the actual engine canvas out to each phone via the SFU. Turn on any combination at once, and Color and Video each have their own opacity — drop a 50% color wash over live video for a tinted, fully-synced screen, or fade the video under a solid strobe.
Onboarding
A QR overlay appears on the source preview by default — position + scale tunable from the inspector. Audience scans, lands on /crowdstream/<code>, taps "Tap to start", and they're in.
Stays connected
The room is owned by the active track, not the clip you happen to be playing — so switching between clips never drops the audience. Phones stay connected and synced across clip changes; the session ends only when the last CrowdStream clip leaves the track, you switch tracks, or the rig goes offline.
Latency
State channel: under 250 ms on a stable network. Video channel: 400–800 ms typical depending on uplink and the SFU's nearest region.