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#
Tags |
Summary |
Compatibility |
Validator |
---|---|---|---|
π |
openusd |
||
π |
openusd |
||
β |
openusd |
||
β |
openusd |
||
β |
Rigid bodies can not be nested unless xformOp reset xform stack is used. |
openusd |
|
β |
Rigid bodies have to be UsdGeomXformable prims without skew matrix. |
openusd |
|
β |
openusd |
||
β |
openusd |
||
β |
openusd |
||
π |
Rigid bodies or their descendent collision shapes should have a mass specification. |
openusd |
|
π |
openusd |