Requirements#
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 |
|---|---|---|---|
π |
MuJoCo collision shapes must apply |
other |
MuJoCoColliderAPIChecker |
π |
other |
MuJoCoMeshCollisionAPIChecker |
|
π |
other |
NewtonColliderAPIChecker |
|
π |
other |
NewtonSDFAttributesChecker |
|
π |
other |
NewtonMassAttributesChecker |
|
π |
physx |
||
π |
open-usd |
||
π |
open-usd |
||
π |
open-usd |
||
π |
open-usd |
||
β |
physx |
||
β |
open-usd |
||
β |
open-usd |
||
β |
Rigid bodies can not be nested unless xformOp reset xform stack is used. |
open-usd |
|
β |
Rigid bodies have to be UsdGeomXformable prims without skew matrix. |
open-usd |
|
β |
Rigid bodies should not be nested unless they are connected by a joint. |
open-usd |
|
β |
open-usd |
RigidBodyColliderMeshChecker |
|
β |
open-usd |
||
β |
open-usd |
||
π |
Rigid bodies or their descendant collision shapes must have a mass specification. |
open-usd |
|
π |
open-usd |
||
π |
open-usd |
||
π |
open-usd |