VR Controller Pose Not Updating in Isaac Sim 5.1 (Meta Quest 2)

Isaac Sim Version

5.1.0
5.0.0
4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 24.04
Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

Topic Description

Hello,

I’m trying to retrieve the left and right controller pose values from a Meta Quest 2 in Isaac Sim 5.1, but it doesn’t seem to work properly.

The following script worked perfectly in Isaac Sim 5.0 (via the Script Editor), but when I run the same code in version 5.1, the printed values of left_pos and left_rot remain fixed at (0, 0, 0) and (1, 0, 0, 0).

I also confirmed that the prim paths "/_xr/inputdevices/user/hand/right/grip" and "/_xr/inputdevices/user/hand/left/grip" are correctly created in the stage.

I’d like to ask if there have been any changes in how VR device pose data is handled between versions 5.0 and 5.1.
Any advice or workaround to resolve this issue would be greatly appreciated.

Device: Meta Quest 2
Isaac Sim version: 5.1
ALVR streamer version: v20.14.1
SteamVR version: 2.12.14
Ubuntu version: 22.04

import omni
from pxr import Gf, UsdGeom, Usd
import math

stage = omni.usd.get_context().get_stage()
app = omni.kit.app.get_app()
time_code = Usd.TimeCode.Default()

left_path = "/_xr/inputdevices/user/hand/left/grip"
right_path = "/_xr/inputdevices/user/hand/right/grip"

# Create visualization prims for the controllers
def ensure_vis_prim(path, color):
    if not stage.GetPrimAtPath(path):
        prim = UsdGeom.Sphere.Define(stage, path)
        prim.CreateRadiusAttr(0.03)
        prim.CreateDisplayColorAttr([color])
    return stage.GetPrimAtPath(path)

# Blue sphere for the left controller, orange for the right controller
left_vis = ensure_vis_prim("/World/LeftHandVis", (0.1, 0.6, 1.0))   # Blue
right_vis = ensure_vis_prim("/World/RightHandVis", (1.0, 0.4, 0.1)) # Orange

prev_left_pos, prev_right_pos = None, None
threshold = 0.05  # Movement threshold (5 cm)

def distance(a, b):
    """Compute Euclidean distance between two 3D points."""
    return math.sqrt((a[0]-b[0])**2 + (a[1]-b[1])**2 + (a[2]-b[2])**2)

def get_world_pose(prim_path):
    """Return the world position and orientation (quaternion) of a prim."""
    prim = stage.GetPrimAtPath(prim_path)
    if not prim or not prim.IsValid():
        return None, None
    xformable = UsdGeom.Xformable(prim)
    world_mat = xformable.ComputeLocalToWorldTransform(time_code)
    pos = world_mat.ExtractTranslation()
    rot = world_mat.ExtractRotation().GetQuat()  # Quaternion (x, y, z, w)
    return pos, rot

def update_vis_prim(prim, pos):
    """Move the visualization sphere to the given position."""
    xformable = UsdGeom.Xformable(prim)
    xformable.MakeMatrixXform().Set(Gf.Matrix4d().SetTranslate(pos))

def on_update(e):
    """Main update callback — runs every frame."""
    global prev_left_pos, prev_right_pos

    # ---- Left hand ----
    left_pos, left_rot = get_world_pose(left_path)
    print(left_pos, left_rot)
    if left_pos:
        update_vis_prim(left_vis, left_pos)
        if prev_left_pos is None:
            prev_left_pos = left_pos
        elif distance(left_pos, prev_left_pos) > threshold:
            print(f"🕹 Left moved → {left_pos}")
            print(f"   rotation (quat): {left_rot}")
            prev_left_pos = left_pos

    # ---- Right hand ----
    right_pos, right_rot = get_world_pose(right_path)
    if right_pos:
        update_vis_prim(right_vis, right_pos)
        if prev_right_pos is None:
            prev_right_pos = right_pos
        elif distance(right_pos, prev_right_pos) > threshold:
            print(f"🎮 Right moved → {right_pos}")
            print(f"   rotation (quat): {right_rot}")
            prev_right_pos = right_pos

