Skip to main content
Version: 20 Mar 2024

Input Binding Paths

This guide provides information the Input Control Paths and Interaction Profiles that are supported on Magic Leap 2. For general information about the OpenXR Hand Interaction Profile in Unity. See the Unity OpenXR Hand Interaction Input Manual.

Hand Interaction Profile

For detailed information about the origin of each pose relative to the hand see the OpenXR Hand Interaction Extension documentation.

NamePathTypeDescription
devicePose<HandInteraction>/devicePosePoseRepresents the pose of the device, including rotation, position, and velocity of the tracked hand.
pinchPose<HandInteraction>/pinchPosePosePose specifically for the pinch gesture, including all pose data (rotation, position, etc.).
pointer<HandInteraction>/pointerPosePose for the pointing gesture or tool, typically involving the index finger.
pokePose<HandInteraction>/pokePosePosePose for the poke gesture, detailing the specific finger or tool position and orientation.
pinchValue<HandInteraction>/pinchValueFloatThe intensity or value of the pinch gesture, ranging from 0.0 to 1.0.
pinchReady<HandInteraction>/pinchReadyBooleanIndicates whether the pinch gesture is started or being detected. Use the pinchValue to detect completeness.
pointerActivateValue<HandInteraction>/pointerActivateValueFloatThe intensity or value of pointer activation, generally used for buttons or triggers.
pointerActivateReady<HandInteraction>/pointerActivateReadyBooleanIndicates whether the pointer activation gesture is started or being detected. Use the pointerActivateValue to detect completeness.
graspValue<HandInteraction>/graspValueFloatThe intensity or value of the grasp gesture, ranging from 0.0 to 1.0.
graspReady<HandInteraction>/graspReadyBooleanIndicates whether the grasp gesture is started or being detected. Use the graspValue to detect completeness.
isTracked<HandInteraction>/isTrackedBooleanIndicates whether the hand is currently being tracked. Unity Layout Only
trackingState<HandInteraction>/trackingStateIntegerProvides the current tracking state of the hand. Unity Layout Only
devicePosition<HandInteraction>/devicePositionVector3The position of the device or hand in 3D space. Unity Layout Only
deviceRotation<HandInteraction>/deviceRotationQuaternionThe rotation of the device or hand in 3D space as a Quaternion. Unity Layout Only

Note: Each pose value includes the rotation, position, and velocity. Separate position and rotation values can be obtained when appended to the path, for example:

  • <HandInteraction>/devicePose/position
  • <HandInteraction>/devicePose/rotation
info

To specify a particular hand instead of either, you can add {LeftHand} or {RightHand} after the <HandInteractionBindings> in the binding.

Palm Pose Interaction Profile

For more information about the Palm Pose extension, see the OpenXR Specification.

NamePathTypeDescription
devicePose<PalmPose>/palmPosePoseRepresents the pose of the device, including rotation, position, and velocity of the tracked hand.
isTracked<PalmPose>/isTrackedBooleanIndicates whether the hand is currently being tracked. Unity Layout Only
trackingState<PalmPose>/trackingStateIntegerProvides the current tracking state of the hand. Unity Layout Only
devicePosition<PalmPose>/devicePositionVector3The position of the device or hand in 3D space. Unity Layout Only
deviceRotation<PalmPose>/deviceRotationQuaternionThe rotation of the device or hand in 3D space as a Quaternion. Unity Layout Only
info

To specify a particular hand instead of either, you can add {LeftHand} or {RightHand} after the <PalmPose> in the binding.

caution

This feature requires the Palm Pose OpenXR Feature to be enabled in your project's OpenXR Settings (Window > XR Plugin Manager > OpenXR Settings).