Plane#

Infinite plane geometry. With PhysicsCollisionAPI applied it becomes a PhysX plane shape (PxPlaneGeometry) facing along axis. The plane is infinite, so width, length and the world scale are ignored; only axis is read.

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 Plane that is axis (and doubleSided, which the consumer never reads for a Plane). width, length, extent and normals are never published. A Plane collider is also where the producer derives physxCollision:contactOffset = 0.02 / metersPerUnit when unauthored (see PhysxCollisionAPI).

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

axis

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 PlanePhysxShapeDesc constructor default (eX) is always overwritten by this read.

Derived values#

  • world_scale = ignored. No scale is applied: scaleShapeDescByInstance falls through explicitly for ePlaneShape, and the shape dispatch reads no size attribute. Only the rotation and translation of the world transform matter.

Interactions#

  • PhysicsCollisionAPI: Geometry is read only when the collision API is applied. A plane is always a static shape in PhysX; the collider must not sit on or under a dynamic rigid body.

  • PhysxCollisionAPI: The plane is the only shape whose absent physxCollision:contactOffset is a finite units-aware value (0.02 / metersPerUnit) instead of the -1 recompute sentinel; the producer publishes the same derived value when the attribute is unauthored.

Notes#

  • Plane is decided before the custom-geometry token check in the shape dispatch because the string Plane is itself a pre-registered custom-shape token (legacy alias); a Plane-typed prim is therefore always a PxPlaneGeometry, never a custom geometry.