Home · Forge

The two-tab room Jam the field. The two-tab room // shared state, local render

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 tab

Changes live in these tabs and are not saved.

Starting the room…

Tabs in this roomWaiting for another tab.
Seed and hue drift
How the two tabs share

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.

More about this room

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.

Stack: forge/visual/shared.js · createSharedPiece · Yjs 13.6.20 · BroadcastChannel. No persistence or remote transport. The hexfield CORE is unchanged; the same seed and parameters reproduce the same field.