# Subscribe to the app's update event stream
sub = app.get_update_event_stream().create_subscription_to_pop(on_update)
print("✅ VR tracking + visualization active — move > 5 cm to log movement.")

Thank you so much for your help!

I changed the controller prim paths from
"/_xr/inputdevices/user/hand/right/grip" (used in Isaac Sim 5.0)
to
"/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/grip" (Isaac Sim 5.1),

and I can now access the controller coordinates.
However, the position and rotation values are not updating — they remain constant even when I move the controller.

Below are the repeated outputs of right_pos and right_rot:

(0, -0.0850000008940697, -0.009999999776482586) (0.00995037168079269, 0.9999504938262764, 0, 0)
(0, -0.0850000008940697, -0.009999999776482586) (0.00995037168079269, 0.9999504938262764, 0, 0)
(0, -0.0850000008940697, -0.009999999776482586) (0.00995037168079269, 0.9999504938262764, 0, 0)
...

I’m not sure how to update or refresh the pose data of the VR controller in real time.
Could you please tell me how to correctly access the updated controller transform in Isaac Sim 5.1?

Also, do you know why the VR controller prim paths have changed between version 5.0 and 5.1? (I’ve already checked Physics Stage Settings by running the command ./isaac-sim.sh, isaac-sim.xr.vr.sh could not access the Physics Stage Settings)

