Skip to main content
Version: 3.5.x

Common Types

All JSON payloads use these types consistently across WebSocket and HTTP interfaces.

vec3

A 3D vector. Used for positions (metres), velocities (m/s), forces (N), and scale factors.

{ "x": 0.0, "y": 0.0, "z": 0.0 }

quaternion

A unit quaternion representing a rotation. w comes first in the service's internal representation, but in JSON all four components are named keys so order doesn't matter.

{ "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 }

An identity quaternion (w=1, x=y=z=0) means "no rotation".

angles3

Joint angles in degrees (not radians). Used for angular position and angular velocity of the Inverse3's three joints.

{ "a0": 0.0, "a1": 0.0, "a2": 0.0 }

transform

A combination of position, rotation, and scale. Used for mount transforms, workspace transforms, and SDF effect placement.

{
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}

The identity transform (shown above) leaves everything unchanged: zero position, no rotation, unit scale.

Command vs snapshot shape for mount

When sending a mount via configure.mount, the transform is wrapped in a "transform" key: { "mount": { "transform": { … } } }. When reading mount from a device snapshot, it appears flat: { "mount": { "position": …, "rotation": …, "scale": … } }. This asymmetry is by design — see Mount & Workspace.