PhysxCollisionAPI#

PhysX contact tuning for a collision shape. Offsets use a value sentinel instead of the authored bit because ovstage reports every column as authored.

  • Applies to: Gprim

  • Requires on the same prim: PhysicsCollisionAPI

  • Read only when listed in usd-schemas.

What USD population writes#

Every declared attribute is published at its resolved value. The only derivation is contactOffset on a Plane collider (0.02 / metersPerUnit when unauthored). For every other shape the raw -inf fallbacks of contactOffset and restOffset reach the consumer, which treats them as unset through its value sentinel. The producer documents the non-plane -1 auto sentinel and the Newton contactMargin/contactGap cascade as unimplemented.

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

physxCollision:contactOffset

float32

length

-inf

when unauthored: 0.02 / metersPerUnit on a Plane collider only; every other shape keeps -inf

-1.0

-1, meaning the PhysX layer computes the offset from shape size. Writing the raw fallback -inf is equivalent to omitting the column.

physxCollision:restOffset

float32

length

-inf

resolved USD value (authored, else raw fallback)

0.0

0. Committed only when restOffset < contactOffset.

physxCollision:torsionalPatchRadius

float32

length

0.0

resolved USD value (authored, else raw fallback)

0.0

0.

physxCollision:minTorsionalPatchRadius

float32

length

0.0

resolved USD value (authored, else raw fallback)

0.0

0.