𒀭
𒌓
𒈗
𒁹
𒆳
𓁹
𒀀
𓋹
𒊕
𓂀

Enter the Chamber

Join the open room. No accounts, no passwords — just a name and a connection. WebRTC peer-to-peer, max ~10 souls.

⌇ signal path

Plug in instruments via audio interface · WebRTC peer-to-peer

How This Room Works: WebRTC & Real-Time Collaboration

Peer-to-Peer Video with WebRTC

WebRTC (Web Real-Time Communication) enables direct browser-to-browser audio and video streams — no server relaying your media. Your camera feed goes straight to the other person's browser and vice versa. This is fundamentally different from Zoom or Google Meet, which route everything through central servers. The trade-off: peer-to-peer scales poorly past ~10 participants (each person needs a direct connection to every other person), but latency is dramatically lower.

STUN & TURN: Punching Through NATs

Most devices sit behind routers using NAT (Network Address Translation), which hides their real IP. STUN servers help peers discover their public-facing address so they can connect directly. When direct connection fails (strict firewalls, symmetric NAT), TURN servers act as a relay — the fallback that guarantees connectivity at the cost of added latency.

Firebase for Real-Time Sync

The collaborative synth, step sequencer, and canvas don't use WebRTC — they use Firebase Realtime Database to synchronize state across all participants. When you toggle a sequencer step or press a synth key, that event is written to Firebase and instantly pushed to every connected client. Firebase also handles the WebRTC signaling — the initial handshake where peers exchange connection details before the direct stream begins.

Why Latency Matters for Music

Musicians can detect timing offsets as small as 20–30 milliseconds. Network round-trips typically add 50–200ms — enough to make real-time ensemble playing feel disjointed. That's why the synth and sequencer sync state (which notes are active) rather than attempting sample-accurate audio sync across the network. Each client renders sound locally from shared instructions, sidestepping the latency problem entirely.