Omni PhysX Visual Debugger#

PhysX visual debugger extension - OmniPVD

Documentation#

Omniverse PhysX Visual Debugger (OmniPVD) allows the recording and inspection of PhysX simulation data. It records transformations, attributes, contacts, friction anchors, and more, and transforms them into USD for interactive inspection.

OmniPVD consists of a shared library and a Kit extension. The shared library is used by both the PhysX SDK simulation engine for the recording or writing of OmniPVD binary files (.OVD) and by the omni.physx.pvd Kit extension to read and parse the recorded OVD files.

The OmniPVD Kit extension (omni.physx.pvd) provides:

  • Import and transformation of PhysX recordings into cached USD/USDA format for inspection

  • A dedicated OVD timeline with pre-simulation and post-simulation frame inspection

  • An OVD Object Tree with search, visibility locking (Hide/Show per prim), and reference navigation

  • A Property widget with paginated array display for large attributes

  • Visualization gizmos for contacts, bounding boxes, center of mass, coordinate systems, velocities, and joints

  • Baking of PhysX simulation data onto a USD Stage through the ovd_to_usd_over_with_layer_creation Python API, including particle position baking for both UsdGeomPoints and UsdGeomPointInstancer prims

  • Support for rigid bodies, articulations, deformable volumes and surfaces, particle systems, and convex core geometries

  • Automatic stage setup on import (lights, metersPerUnit from tolerancesScale, camera clipping)

  • OVD Messages tab for viewing recorded debug messages

  • Recording from the UI, command line (headless sessions), or Python scripts

To record a physics scene, go into the Physics Debug window, under the PVD section and check “Recording Enabled”. This will allow for a binary serialization of your physics scene into an OVD file. Once you have the OVD file ready you can import it using the OmniPVD extension.