Open a second tab. Turn a knob. Watch it move. One shared composition. Every tab is a hand on the same instrument. A Yjs document shared over BroadcastChannel. Each tab renders the same seed and parameters locally.
this browser only Only tabs in this browser share this composition.
Open a second tabChanges live in these tabs and are not saved.
Starting the room…
Open this page in another tab of the same browser. Changing a control updates the field in both tabs. Different controls can be changed together. If two tabs change the same control, they eventually agree on one value.
CRDT layer: forge/visual/shared.js (createSharedPiece) with Yjs 13.6.20 (MIT, Gate BS-1), loaded from jsDelivr. Tabs exchange a complete document snapshot on arrival, then incremental updates over BroadcastChannel. Concurrent edits to separate parameters merge; concurrent edits to one parameter converge on one value.
This page does not connect people across devices. LiveKit is a planned transport adapter, not an active connection here. Closing every tab discards the room. Private windows, browser profiles and different site origins keep separate rooms.