🌉 Bridge Visualizer
Real-time view of OSC messages flowing through the bridge
| Source | OSC address (exact or wildcard *) | CC | Ch |
|---|
| CC 0–127 | Ch 1–16 | OSC address to publish |
|---|
Performance controls will be added here
Network ports — quick reference
Live registry served by the bridge from bridge/services.json. Edit that file to update — no code changes required.
| Port | Protocol | URL | What |
|---|---|---|---|
| Connecting to bridge… | |||
Full architecture & protocol documentation:
Project wiki ↗
· see Architecture.md, Bridge.md, Getting-Started.md
Custom outputs — how to add your own
Outputs aren't restricted to what the catalog ships. Any scene can declare custom OSC outputs with addresses you choose — useful for forwarding to TouchDesigner, Max/MSP, Resolume, or any UDP-OSC receiver. The catalog stays the source of truth for built-in devices (painting, synth, motors, lights, etc.); custom outputs live inside the scene file.
| Where | What it does |
|---|---|
scene.json · output node |
Set data.source: "external", data.customizable: true, and data.osc to your chosen address (e.g. /external/demo/hands/left_x). The designer treats it as a regular output node. |
bridge/osc_targets.json |
Add a router rule: { "match": "/external/demo/", "host": "127.0.0.1", "port": 9100, "enabled": true }. Every message under that prefix forwards to host:port over UDP. Multiple rules with the same match = fan-out to several receivers. |
designer/output_catalog.json |
For outputs you'll use across many scenes, add an entry to the catalog instead. Cleaner long-term — the channel shows up in the standard output picker. Custom-in-scene is for one-off / scene-specific cases. |
Reference scene: Scenes/demo_two_hands_painting_forwardingOutput.json uses this pattern to publish smoothed + delayed hand x/y/pinch streams under /external/demo/hands/* for an external receiver. The bridge re-reads osc_targets.json only on startup — restart the bridge after editing.
X-Modal System
Shared infrastructure for interactive art — a visual, node-based programming platform for sensor-to-output mapping across hardware and software.