Render Warp Mesh directly into Isaac Sim Scene

Hey All,

I’m looking to render a mesh created in Warp directly into an Isaac Sim Scene – I got it working by writing the data into an existing prim with mesh, but I would greatly prefer it working without creating a sync point for the CPU/GPU.

The Warp code samples seem to suggest this should be possible, but I can’t get it working in a python extension to Isaac sim (2023.1.0)

Specifically The Warp example “example_mesh.py” demo code instances a USDRenderer with reference to the USDScene, however creating an instance of USDRenderer throws an error when called inside Isaac Sim as so.

Failing code sample:

from warp.render import UsdRenderer

class SomePythonExtension(omni.ext.IExt):

    def __init__(self, world=None):
        super().__init__()
        stage = omni.usd.get_context().get_stage() 
        self.renderer = UsdRenderer(stage)    

error message:

2023-10-23 13:15:13  [Error] [carb.scripting-python.plugin] ErrorException: 
2023-10-23 13:15:13  [Error] [carb.scripting-python.plugin] 	Error in 'pxrInternal_v0_22__pxrReserved__::UsdGeomXformable::AddXformOp' at line 190 in file W:\ac88d7d902b57417\USD\pxr\usd\usdGeom\xformable.cpp : 'The xformOp 'xformOp:rotateY' already exists in xformOpOrder [[xformOp:rotateY, xformOp:rotateX]].'
2023-10-23 13:15:13  [Error] [carb.scripting-python.plugin] 
2023-10-23 13:15:13  [Error] [carb.scripting-python.plugin] At:
2023-10-23 13:15:13  [Error] [carb.scripting-python.plugin]   c:/users/…./appdata/local/ov/pkg/isaac_sim-2023.1.0/extscache/omni.warp.core-0.10.1/warp/render/render_usd.py(114): __init__
...

Probably creating/using a USDRenderer with this context is incorrect but I can’t seem to find any documentation on how to do this properly

can anyone help me out?