ovstage Physics Population Domain#

What ovphysx reads from an ovstage Stage, per prim type and applied API schema, and what ovstage population writes for a USD stage. Each column records the USD fallback, what the producer writes, and what the parser assumes when the column is absent, so that a Stage populated without USD parses exactly like one populated from USD. The Python module ovphysx.population and the C++ header ovphysx/population/Population.hpp are generated from the same contract and write these columns for you.

Structural blocks#

  • prim: Structural columns on every physics-domain prim: the type token, the applied-schema list, and the local transform.

  • stage_units: Length, mass and up-axis metadata on the root prim, read once per Stage by the consumer.

Prim types#

  • Capsule: Capsule geometry (cylinder of the given height capped by two hemispheres of the given radius, along axis).

  • Cone: Cone geometry along axis.

  • Cube: Axis-aligned box geometry.

  • Cylinder: Cylinder geometry along axis.

  • Material: UsdShade Material prim.

  • Mesh: Polygonal mesh geometry.

  • PhysicsCollisionGroup: A named set of colliders plus the list of groups it does not collide with.

  • PhysicsDistanceJoint: Keeps the distance between the two local frame origins inside [minDistance, maxDistance]; either bound is optional.

  • PhysicsFixedJoint: Welds two bodies (or a body and the world) with no degrees of freedom.

  • PhysicsJoint: Base joint between two rigid bodies (or one body and the world).

  • PhysicsPrismaticJoint: Slider joint: one translational degree of freedom along a local axis, optionally limited in stage length units.

  • PhysicsRevoluteJoint: Hinge joint: one rotational degree of freedom about a local axis, optionally limited in degrees.

  • PhysicsScene: A simulation scene.

  • PhysicsSphericalJoint: Ball joint: three rotational degrees of freedom about a common point, optionally bounded by an elliptical cone given as two half-angles in degrees.

  • PhysxPhysicsGearJoint: Couples the angular velocities of two revolute (hinge) joints by a fixed ratio.

  • PhysxPhysicsRackAndPinionJoint: Couples the angular velocity of a revolute (hinge) joint to the linear velocity of a prismatic joint by a fixed ratio in degrees per length unit.

  • Plane: Infinite plane geometry.

  • Sphere: Sphere geometry.

  • Xform: A transform-only prim.

Applied API schemas#

  • MaterialBindingAPI: Binds a physics material to a collision shape.

  • PhysicsArticulationRootAPI: Marks the root of a reduced-coordinate articulation.

  • PhysicsCollisionAPI: Makes a Gprim a collision shape.

  • PhysicsDriveAPI: Force- or acceleration-mode PD drive on one joint axis, applied as PhysicsDriveAPI:.

  • PhysicsFilteredPairsAPI: Suppresses collision between this prim and the listed prims.

  • PhysicsJointStateAPI: Initial joint-space position and velocity of one axis, applied as PhysicsJointStateAPI:.

  • PhysicsLimitAPI: Per-axis limit of a D6 joint (a prim typed exactly PhysicsJoint), applied as PhysicsLimitAPI:.

  • PhysicsMassAPI: Explicit mass properties on a body or a shape.

  • PhysicsMaterialAPI: Makes a prim a physics material and creates a PxMaterial for it.

  • PhysicsMeshCollisionAPI: Chooses how a Mesh collider is approximated for PhysX.

  • PhysicsRigidBodyAPI: Makes an Xformable prim a rigid body.

  • PhysxArticulationAPI: PhysX tuning of a reduced-coordinate articulation, applied on the same prim as PhysicsArticulationRootAPI.

  • PhysxCollisionAPI: PhysX contact tuning for a collision shape.

  • PhysxContactReportAPI: Registers a rigid body (or every link of an articulation) for contact reporting.

  • PhysxConvexDecompositionCollisionAPI: Convex decomposition cooking parameters for a Mesh collider with physics:approximation convexDecomposition.

  • PhysxConvexHullCollisionAPI: Convex hull cooking parameters for a Mesh collider with physics:approximation convexHull.

  • PhysxDrivePerformanceEnvelopeAPI: Actuator performance envelope of one joint drive (maximum actuator velocity, velocity-dependent resistance, speed-effort gradient), applied as PhysxDrivePerformanceEnvelopeAPI: alongside PhysicsDriveAPI:.

  • PhysxJointAPI: PhysX tuning shared by every joint type: joint friction, a joint-level armature seed and a joint-level maximum joint velocity.

  • PhysxJointAxisAPI: Per-axis PhysX properties of an articulation joint (armature, maximum joint velocity, static, dynamic and viscous friction), applied as PhysxJointAxisAPI:.

  • PhysxLimitAPI: PhysX tuning of one joint limit (restitution, bounce threshold, soft-limit spring), applied as PhysxLimitAPI:.

  • PhysxMaterialAPI: PhysX tuning for a physics material: combine modes and compliant contact.

  • PhysxPhysicsDistanceJointAPI: Spring behaviour of a distance joint: enable flag, stiffness and damping of the spring that acts when the distance leaves [minDistance, maxDistance].

  • PhysxRigidBodyAPI: PhysX tuning for a dynamic rigid body.

  • PhysxSDFMeshCollisionAPI: Signed-distance-field cooking parameters for a Mesh collider with physics:approximation sdf.

  • PhysxSceneAPI: PhysX tuning for a PhysicsScene prim: solver, broadphase, flags, friction thresholds, iteration bounds and GPU memory budgets.

  • PhysxSphereFillCollisionAPI: Sphere fill cooking parameters for a Mesh collider with physics:approximation sphereFill.

  • PhysxSplinesSurfaceVelocityAPI: Surface velocity that follows a BasisCurves prim under the body instead of a constant vector.

  • PhysxSurfaceVelocityAPI: Conveyor-belt surface velocity on a rigid body: contacts against the body behave as if its surface moved with the given linear and angular velocity while the body itself stays put.

  • PhysxTriangleMeshCollisionAPI: Triangle mesh cooking parameter (weld tolerance) for a Mesh collider with physics:approximation none or sdf.

  • PhysxTriangleMeshSimplificationCollisionAPI: Quadric mesh simplification cooking parameters for a Mesh collider with physics:approximation meshSimplification.

  • PhysxTriggerAPI: Marks a collision shape as a trigger volume.