/_xr
/_xr/gui
/_xr/gui/controllers
/_xr/gui/controllers/_coord
/_xr/gui/controllers/_coord/input_device
/_xr/gui/controllers/_coord/input_device/user
/_xr/gui/controllers/_coord/input_device/user/hand
/_xr/gui/controllers/_coord/input_device/user/hand/left
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/grip
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/aim
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/aim/selection_beam
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/aim/selection_beam/begin
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/aim/selection_beam/end
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/aim/selection_beam/end/reorient
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/aim/selection_beam/beam
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/aim/selection_beam/beam/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/left/attachments/forward
/_xr/gui/controllers/_coord/input_device/user/hand/left/tooltips
/_xr/gui/controllers/_coord/input_device/user/hand/left/tooltips/x
/_xr/gui/controllers/_coord/input_device/user/hand/left/tooltips/trigger
/_xr/gui/controllers/_coord/input_device/user/hand/left/tooltips/squeeze
/_xr/gui/controllers/_coord/input_device/user/hand/left/tooltips/thumbstick
/_xr/gui/controllers/_coord/input_device/user/hand/left/tooltips/y
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_m
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_m/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tooltip_text_m
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tooltip_text_m/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_active
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_active/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_middle_grey
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_middle_grey/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_materials
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_materials/Looks
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/OculusQuest2Mat
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/OculusQuest2MatPreviewSurface
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/OculusQuest2MatDiffuseColorTex
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/PrimST
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_geo
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_geo/quest2_left
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_geo/quest2_left/quest2_contollers_div1_left_quest2_mesh
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_geo/quest2_left/quest2_contollers_div1_left_quest2_mesh/collision
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_geo/quest2_left/anchors
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_geo/quest2_left/anchors/forward_beam
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Model/model_geo/Looks
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Tooltips
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Tooltips/x
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Tooltips/trigger
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Tooltips/squeeze
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Tooltips/thumbstick
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Tooltips/y
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Attachments
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Attachments/grip
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Attachments/aim
/_xr/gui/controllers/_coord/input_device/user/hand/left/controller_model/_coord/_ref/Root/Attachments/forward
/_xr/gui/controllers/_coord/input_device/user/hand/right
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/grip
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/begin
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World/teleport_gizmo
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World/teleport_gizmo/pointer
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World/teleport_gizmo/teleport_mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World/teleport_gizmo/teleport_ring
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World/Looks
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World/Looks/Teleport_mat
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/end/reorient/target/_coord/_ref/World/Looks/Teleport_mat/Teleport_mat
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg0
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg0/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg0/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg0/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg0/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg1
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg1/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg1/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg1/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg1/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg2
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg2/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg2/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg2/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg2/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg3
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg3/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg3/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg3/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg3/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg4
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg4/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg4/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg4/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg4/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg5
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg5/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg5/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg5/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg5/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg6
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg6/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg6/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg6/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg6/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg7
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg7/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg7/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg7/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg7/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg8
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg8/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg8/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg8/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg8/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg9
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg9/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg9/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg9/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg9/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg10
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg10/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg10/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg10/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg10/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg11
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg11/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg11/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg11/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg11/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg12
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg12/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg12/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg12/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg12/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg13
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg13/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg13/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg13/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg13/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg14
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg14/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg14/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg14/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg14/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg15
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg15/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg15/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg15/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg15/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg16
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg16/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg16/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg16/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg16/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg17
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg17/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg17/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg17/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg17/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg18
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg18/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg18/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg18/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg18/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg19
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg19/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg19/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg19/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg19/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg20
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg20/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg20/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg20/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg20/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg21
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg21/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg21/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg21/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg21/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg22
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg22/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg22/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg22/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg22/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg23
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg23/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg23/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg23/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg23/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg24
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg24/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg24/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg24/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg24/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg25
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg25/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg25/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg25/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg25/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg26
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg26/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg26/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg26/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg26/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg27
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg27/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg27/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg27/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg27/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg28
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg28/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg28/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg28/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg28/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg29
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg29/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg29/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg29/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg29/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg30
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg30/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg30/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg30/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg30/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg31
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg31/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg31/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg31/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/path/seg31/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/segment
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/segment/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/segment/mesh/material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/segment/mesh/material/selection_emissive_material
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/teleporter/arc/segment/mesh/material/selection_emissive_material/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/selection_beam
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/selection_beam/begin
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/selection_beam/end
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/selection_beam/end/reorient
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/selection_beam/beam
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/aim/selection_beam/beam/mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/attachments/forward
/_xr/gui/controllers/_coord/input_device/user/hand/right/tooltips
/_xr/gui/controllers/_coord/input_device/user/hand/right/tooltips/a
/_xr/gui/controllers/_coord/input_device/user/hand/right/tooltips/b
/_xr/gui/controllers/_coord/input_device/user/hand/right/tooltips/thumbstick
/_xr/gui/controllers/_coord/input_device/user/hand/right/tooltips/squeeze
/_xr/gui/controllers/_coord/input_device/user/hand/right/tooltips/trigger
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_geo
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_geo/quest2_right
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_geo/quest2_right/quest2_contollers_div1_right_quest2_mesh
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_geo/quest2_right/quest2_contollers_div1_right_quest2_mesh/collision
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_geo/quest2_right/anchors
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_geo/quest2_right/anchors/forward_beam
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_geo/Looks
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_materials
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_materials/Looks
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/OculusQuest2Mat
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/OculusQuest2MatPreviewSurface
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/OculusQuest2MatDiffuseColorTex
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/model_materials/Looks/OculusQuest2Mat/PrimST
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_m
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_m/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tooltip_text_m
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tooltip_text_m/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_active
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_background_active/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_middle_grey
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Model/common_materials/Looks/tootip_middle_grey/Shader
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Attachments
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Attachments/grip
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Attachments/aim
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Attachments/forward
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Tooltips
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Tooltips/a
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Tooltips/b
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Tooltips/thumbstick
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Tooltips/squeeze
/_xr/gui/controllers/_coord/input_device/user/hand/right/controller_model/_coord/_ref/Root/Tooltips/trigger
/_xr/gui/controllers/_coord/assets
/_xr/gui/controllers/_coord/assets/_generic_materials__selection_emissive_material_usd
/_xr/gui/controllers/_coord/assets/_generic_materials__selection_emissive_material_usd/_coord
/_xr/gui/controllers/_coord/assets/_generic_materials__selection_emissive_material_usd/_coord/_ref
/_xr/gui/controllers/_coord/assets/_generic_materials__selection_emissive_material_usd/_coord/_ref/Looks
/_xr/gui/controllers/_coord/assets/_generic_materials__selection_emissive_material_usd/_coord/_ref/Looks/selection_emissive_material
/_xr/gui/controllers/_coord/assets/_generic_materials__selection_emissive_material_usd/_coord/_ref/Looks/selection_emissive_material/Shader
/_xr/stage
/_xr/stage/xrCamera
/_xr/stage/xrAnchor
/_xr/stage/xrSpaceOrigin
/_xr/inputdevices
/_xr/inputdevices/user
/_xr/inputdevices/user/head
/_xr/inputdevices/user/hand
/_xr/inputdevices/user/hand/left
/_xr/inputdevices/user/hand/left/grip
/_xr/inputdevices/user/hand/left/aim
/_xr/inputdevices/user/hand/left/palm
/_xr/inputdevices/user/hand/left/pinch
/_xr/inputdevices/user/hand/left/poke
/_xr/inputdevices/user/hand/right
/_xr/inputdevices/user/hand/right/grip
/_xr/inputdevices/user/hand/right/aim
/_xr/inputdevices/user/hand/right/palm
/_xr/inputdevices/user/hand/right/pinch
/_xr/inputdevices/user/hand/right/poke
/_xr/inputdevices/user/eye
/_xr/inputdevices/user/eye/left
/_xr/inputdevices/user/eye/right

