VRPN Output
Node ID: vrpnOutput · Role: Sink · Realtime config: no
Description
Exposes fused pose as a VRPN tracker, letting any VRPN client (e.g. Unity, Unreal, MotionBuilder) receive FusionHub tracking data over the network.
Inputs / Outputs
- Inputs:
FusedPose - Outputs: (none)
Config aliases
VrpnSink, vrpnSink, vrpnOutput, VRPN
Properties
The following fields are exposed in the node’s Properties panel in the UI. Types map to UI widgets (e.g. string → text input, number → numeric, boolean → toggle, select → dropdown, json → JSON editor).
| Key | Label | Type | Default | Description / Notes |
|---|---|---|---|---|
port | Port | number | 3883 | TCP port the VRPN server listens on. |
deviceName | Device Name | string | FusionHub | Device name announced by the VRPN server; clients connect as ‘@host:port’. |
axisConvention | Orientation Axis Convention | string | -z+x-y | Six-character remap for the output orientation quaternion xyz components, e.g. ‘-z+x-y’. w is always passed through. |
posAxisConvention | Position Axis Convention | string | +z-x+y | Six-character remap for the output position xyz components, e.g. ‘+z-x+y’. |
positionScaler | Position Scaler | number | 1.0 | Scalar multiplier applied to the reported position (e.g. 1000 to convert meters to millimeters). |
tracker0 | Tracker 0 Object Name | string | tracker0 | Optical senderId routed to VRPN sensor slot 0 (defaults to ‘tracker0’). OpticalData frames whose senderId matches are forwarded to this sensor. |
tracker1 | Tracker 1 Object Name | string | tracker1 | Optical senderId routed to VRPN sensor slot 1. |
tracker2 | Tracker 2 Object Name | string | tracker2 | Optical senderId routed to VRPN sensor slot 2. |
tracker3 | Tracker 3 Object Name | string | tracker3 | Optical senderId routed to VRPN sensor slot 3. |
tracker4 | Tracker 4 Object Name | string | tracker4 | Optical senderId routed to VRPN sensor slot 4. |
tracker5 | Tracker 5 Object Name | string | tracker5 | Optical senderId routed to VRPN sensor slot 5. |
tracker6 | Tracker 6 Object Name | string | tracker6 | Optical senderId routed to VRPN sensor slot 6. |
tracker7 | Tracker 7 Object Name | string | tracker7 | Optical senderId routed to VRPN sensor slot 7. |
tracker8 | Tracker 8 Object Name | string | tracker8 | Optical senderId routed to VRPN sensor slot 8. |
tracker9 | Tracker 9 Object Name | string | tracker9 | Optical senderId routed to VRPN sensor slot 9. |
Example node definition
A full node definition in config.json looks like the block below. Paste it under the sinks key of your config, keyed by the node’s instance name (any identifier; it doesn’t have to match the node ID).
{
"sinks": {
"vrpnOutput": {
"inputEndpoints": [
"inproc://fusedPose_data"
],
"inputDataFilter": [
"FusedPose"
],
"settings": {
"axisConvention": "-z+x-y",
"deviceName": "FusionHub",
"port": 3883,
"posAxisConvention": "+z-x+y",
"positionScaler": 1.0,
"tracker0": "tracker0",
"tracker1": "tracker1",
"tracker2": "tracker2",
"tracker3": "tracker3",
"tracker4": "tracker4",
"tracker5": "tracker5",
"tracker6": "tracker6",
"tracker7": "tracker7",
"tracker8": "tracker8",
"tracker9": "tracker9"
}
}
}
}
Field reference
| Field | Purpose |
|---|---|
inputEndpoints | List of upstream endpoints this node connects to (outEndpoint / dataEndpoint values from upstream nodes). |
inputDataFilter | Optional whitelist of data types. Messages whose type isn’t in the list are dropped at the subscriber. |
settings | All user-configurable fields — see the Properties table above. |
Connections can also be declared at the top-level
connectionsarray whensettings.explicitConnectionsistrue, as an alternative to fillinginputEndpointson each node.