PosiStageNet
PosiStageNet (PSN) is an open protocol for transmitting real-time 3D position data from tracking systems over a network. WATCHOUT receives PSN data and maps tracker coordinates to show variables, enabling content that dynamically follows performers, objects, or other tracked elements on stage.
Enabling PSN
Enable PSN from the Nodes window, Node Info → Protocols, using the PosiStageNet toggle. When enabled, the node starts a PSN forwarder that listens for tracking data.
Network Details
PSN uses UDP multicast for data transmission. The PSN forwarder listens on:
- Multicast group:
236.10.10.10 - Port:
56565
The forwarder joins the multicast group on all network interfaces. Send PSN data to this multicast address. Configure multicast routing on your network.
Data Mapping
Each PSN tracker exposes multiple data fields as WATCHOUT variables. The key format is:
psn.{tracker_id}.{field}
Where {tracker_id} is the numeric ID assigned to the tracker by the tracking system, and {field} is one of the following:
Position:
psn.{id}.pos.x— X positionpsn.{id}.pos.y— Y positionpsn.{id}.pos.z— Z position
Speed:
psn.{id}.speed.x— X velocitypsn.{id}.speed.y— Y velocitypsn.{id}.speed.z— Z velocity
Orientation:
psn.{id}.ori.x— X rotationpsn.{id}.ori.y— Y rotationpsn.{id}.ori.z— Z rotation
Acceleration:
psn.{id}.accel.x— X accelerationpsn.{id}.accel.y— Y accelerationpsn.{id}.accel.z— Z acceleration
Target position:
psn.{id}.trgtpos.x— Target X positionpsn.{id}.trgtpos.y— Target Y positionpsn.{id}.trgtpos.z— Target Z position
Status and timestamp:
psn.{id}.status— Tracker validity, 0.0 to 1.0psn.{id}.timestamp— Frame timestamp
Not every field is present in each PSN frame. The forwarder only forwards fields the tracking system sends.
How It Works
The PSN forwarder operates as follows:
- Packet reception — UDP packets arrive on the multicast address. PSN fragments large frames. The forwarder reassembles fragmented packets.
- Frame parsing — DATA packets are parsed for tracker positions and other fields. INFO packets carry system and tracker names. They are received but not forwarded.
- Change detection — The forwarder compares each tracker's current values against the previous frame. Only changed values are queued. This reduces traffic to the Director.
- Batched forwarding — Queued changes flush to the Director's
/v0/inputsendpoint every 1 ms. Each value carries a 25 ms interpolation window.
Coordinate systems vary between tracking systems. You may need to use WATCHOUT's variable min/max range and tween expressions to remap PSN coordinates to your stage coordinate system.
Requirements
- A tracking system that outputs PosiStageNet data.
- Network multicast support between the tracking system and the node. Both must be on the same network segment or have multicast routing configured.
- Variables defined in the show with external keys matching the PSN key format for the trackers you want to use.
Use Cases
- Performer tracking — Content (spotlights, graphics, text) that follows performers as they move across the stage.
- Interactive projection mapping — Projected visuals that react to the position of physical objects.
- Position-reactive show elements — Trigger content changes or transitions based on where tracked elements are in the performance space.
- Multi-axis control — Use tracker orientation and speed data to drive rotation, scale, or animation speed of visual elements.
Related
- The Nodes Window — enable protocols per node
- Variables and Inputs — map external keys to show variables