Could you please confirm exactly which versions of the omni.kit.xr.* extensions are enabled in your Isaac Sim 5.1 environment?

I’m using omni.kit.xr.* version 107.3.109, and I’ve attached both a screenshot and the logs that appear when running isaac-sim.sh.

[8.336s] [ext: omni.kit.xr.core-107.3.109] startup
[8.380s] [ext: omni.services.transport.server.zeroconf-1.0.9] startup
[8.400s] [ext: omni.kit.xr.ui.window.viewport-107.3.109] startup
[8.410s] [ext: omni.kit.xr.advertise-107.3.109] startup
[8.413s] [ext: omni.kit.xr.ui.window.profile-107.3.109] startup
[8.442s] [ext: omni.kit.data2ui.core-1.1.2] startup
[8.448s] [ext: omni.kit.actions.window-1.1.3] startup
[8.452s] [ext: omni.kit.xr.profile.common-107.3.109] startup
[8.455s] [ext: omni.kit.data2ui.usd-1.1.2] startup
[8.468s] [ext: omni.anim.curve.core-1.3.1] startup
[8.479s] [ext: omni.no_code_ui.bundle-1.1.2] startup
[8.480s] [ext: omni.kit.xr.scene_view.core-107.3.109] startup
[8.486s] [ext: omni.anim.curve.ui-1.4.1] startup
[8.492s] [ext: omni.kit.xr.scene_view.utils-107.3.109] startup
[9.013s] [ext: isaacsim.robot_motion.lula-4.0.8] startup
[9.024s] [ext: omni.kit.xr.system.openxr-107.3.109] startup
[9.027s] [ext: omni.kit.window.stage-2.6.1] startup
[9.034s] [ext: omni.anim.curve.bundle-1.2.3] startup
[9.035s] [ext: omni.kit.xr.ui.stage-107.3.109] startup
[9.047s] [ext: isaacsim.robot_motion.motion_generation-8.0.26] startup
[9.056s] [ext: isaacsim.core.experimental.materials-0.4.0] startup
[9.063s] [ext: omni.kit.xr.profile.vr-107.3.109] startup

