Capsule#
Capsule geometry (cylinder of the given height capped by two hemispheres of the given radius, along axis). With PhysicsCollisionAPI applied it becomes a PhysX capsule shape: half height = height / 2 scaled by the long-axis world-scale component, radius scaled by the larger of the two perpendicular components.
Type chain:
Gprim,Boundable,XformableApplicable APIs:
MaterialBindingAPI,PhysicsArticulationRootAPI,PhysicsCollisionAPI,PhysicsFilteredPairsAPI,PhysicsMassAPI,PhysicsMeshCollisionAPI,PhysicsRigidBodyAPI,PhysxArticulationAPI,PhysxCollisionAPI,PhysxContactReportAPI,PhysxConvexDecompositionCollisionAPI,PhysxConvexHullCollisionAPI,PhysxRigidBodyAPI,PhysxSDFMeshCollisionAPI,PhysxSphereFillCollisionAPI,PhysxSplinesSurfaceVelocityAPI,PhysxSurfaceVelocityAPI,PhysxTriangleMeshCollisionAPI,PhysxTriangleMeshSimplificationCollisionAPI,PhysxTriggerAPITransform columns: yes,
XformableUses blocks:
prim
What USD population writes#
Geometry attributes of a Gprim are published only from the curated list (size, radius, height, axis, points, faceVertexIndices, faceVertexCounts, holeIndices, orientation, doubleSided) and only when the prim carries a shape-consuming API such as PhysicsCollisionAPI. For a Capsule that is radius, height and axis. extent and normals are never published. A Capsule without a shape API gets a row only as an ancestor or relationship target, with no geometry.
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 |
|---|---|---|---|---|---|---|
|
float64 |
length |
0.5 |
resolved USD value (authored, else raw fallback) |
0.5 |
Radius 0.5 (times the larger perpendicular world-scale component). The consumer seeds the UsdGeomCapsule fallback 0.5, which is also what the producer publishes for an unauthored attribute, so omitting the column is equivalent to USD population. |
|
float64 |
length |
1.0 |
resolved USD value (authored, else raw fallback) |
1.0 |
Half height 0.5 (times the long-axis world-scale component). The consumer seeds the UsdGeomCapsule fallback 1.0, which is also what the producer publishes for an unauthored attribute, so omitting the column is equivalent to USD population. |
|
uint64, TOKEN_ID |
none |
Z |
resolved USD value (authored, else raw fallback) |
Z |
Z. Only the tokens X and Y select another axis; an absent column, an invalid token id or any unrecognised token (including the literal Z) resolves to Z. The consumer reads the token id, never the string. |
Derived values#
half_height =
abs((height * 0.5) * worldScale[axis]). height / 2 multiplied by the world-scale component along axis, then fabs. The scale is decomposed from the composed world transform; the runtime does not apply the transform scale again.radius =
abs(radius * max(abs(worldScale[perp0]), abs(worldScale[perp1]))). radius multiplied by the larger absolute value of the two world-scale components perpendicular to axis, then fabs.
Interactions#
PhysicsCollisionAPI: Geometry is read only when the collision API is applied to this prim (or to a parent Xform that descends one level to this analytic child). extent is never read and never published.
Notes#
Character-controller divergence: a prim with PhysxCharacterControllerAPI uses a different rule from the collision path. The CCT reads radius and height with the same 0.5 / 1.0 seeds but computes radius = worldScale.y * radius and halfHeight = worldScale.z * height / 2 regardless of axis (axis is not read), and a CCT on any geometry other than Capsule is dropped silently on the ovstage path (the log line lives in the USD walker).
Type dispatch is by exact prim-type string on the geometry backing key, in the order Plane, custom-geometry token, Cube, Sphere, Capsule, Cylinder, Cone, Mesh.