Varjo HMD
Node ID: varjoHmd · Role: Filter · Realtime config: no
Description
Bidirectional ZMQ bridge to the LPVR Varjo Base plugin. Receives IMU samples from the Varjo HMD (with hardware calibration applied in the plugin) and forwards FusedPose back to Varjo Base for rendering. Includes gyro autocalibration.
Inputs / Outputs
- Inputs:
FusedPose - Outputs:
Imu
Config aliases
varjoHmd, VarjoHmd, varjo
Required feature
varjo_hmd
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 | Plugin IMU Endpoint | string | tcp://127.0.0.1:9930 | — |
fusedPoseEndpoint | FusedPose Publish Endpoint | string | tcp://*:9931 | — |
senderId | Sender ID | string | varjo_hmd | — |
enableGyroAutocalibration | Enable Gyro Autocalibration | boolean | true | — |
nSamplesForSteady | Autocal: Samples for Steady | number | 256 | — |
nSamplesForAutocalibration | Autocal: Samples for Calibration | number | 1500 | — |
steadyThresholdAverage | Autocal: Steady Threshold (deg/s) | number | 2.0 | — |
steadyThresholdRms | Autocal: Steady RMS Threshold | number | 2.0 | — |
noiseRmsLimit | Autocal: Noise RMS Limit | number | 0.2 | — |
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": {
"varjoHmd": {
"dataEndpoint": "inproc://varjoHmd_data",
"inputEndpoints": [
"inproc://fusedPose_data"
],
"inputDataFilter": [
"FusedPose"
],
"settings": {
"enableGyroAutocalibration": true,
"fusedPoseEndpoint": "tcp://*:9931",
"imuEndpoint": "tcp://127.0.0.1:9930",
"nSamplesForAutocalibration": 1500,
"nSamplesForSteady": 256,
"noiseRmsLimit": 0.2,
"senderId": "varjo_hmd",
"steadyThresholdAverage": 2.0,
"steadyThresholdRms": 2.0
}
}
}
}
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.