import omni
from pxr import Gf, UsdGeom, Usd
import math
from omni.kit.xr.core import XRCore

stage = omni.usd.get_context().get_stage()
app = omni.kit.app.get_app()
time_code = Usd.TimeCode.Default()


xr_core = XRCore.get_singleton()

# Create visualization prims for the controllers
def ensure_vis_prim(path, color):
    if not stage.GetPrimAtPath(path):
        prim = UsdGeom.Sphere.Define(stage, path)
        prim.CreateRadiusAttr(0.03)
        prim.CreateDisplayColorAttr([color])
    return stage.GetPrimAtPath(path)

left_vis = ensure_vis_prim("/World/LeftHandVis", (0.1, 0.6, 1.0))   # Blue
right_vis = ensure_vis_prim("/World/RightHandVis", (1.0, 0.4, 0.1)) # Orange

prev_left_pos, prev_right_pos = None, None
threshold = 0.05  # Movement threshold (5 cm)

def distance(a, b):
    """Compute Euclidean distance between two 3D points."""
    return math.sqrt((a[0]-b[0])**2 + (a[1]-b[1])**2 + (a[2]-b[2])**2)

def get_controller_pose(device, pose_name="grip"):
    """Get VR controller pose using XR API.

    Args:
        device: XRInputDevice instance
        pose_name: "grip" or "aim" pose

    Returns:
        (position, rotation) tuple or (None, None) if unavailable
    """
    if not device:
        return None, None

    try:
        # Get pose in virtual world space
        pose_matrix = device.get_virtual_world_pose(pose_name)
        pos = pose_matrix.ExtractTranslation()
        rot = pose_matrix.ExtractRotation().GetQuat()  # Quaternion (w, x, y, z)
        return pos, rot
    except Exception as e:
        print(f"Error getting pose: {e}")
        return None, None

def update_vis_prim(prim, pos):
    """Move the visualization sphere to the given position."""
    xformable = UsdGeom.Xformable(prim)
    xformable.MakeMatrixXform().Set(Gf.Matrix4d().SetTranslate(pos))

def on_update(e):
    """Main update callback — runs every frame."""
    global prev_left_pos, prev_right_pos

    # Get current controller devices
    left_controller = xr_core.get_input_device("/user/hand/left")
    right_controller = xr_core.get_input_device("/user/hand/right")

    # ---- Left hand ----
    left_pos, left_rot = get_controller_pose(left_controller, "grip")
    if left_pos:
        update_vis_prim(left_vis, left_pos)
        if prev_left_pos is None:
            prev_left_pos = left_pos
        elif distance(left_pos, prev_left_pos) > threshold:
            print(f"Left moved → {left_pos}")
            print(f"   rotation (quat): {left_rot}")
            prev_left_pos = left_pos

    # ---- Right hand ----
    right_pos, right_rot = get_controller_pose(right_controller, "grip")
    if right_pos:
        update_vis_prim(right_vis, right_pos)
        if prev_right_pos is None:
            prev_right_pos = right_pos
        elif distance(right_pos, prev_right_pos) > threshold:
            print(f"Right moved → {right_pos}")
            print(f"   rotation (quat): {right_rot}")
            prev_right_pos = right_pos

# Subscribe to the app's update event stream
sub = app.get_update_event_stream().create_subscription_to_pop(on_update)
print("VR tracking + visualization active — move > 5 cm to log movement.")

Try this way

Hello!

We noticed that this topic hasn’t received any recent responses, so we are closing it for now to help keep the forum organized.

If you’re still experiencing this issue or have additional questions, please feel free to create a new topic with updated details. When doing so, we recommend mentioning or linking to this original topic in your new post—this helps provide context and makes it easier for others to assist you.

Thank you for being part of the NVIDIA Isaac Sim community.

Best regards,
The NVIDIA Isaac Sim Forum Team