PhysicsRigidBodyAPI#

Makes an Xformable prim a rigid body. Enumerated by usd-schemas CONTAINS PhysicsRigidBodyAPI. Colliders are the prim itself if it is a Gprim with PhysicsCollisionAPI, plus descendant Gprims with PhysicsCollisionAPI.

  • Applies to: Xformable

  • Read only when listed in usd-schemas.

  • Uses blocks: prim, stage_units

What USD population writes#

Every declared attribute is published at its resolved value; relationships only when authored (an authored empty target list is an empty row). The producer also resolves the physics material binding onto this prim (see MaterialBindingAPI) and creates five units-aware PhysxRigidBodyAPI columns when they are unauthored, whether or not PhysxRigidBodyAPI is applied (see that component).

Columns#

Raw fallback is the USD schema value. Producer writes is what ovstage population puts in the column for a USD stage. Parser default applies on the consumer when the column is absent, in stage units. diverges means writing the raw fallback literally parses differently from omitting the column (the parser default): USD population may well publish that very value for an unauthored attribute, so the marker is about the column being present, not about its value.

Column

Type

Units

Raw fallback

Producer writes

Parser default

If absent

physics:rigidBodyEnabled

bool8

none

true

resolved USD value (authored, else raw fallback)

true

Dynamic body. False produces a static body that ignores every PhysxRigidBodyAPI column.

physics:kinematicEnabled

bool8

none

false

resolved USD value (authored, else raw fallback)

false

Not kinematic. A kinematic body with a non-zero velocity is promoted to a surface-velocity body.

physics:startsAsleep

bool8

none

false

resolved USD value (authored, else raw fallback)

false

Body starts awake.

physics:velocity

float32[3], VECTOR

length/s

(0, 0, 0)

resolved USD value (authored, else raw fallback)

(0, 0, 0)

Zero initial linear velocity.

physics:angularVelocity

float32[3], VECTOR

deg/s (deg_to_rad)

(0, 0, 0)

resolved USD value (authored, else raw fallback)

(0, 0, 0)

Zero initial angular velocity.

usd-metadata:customData:physics:localSpaceVelocities

bool8

none

the nested customData value physics -> localSpaceVelocities when present on any prim the physics selector matched

consumer setting outputVelocitiesLocalSpace

Velocities are interpreted per the consumer-wide setting. When true, both velocities are rotated into world space and the linear one is also scaled by the prim’s world scale.

physics:simulationOwner

uint64 array, RELATIONSHIP_PATH_ID

not written

Body joins the default scene. A non-empty list whose targets resolve to no PhysicsScene drops the body.

Interactions#

  • prim: World translation and rotation, composed from omni:xform up the chain (or omni:fabric:worldMatrix when present), become the body pose.

  • PhysicsScene: No scene relationship is required; see PhysicsScene for the consumer’s synthetic default.

  • PhysxRigidBodyAPI: The producer creates sleepThreshold, stabilizationThreshold, maxDepenetrationVelocity, maxLinearVelocity and maxContactImpulse columns on every rigid body when unauthored. Without PhysxRigidBodyAPI in usd-schemas the consumer ignores them.