USDRT Python APIs broken/do not match documentation?

I am trying to move some code that’s:

  • Running as part of a standalone application using the isaacsim SimulationApp
  • Doing some procedural generation that spawns a bunch of prims using the Python USD APIs
  • Is pretty slow right now because of the high amount of USD changes this is doing

over to USDRT for performance improvements.

According to the USDRT documentation here: USDRT Python API Reference — usdrt 7.5.1 documentation the USDRT API should be pin-compatible with USD, but right now while some parts are working, most of the physics-related APIs seem to be broken, for example, trying to use UsdPhysics.CollisionAPI.Apply gives:

AttributeError: type object 'usdrt.UsdPhysics._UsdPhysics.CollisionAPI' has no attribute 'Apply'

and UsdShade.MaterialBindingAPI appears to not have a Bind method either (though this does match the documentation)

Is there another way to interact with the stuff from UsdPhysics/PhysxSchema/UsdShade via USDRT I’m missing? Or some other way to make mass creation of geometry primitives and joints faster.

What version of Kit is this ? 105.2 or 106.0 ?

106.0. This is running on the IsaacSim 4.0.0 docker image.

What happens if you run it normally outside of a docker ? Because the docker says 4.0 but Isaac Sim is 4.1 for the latest version

This remains the case under a fresh Isaac Sim 4.1.0 install off exchange.

I ended up working around this by cloning prims with all the relevant APIs applied, then modifying via USDRT GetAttribute. The majority of usdrt.xxxAPI packages still appear to be at least somewhat non-functional.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.