PhysxSurfaceVelocityAPI#
Conveyor-belt surface velocity on a rigid body: contacts against the body behave as if its surface moved with the given linear and angular velocity while the body itself stays put. Read only on dynamic bodies and articulation links (parseDynamicBody); a static body ignores it.
Applies to:
XformableRequires on the same prim:
PhysicsRigidBodyAPIRead only when listed in
usd-schemas.Uses blocks:
prim
What USD population writes#
Every declared attribute is published at its resolved value. Nothing is rewritten or created by the producer.
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 |
|---|---|---|---|---|---|---|
|
bool8 |
none |
true |
resolved USD value (authored, else raw fallback) |
true |
On: applying the API with nothing authored enables surface velocity (with zero velocities, i.e. a body whose contacts are solved as if its surface were static). |
|
bool8 |
none |
true |
resolved USD value (authored, else raw fallback) |
true |
On: physxSurfaceVelocity:surfaceVelocity is in the body’s local frame and the per-axis world scale is folded into it at parse time. |
|
float32[3], VECTOR |
length/s |
(0, 0, 0) |
resolved USD value (authored, else raw fallback) |
(0, 0, 0) |
Zero linear surface velocity. When surfaceVelocityLocalSpace is true the parser multiplies each component by the matching component of the prim’s decomposed world scale (no rotation); the pre-fold value is kept separately because the fold is not invertible (a zero scale component loses the axis). |
|
float32[3], VECTOR |
deg/s (deg_to_rad) |
(0, 0, 0) |
resolved USD value (authored, else raw fallback) |
(0, 0, 0) |
Zero angular surface velocity. Authored in deg/s, converted to rad/s by the parser; no scale fold. The pivot is the body’s global pose at creation. |
Interactions#
PhysicsRigidBodyAPI: Legacy promotion: a body with physics:kinematicEnabled true and a non-zero physics:velocity or physics:angularVelocity is treated as a surface-velocity body (enabled, world space, velocities copied) even without this API. When this API is applied it runs afterwards and fully overrides that promotion; the API is not restricted to kinematic bodies.prim: With surfaceVelocityLocalSpace true the decomposed world scale of this prim is folded component-wise into surfaceVelocity. Rotation is never applied at parse time.PhysxSplinesSurfaceVelocityAPI: Mutually exclusive: when both surfaceVelocityEnabled and the splines surfaceVelocityEnabled are true, the splines one is forced off.