Compositions#

  • articulation_fixed_base: Multi-prim test composition: a two-link reduced-coordinate articulation.

  • articulation_floating: Multi-prim test composition: a two-link reduced-coordinate articulation.

  • conveyor_cube: Multi-prim test composition: one kinematic Cube rigid body carrying PhysxSurfaceVelocityAPI, the conveyor-belt pattern.

  • d6_joint_pair: Multi-prim test composition: two Cube rigid bodies one unit apart (B translated +3 in x, half extents 0.5) joined by a D6 joint (a prim typed exactly PhysicsJoint) with a twist (rotX) limit, drive and PhysX limit tuning whose local frames meet halfway between them.

  • distance_joint_pair: Multi-prim test composition: two Cube rigid bodies one unit apart (B translated +3 in x, half extents 0.5) joined by a PhysicsDistanceJoint (a native PxDistanceJoint) with min/max distance, the PhysX distance spring and PhysX limit tuning whose local frames meet halfway between them.

  • fixed_joint_pair: Multi-prim test composition: two Cube rigid bodies one unit apart (B translated +3 in x, half extents 0.5) joined by a PhysicsFixedJoint (all six axes locked) whose local frames meet halfway between them.

  • gear_joint_pair: Multi-prim test composition: two Cube rigid bodies (B translated +3 in x), each hinged to the world by its own PhysicsRevoluteJoint, and a PhysxPhysicsGearJoint between the bodies that references the two hinges and couples their angular velocities.

  • material_bound_cube: Multi-prim test composition: a Material prim carrying PhysicsMaterialAPI and PhysxMaterialAPI, bound as the physics material of a Cube rigid body through material:binding:physics.

  • physics_scene: Convenience composition: one PhysicsScene prim, optionally with PhysxSceneAPI.

  • prismatic_joint_pair: Multi-prim test composition: two Cube rigid bodies one unit apart (B translated +3 in x, half extents 0.5) joined by a PhysicsPrismaticJoint along local X with a linear drive and PhysX limit tuning whose local frames meet halfway between them.

  • rack_and_pinion_joint_pair: Multi-prim test composition: a pinion Cube rigid body hinged to the world by a PhysicsRevoluteJoint, a rack Cube rigid body (translated +3 in x) on a PhysicsPrismaticJoint to the world, and a PhysxPhysicsRackAndPinionJoint between the bodies that references the hinge and the prismatic joint and couples angular to linear velocity.

  • revolute_joint_pair: Multi-prim test composition: two Cube rigid bodies one unit apart (B translated +3 in x, half extents 0.5) joined by a PhysicsRevoluteJoint about local X with an angular drive and PhysX limit tuning whose local frames meet halfway between them.

  • rigid_body_capsule: Convenience composition: one Capsule prim that is both the body and its only collider.

  • rigid_body_cone: Convenience composition: one Cone prim that is both the body and its only collider (a PxConvexCoreGeometry with the default runtime settings).

  • rigid_body_cube: Convenience composition: one Cube prim that is both the body and its only collider.

  • rigid_body_cube_pair: Multi-prim proof composition: two Cube rigid bodies side by side, each its own collider, authored one PrimBatch per prim.

  • rigid_body_cylinder: Convenience composition: one Cylinder prim that is both the body and its only collider (a PxConvexCoreGeometry with the default runtime settings).

  • rigid_body_sphere: Convenience composition: one Sphere prim that is both the body and its only collider.

  • spherical_joint_pair: Multi-prim test composition: two Cube rigid bodies one unit apart (B translated +3 in x, half extents 0.5) joined by a PhysicsSphericalJoint with a swing cone limit and PhysX cone tuning whose local frames meet halfway between them.

  • static_plane_collider: Convenience composition: one Plane prim with a collider and no rigid body, the usual ground plane (a PxRigidStatic with a PxPlaneGeometry).

Findings#

  • Recorded findings: every producer/consumer divergence the contract records, with the compositions whose parity test asserts it as a canary.