Operating System:
Windows
Linux
Kit Version:
110 (Kit App Template)
109 (Kit App Template)
108 (Kit App Template)
107 (Kit App Template)
106 (Kit App Template)
105 (Launcher)
Kit Template:
USD Composer
USD Explorer
USD Viewer
Custom also seen in Base-Editor
GPU Hardware:
A series (Blackwell)
A series (ADA)
A series
50 series
40 series
30 series
GPU Driver:
Latest
Recommended (573.xx)
Other 570.xxx
Work Flow:
I’m trying to control articulation joints and object motion using a Python script inside USD Composer (also happens in Basic-Editor). I created a mechanical structure with an articulation setup, where each link is connected by prismatic joints that move along the X and Z axes. One special aspect is that these prismatic joints are embedded inside cylinder/slider components, meaning the slider moves linearly relative to the rail.
I then attached a Python script to this mechanism. By reading and writing the joint state (position and velocity), the script automatically drives the mechanism’s motion. For example:
jointStateAPI = PhysxSchema.JointStateAPI.Apply(revoluteJoint.GetPrim(), UsdPhysics.Tokens.angular)
jointStateAPI.CreatePositionAttr(45.0)
jointStateAPI.CreateVelocityAttr(180.0)
jointPosition = jointStateAPI.GetPositionAttr().Get()
jointVelocity = jointStateAPI.GetVelocityAttr().Get()
Main Issue:
When I run the simulation using GPU physics in the physicsScene (or even when I don’t explicitly create a physicsScene and let the simulation auto‑create one), I get continuous error messages. Eventually Hydra and RTX rendering crash due to illegal CUDA memory access.
I’m trying to understand what might cause this. Is this a known issue with articulation joints, prismatic joints inside nested geometry, or joint state manipulation on the GPU?
Secondary Issue
When I switch to CPU physics, the simulation no longer crashes. However, I notice that modifying the joint state values does not allow me to achieve higher velocities. The actual joint speed seems capped at around ±100, even though:
-
My joint drives have no limits set
-
The physicsScene has maximum solver iterations
-
I’m directly writing velocity values into the joint state
Why is the velocity capped? Is there an internal PhysX limit, or does articulation joint velocity behave differently from what the API suggests?
Current Workaround
The only way I can currently achieve higher joint speeds is by:
-
Using a pure velocity drive with a high damping value and high target velocity, or
-
Applying a large force to the slider
Both methods work, but they defeat the purpose of directly controlling joint state via Python.
Reproduction Steps:
Error Code:
2026-04-07T07:10:10Z [344,633ms] [Warning] [omni.hydra] Rendering failed. 2026-04-07T07:10:10Z [344,633ms] [Error] [omni.usd] HydraEngine::render failed to end the compute graph: error code 6
2026-04-07T07:10:10Z [344,695ms] [Error] [carb.cudainterop.plugin] CUDA error 700: cudaErrorIllegalAddress - an illegal memory access was encountered)
2026-04-07T07:10:10Z [344,695ms] [Error] [carb.cudainterop.plugin] Failed to import external memory in CUDA
2026-04-07T07:10:10Z [344,695ms] [Error] [gpu.foundation.plugin] Cannot create cuda external memory for resource!
2026-04-07T07:10:10Z [344,696ms] [Error] [gpu.foundation.plugin] Texture creation failed for the device: 0.
2026-04-07T07:10:10Z [344,696ms] [Error] [carb.scenerenderer-rtx.plugin] Failed to allocate 1336x795 LdrColor resource for device mask 0x1
2026-04-07T07:10:10Z [344,696ms] [Warning] [omni.hydra] Rendering failed. 2026-04-07T07:10:10Z [344,696ms] [Error] [omni.usd] HydraEngine::render failed to end the compute graph: error code 6
and it repeats…