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?

I’m also interested in doing something like this, were you able to successfully do it?