BlackTrax
Overview
BlackTrax (CAST Software) is a real-time infrared tracking system used in live events: IR beacons worn by performers or fixed to scenery are followed by a rig of cameras, and the resulting positions are streamed over the network with the RTTrPM protocol.
Onlyview listens to that stream and exposes the position and orientation of each tracked object in ActionGraph. Typical uses are making a 3D object follow a performer (see Tracking study), driving a virtual camera, or feeding a moving element of the show with a live position.
Onlyview only receives from BlackTrax; it never sends anything back.
Setup
The setup dialog has two fields, which must both match the RTTrPM output configured on the BlackTrax server:
- IP: The address the BlackTrax server streams to. The default,
238.210.10.1, is BlackTrax's usual multicast group. If the server is configured to send to one specific machine instead, enter that machine's address. - Port: The port the stream is sent to. Default
24002.
There is no network interface to choose: Onlyview listens on all the interfaces of the machine.
Every machine of the show — the Producer and each Media Server — receives the stream directly, rather than relaying it from the Producer, which avoids adding a frame of latency. Make sure the stream actually reaches all of them: with a multicast address this means the show network must let the multicast group through (IGMP snooping correctly configured on the switches). If the BlackTrax server is set to send to a single address, only that one machine will get tracking data.
Device Widget
Dropping the device on a UserScreen gives a small panel showing the device name, the IP being listened to, and one indicator per tracked object present in the stream, labelled with that object's name. The indicator changes appearance when the object is no longer being tracked.
This is the quickest way to check that the stream is arriving, and to read the exact object names to type into the ActionGraph node.
ActionGraph Nodes
BlackTrax
Available under Devices/BlackTrax in the node palette. Outputs the last known position and orientation of one tracked object.
Properties:
- Device: The BlackTrax device to read from.
- RigidBody ID: The name of the tracked object to follow. It must match the name sent by BlackTrax exactly, including capitalisation — the names visible on the device widget are the ones to use.
Output Slots:
- Position: Vec3 — the position of the tracked object's centroid, in the units and coordinate system sent by BlackTrax (metres, by default). Invalid until a matching object has been received.
- Rotation: Quat — the orientation of the tracked object. Becomes valid and invalid at the same time as Position.
The node has no events: it simply reads the most recent data received on every ActionGraph evaluation. Values are passed through untouched — there is no scale, offset or axis swap on the node, so if the BlackTrax origin and axes do not match your Onlyview scene, convert them with maths nodes or by parenting the driven object to a transformed one.
To compensate for the reaction time of a physical fixture, or to realign the tracking with another signal, insert a Delay (Vec3+Quat) node (see Delay) between the BlackTrax node and whatever it drives; it keeps position and rotation synchronised.
Info
The Followspot nodes and the TUIO Output node work on a Trackings value, which describes a whole set of tracked people at once. The BlackTrax node outputs a single Position/Rotation pair, so it cannot be connected to them directly. Use one BlackTrax node per beacon and drive your objects from Position and Rotation.
Limitations
- Only the centroid of a beacon is used. The positions of its individual LEDs, and the speed and acceleration values that BlackTrax can send alongside the centroid, are not exposed.
- Orientation must be streamed as a quaternion. If BlackTrax is configured to send Euler angles instead, the position is still tracked but the Rotation output stops being updated.
- Onlyview reads the timestamped tracked objects that BlackTrax sends by default. A stream configured to send untimestamped ones only will show no object at all, neither on the device widget nor in the node.
- No smoothing, prediction or latency compensation is applied to the incoming positions.