ALVR Bridge
Node ID: alvr · Role: Filter · Realtime config: no
Description
Bidirectional ZMQ bridge between FusionHub and LPALVR. Sends fused pose to the VR headset, receives IMU data and native tracking pose back.
Inputs / Outputs
- Inputs:
FusedPose,Optical - Outputs:
Imu,FusedPose
Config aliases
alvr, AlvrBridge, alvrBridge
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 |
|---|---|---|---|---|
imuEndpoint | ALVR IMU Endpoint | string | tcp://127.0.0.1:8898 | ZMQ endpoint to connect to for receiving IMU data from the ALVR headset. |
nativePoseEndpoint | ALVR Native Pose Endpoint | string | tcp://127.0.0.1:8899 | ZMQ endpoint to connect to for receiving the headset’s native SLAM pose. |
poseEndpoint | FusedPose Publish Endpoint | string | tcp://*:8799 | ZMQ endpoint this node binds to publish the FusionHub fused pose back to ALVR. |
leftControllerEndpoint | Left Controller Endpoint | string | tcp://*:8500 | ZMQ endpoint this node binds for left-controller pose publication. |
rightControllerEndpoint | Right Controller Endpoint | string | tcp://*:8501 | ZMQ endpoint this node binds for right-controller pose publication. |
directStart | Direct Start | boolean | true | Launch ALVR directly from FusionHub instead of waiting for an external process. hidden in UI |
autoStart | Auto Start SteamVR | boolean | false | Start SteamVR automatically when the node starts. hidden in UI |
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": {
"alvr": {
"dataEndpoint": "inproc://alvr_data",
"inputEndpoints": [
"inproc://fusedPose_data",
"inproc://optical_data"
],
"inputDataFilter": [
"FusedPose",
"Optical"
],
"settings": {
"autoStart": false,
"directStart": true,
"imuEndpoint": "tcp://127.0.0.1:8898",
"leftControllerEndpoint": "tcp://*:8500",
"nativePoseEndpoint": "tcp://127.0.0.1:8899",
"poseEndpoint": "tcp://*:8799",
"rightControllerEndpoint": "tcp://*:8501"
}
}
}
}
Field reference
| Field | Purpose |
|---|---|
dataEndpoint | Endpoint this node binds to publish its output. Omit to let the runtime generate one. |
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.