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 position
  • psn.{id}.pos.y — Y position
  • psn.{id}.pos.z — Z position

Speed:

  • psn.{id}.speed.x — X velocity
  • psn.{id}.speed.y — Y velocity
  • psn.{id}.speed.z — Z velocity

Orientation:

  • psn.{id}.ori.x — X rotation
  • psn.{id}.ori.y — Y rotation
  • psn.{id}.ori.z — Z rotation

Acceleration:

  • psn.{id}.accel.x — X acceleration
  • psn.{id}.accel.y — Y acceleration
  • psn.{id}.accel.z — Z acceleration

Target position:

  • psn.{id}.trgtpos.x — Target X position
  • psn.{id}.trgtpos.y — Target Y position
  • psn.{id}.trgtpos.z — Target Z position

Status and timestamp:

  • psn.{id}.status — Tracker validity, 0.0 to 1.0
  • psn.{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:

  1. Packet reception — UDP packets arrive on the multicast address. PSN fragments large frames. The forwarder reassembles fragmented packets.
  2. 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.
  3. 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.
  4. Batched forwarding — Queued changes flush to the Director's /v0/inputs endpoint 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.