Omniverse™ Physics and PhysX SDK Limitations#
This section provides a table of known limitations with the PhysX engine and workarounds.
Feature |
Description of Limitation |
Recommended Workaround |
IsaacSim GPU RL Perf Impact |
Perf Impact Reason |
---|---|---|---|---|
Custom Geometry GPU pipeline contact reports |
Custom geometry contact data is not made available via the tensor API GPU contact information getters. |
Use GPU native collision approximation like convex hull, SDF tri-mesh, base geoms like sphere/box/capsule. Disable custom geometry cylinders and cones in physics stage settings. |
Yes |
Contacts are generated by CPU custom geometry callbacks |
Custom Geometry collision against GPU Features |
Custom geometry does not collide with GPU features (particles and deformable bodies), and may have poor collision quality against SDF tri-mesh colliders. |
Use GPU native collision approximation like convex hull, SDF tri-mesh, base geoms like sphere/box/capsule. Disable custom geometry cylinders and cones in physics stage settings. |
Yes |
Contacts are generated by CPU custom geometry callbacks |
Particles and deformable body contact reports |
Particles and deformable body do not support contact reports |
NA |
No |
|
Simulation-resume determinacy |
Replaying a simulation from an in-contact simulation state saved out in the middle of a simulation run can be nondeterministic. The PhysX SDK is using internal contact state that can persist over multiple simulation steps and that cannot currently be serialized and recovered from USD data. |
Restart simulations from the beginning to achieve determinism. |
No |
NA |
Conveyor Belts / Kinematics with nonzero velocity |
|
Do not use the conveyor belt feature with particles, deformable bodies, or SDF tri-mesh collision geometry. Use rigid bodies with non-SDF collision geometry instead. |
Yes |
The conveyor belt feature will trigger a CPU code path, so it is best to avoid for maximum GPU pipeline performance. |
Isosurface |
Isosurface may be leaking memory |
Do not use isosurface feature if memory leaks are an issue. It is a render-only feature and does not affect underlying fluid simulation. |
Yes |
Memory leak will lead to out of memory (OOM) |
Deformable Bodies and Particles static friction |
Static friction is not supported. |
NA |
No |
|
Deformable Bodies and Particle Friction Combine Mode |
Friction combine mode is not supported. Any interaction is using the dynamic friction set on the particle/deformable actor. |
NA |
No |
|
Particles simulation |
Particles can roll off flat collision surfaces that are perpendicular to gravity due to solver ghost forces. |
NA |
No |
|
Articulation Tendons |
The simulation fidelity and behavior can be inadequate. Articulation joint incoming force reported will be excessively high when using nonzero TGS velocity iterations. |
Fixed tendons: Use the Mimic Joint feature. Spatial tendons: Apply external forces to the links to mimic the spatial tendons. Force sensing: Use TGS with zero velocity iterations. |
No |
|
GPU Convex Hull Vertex/Face Limit |
For performance/memory footprint, the SDK limits GPU-compatible convex hulls to 64 vertices and faces. This can lead to poor approximation quality to the asset collider tri-mesh. |
Use convex decomposition or SDF tri-meshes to capture details better. Be aware that a convex decomposition with the same set of vertices as a single convex hull may not produce the exact same behavior because contact detection runs on each convex independently. |
Yes |
Switching to convex decomposition or SDF will have a simulation perf impact due to higher computational cost. |
Spherical Articulation Joints on links with nonidentity center-of-mass transform (cmasslocalpose) |
Joint limits and drives for spherical articulation joints may not respond correctly in certain joint state ranges if the articulation joint is setup on a link with nonidentity mass frame setup (cmasslocalpose) |
If possible, transform asset such that prim and mass frame coincide such that an identity transform can be used for the mass frame. |
No |
|
TGS Velocity Iterations |
|
|
No |
|
D6 Joint Drive |
D6 Joint Drive does not behave exactly as expected when the TGS solver is employed. |
If there are drive behavior issues then use PGS instead. |
No |
|
D6 Joint Drive |
D6 Joint Drive does not work well with a combination of TGS and velocity iterations. |
When TGS is employed it is recommended to focus computational effort on position iterations and to have zero velocity iterations. |
No |
|
Articulation Link Force Sensors |
The force sensors are deprecated and will be removed in a future version. They reported incorrect/implausible values for many use cases. |
Use contact force reports or link incoming joint force instead. |
No |
|
Articulation Joint Solver Forces |
The joint solver force reporting is deprecated and will be removed in a future version. The reported forces were incorrect/implausible. |
Use link incoming joint force reporting instead. |
No |
|
Particle Cloth |
Particle cloth will be deprecated when replaced with surface deformable bodies when they are ready. We don’t have an ETA for this yet. |
Do not use particle cloth. |
No |
|
Articulation Loop-closing using D6 Joints |
We have seen issues with loop-closures using D6 Joints where the simulation goes unstable, mainly using GPU simulation. |
Try increasing simulation time steps per second on the scene (i.e. decrease the simulation time step), try increasing articulation solver iterations, and try PGS and TGS solvers. |
No |
|
Articulation joint friction |
There are reports of differing effective joint friction between PGS and TGS solver. The friction model may not be suitable for all applications,see details in the API documentation. |
A more common velocity-proportional dynamic friction model can be implemented using a joint drive with zero target velocity and a suitable damping parameter. |
No |