Physics Rigid Bodies#

Overview#

This capability provides requirements for physical simulation of solid objects that move and collide with each other. Rigid bodies maintain their shape during simulation while responding to forces, collisions, and constraints.

Summary#

  • The rigid body schema must be applied to any xformable prim that represent a rigid physical object

  • Colliding Gprims need to have the Collision API applied

  • Each rigid body or it’s descendant colliders, should have the mass API applied.

Granularity#

If joints are not present, each rigid body will be simulated as a free body. Only create multiple rigid bodies in an asset if they are either connected by joints or if they are intended to be simulated without being connected to each other.

Schema / OpenUSD Specification#

Rigid Body Physics are applied using the following two schemas that are part of the core OpenUSD specification.

USDA Sample#

(
    kilogramsPerUnit = 1
)

def Xform "RobotHead" (
    prepend apiSchemas = ["PhysicsRigidBodyAPI", "PhysicsMassAPI"]
    ) {

    physics:mass = 10.0

    def Mesh "Head" (
        prepend apiSchemas = ["PhysicsCollisionAPI"]
    ) {
        # ...
    }

    def Mesh "Jaw" (
        prepend apiSchemas = ["PhysicsCollisionAPI"]
    ) {
        # ...
    }
}

def Mesh "GroundPlane" (
    prepend apiSchemas = ["PhysicsCollisionAPI"]
) {}

Requirements#