Geometry

Generated from the schema registry by ernie schema --markdown.

Imageable

What every prim has: visibility, purpose and the world it is in.

Abstract base

Attribute Type Description Fallback Values Source
visibility token "invisible" hides the prim and its descendants. "inherited" inherited, invisible UsdGeom
purpose token Which renders include it and its descendants: default, render, proxy or guide. "default" default, render, proxy, guide UsdGeom
ernie:world int The batch world the prim and its descendants are in; -1 for every world. -1 ≥ -1 Ernie

Xformable

What has a transform, composed from its xformOps.

Abstract base · Inherits Imageable

Attribute Type Description Fallback Values Source
xformOpOrder token[] The xformOp attributes composing the local transform, outermost first. [] UsdGeom

Boundable

What has an extent in its own space, computed from its attributes.

Abstract base · Inherits Xformable

Attribute Type Description Fallback Values Source
extent float[] Authored local bounds (min x, y, z, max x, y, z), read until the geometry is available. [] UsdGeom

Gprim

Geometry, drawn in a display colour or with a bound material.

Abstract base · Inherits Boundable

Attribute Type Description Fallback Values Source
primvars:displayColor color3d Linear RGB of the whole prim. [0.5,0.5,0.5] ≥ 0 UsdGeom
primvars:displayOpacity double Opacity of the whole prim. 1.0 ≥ 0, ≤ 1 UsdGeom
doubleSided bool Whether its back faces are seen too. false UsdGeom
orientation token The winding of its front faces. "rightHanded" rightHanded, leftHanded UsdGeom

Xform

A transform grouping its children.

Prim type · Inherits Xformable

{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Xform": {
      "typeName": "Xform"
    }
  }
}

Scope

A grouping without a transform of its own.

Prim type · Inherits Imageable

{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Scope": {
      "typeName": "Scope"
    }
  }
}

GeomModelAPI

A model's stand-ins and the bounds hint used while its subtree isn't loaded.

API schema

Attribute Type Description Fallback Values Source
model:drawMode token Draws the subtree as itself, or as a stand-in: its origin axes, its bounds or cards. "inherited" origin, bounds, cards, default, inherited UsdGeom
model:applyDrawMode bool Whether this prim's draw mode replaces its subtree. false UsdGeom
model:drawModeColor color3d Linear RGB of the stand-in. [0.18,0.18,0.18] ≥ 0 UsdGeom
model:cardGeometry token Cards through the centre, on the bounds' faces, or as the textures place them. "cross" cross, box, fromTexture UsdGeom
model:cardVisibility token Every textured card, or only one per axis. "inherited" full, simple, inherited UsdGeom
model:cardTextureXPos asset The image on the card facing this way. "" UsdGeom
model:cardTextureYPos asset The image on the card facing this way. "" UsdGeom
model:cardTextureZPos asset The image on the card facing this way. "" UsdGeom
model:cardTextureXNeg asset The image on the card facing this way. "" UsdGeom
model:cardTextureYNeg asset The image on the card facing this way. "" UsdGeom
model:cardTextureZNeg asset The image on the card facing this way. "" UsdGeom
extentsHint float[] The subtree's local bounds per purpose (default, render, proxy, guide), six floats each, read while it isn't loaded. [] UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/GeomModelAPI": {
      "typeName": "Xform",
      "apiSchemas": ["GeomModelAPI"],
      "model:drawMode": "inherited",
      "model:applyDrawMode": false,
      "model:drawModeColor": [0.18, 0.18, 0.18],
      "model:cardGeometry": "cross",
      "model:cardVisibility": "inherited",
      "extentsHint": []
    }
  }
}

GeomSubset

Some faces, points, edges, segments or tetrahedra of its parent, to bind a material to or select.

Prim type

Attribute Type Description Fallback Values Source
elementType token What its indices count. "face" face, point, edge, segment, tetrahedron UsdGeom
indices int[] The elements in the subset. UsdGeom
familyName token The family of subsets it is one of, as materialBind for per-face materials. "" UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/GeomSubset": {
      "typeName": "GeomSubset",
      "elementType": "face"
    }
  }
}

Cube

A box centred on its origin, size along each axis.

Prim type · Inherits Gprim

Attribute Type Description Fallback Values Source
size double Edge length, metres. 2.0 ≥ 0 UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Cube": {
      "typeName": "Cube",
      "size": 2.0
    }
  }
}

Sphere

A sphere centred on its origin.

Prim type · Inherits Gprim

Attribute Type Description Fallback Values Source
radius double Metres. 1.0 ≥ 0 UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Sphere": {
      "typeName": "Sphere",
      "radius": 1.0
    }
  }
}

Cylinder

A capped cylinder along its axis.

Prim type · Inherits Gprim

Attribute Type Description Fallback Values Source
radius double Metres. 1.0 ≥ 0 UsdGeom
height double Metres along the axis. 2.0 ≥ 0 UsdGeom
axis token The axis of its height, or a plane's normal. "Z" X, Y, Z UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Cylinder": {
      "typeName": "Cylinder",
      "radius": 1.0,
      "height": 2.0,
      "axis": "Z"
    }
  }
}

Cone

A capped cone along its axis, its apex at +height / 2.

Prim type · Inherits Gprim

Attribute Type Description Fallback Values Source
radius double Metres. 1.0 ≥ 0 UsdGeom
height double Metres along the axis. 2.0 ≥ 0 UsdGeom
axis token The axis of its height, or a plane's normal. "Z" X, Y, Z UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Cone": {
      "typeName": "Cone",
      "radius": 1.0,
      "height": 2.0,
      "axis": "Z"
    }
  }
}

Capsule

A cylinder with hemispherical caps along its axis.

Prim type · Inherits Gprim

Attribute Type Description Fallback Values Source
radius double Metres, of the cylinder and its end caps. 0.5 ≥ 0 UsdGeom
height double Metres along the axis between the caps. 1.0 ≥ 0 UsdGeom
axis token The axis of its height, or a plane's normal. "Z" X, Y, Z UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Capsule": {
      "typeName": "Capsule",
      "radius": 0.5,
      "height": 1.0,
      "axis": "Z"
    }
  }
}

Plane

A one-sided rectangle facing along its axis.

Prim type · Inherits Gprim

Attribute Type Description Fallback Values Source
width double Metres along x, or z when the axis is X. 2.0 ≥ 0 UsdGeom
length double Metres along y, or z when the axis is Y. 2.0 ≥ 0 UsdGeom
axis token The axis of its height, or a plane's normal. "Z" X, Y, Z UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Plane": {
      "typeName": "Plane",
      "width": 2.0,
      "length": 2.0,
      "axis": "Z"
    }
  }
}

PointBased

Geometry from an array of points.

Abstract base · Inherits Gprim

Attribute Type Description Fallback Values Source
points float[n, 3] float32 or float64 (n, 3) positions in its own space. UsdGeom
velocities float[n, 3] (n, 3) metres per second of each point. UsdGeom
accelerations float[n, 3] (n, 3) metres per second squared. UsdGeom
normals float[n, 3] (n, 3) normals; computed from the faces when unset. UsdGeom

Mesh

A polygon mesh, or the control mesh of a subdivision surface.

Prim type · Inherits PointBased

Attribute Type Description Fallback Values Source
faceVertexCounts int[] The number of vertices of each face. UsdGeom
faceVertexIndices int[] The point indices of the faces' vertices, in order. UsdGeom
subdivisionScheme token The surface the faces are the control mesh of; none draws the faces themselves. "catmullClark" catmullClark, loop, bilinear, none UsdGeom
interpolateBoundary token How boundary edges and corners are interpolated. "edgeAndCorner" none, edgeOnly, edgeAndCorner UsdGeom
faceVaryingLinearInterpolation token Where face-varying primvars stay linear rather than smoothed. "cornersPlus1" none, cornersOnly, cornersPlus1, cornersPlus2, boundaries, all UsdGeom
triangleSubdivisionRule token Catmull-Clark's weights for triangles, or smoother ones. "catmullClark" catmullClark, smooth UsdGeom
holeIndices int[] Faces left out of the surface. UsdGeom
cornerIndices int[] Points that are sharp corners. UsdGeom
cornerSharpnesses float[] The sharpness of each corner. UsdGeom
creaseIndices int[] Point indices of creases, one after another. UsdGeom
creaseLengths int[] The number of points of each crease. UsdGeom
creaseSharpnesses float[] The sharpness of each crease, or of each crease edge. UsdGeom
ernie:subdivision:refineLevel int Uniform refinement of the surface: 2^level segments along each control edge. 1 ≥ 0, ≤ 8 Ernie
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Mesh": {
      "typeName": "Mesh",
      "subdivisionScheme": "catmullClark",
      "interpolateBoundary": "edgeAndCorner",
      "faceVaryingLinearInterpolation": "cornersPlus1",
      "triangleSubdivisionRule": "catmullClark",
      "ernie:subdivision:refineLevel": 1
    }
  }
}

Points

A point cloud of spheres, each its own width.

Prim type · Inherits PointBased

Attribute Type Description Fallback Values Source
widths float[] Diameters in metres: one per point, or one for all. UsdGeom
ids int[] int64 ids that follow points across time samples. UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/Points": {
      "typeName": "Points"
    }
  }
}

Curves

Batched curves, each a run of points, swept by its widths.

Abstract base · Inherits PointBased

Attribute Type Description Fallback Values Source
curveVertexCounts int[] The number of points of each curve. UsdGeom
widths float[] Diameters in metres: per point, per segment end, or one for all. UsdGeom

BasisCurves

Linear or cubic curves: hair, fur, cables and wires.

Prim type · Inherits Curves

Attribute Type Description Fallback Values Source
type token Linear segments, or cubic ones by the basis. "cubic" linear, cubic UsdGeom
basis token The cubic basis. "bezier" bezier, bspline, catmullRom UsdGeom
wrap token Open curves, closed ones, or open ones through their end points. "nonperiodic" nonperiodic, periodic, pinned UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/BasisCurves": {
      "typeName": "BasisCurves",
      "type": "cubic",
      "basis": "bezier",
      "wrap": "nonperiodic"
    }
  }
}

NurbsCurves

Rational B-spline curves of any order.

Prim type · Inherits Curves

Attribute Type Description Fallback Values Source
order int[] The order (degree + 1) of each curve. UsdGeom
knots float[] Each curve's knots, curveVertexCount + order of them. UsdGeom
ranges float[n, 2] (n, 2) parametric range drawn of each curve. UsdGeom
pointWeights float[] Rational weights, one per point. UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/NurbsCurves": {
      "typeName": "NurbsCurves"
    }
  }
}

HermiteCurves

Cubic curves through their points with a tangent at each.

Prim type · Inherits Curves

Attribute Type Description Fallback Values Source
tangents float[n, 3] (n, 3) tangent of each point. UsdGeom
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/HermiteCurves": {
      "typeName": "HermiteCurves"
    }
  }
}

PointInstancer

Prototypes placed at instances, bounded by their bounds at each instance.

Prim type · Inherits Boundable

Attribute Type Description Fallback Values Source
prototypes rel[] The prims instanced, indexed by the proto indices. [] UsdGeom
protoIndices int[] The prototype of each instance. UsdGeom
positions float[n, 3] (n, 3) positions in the instancer's space; the number of instances. UsdGeom
orientations float[n, 4] (n, 4) rotations as quaternions. UsdGeom
scales float[n, 3] (n, 3) scales. UsdGeom
velocities float[n, 3] (n, 3) metres per second. UsdGeom
accelerations float[n, 3] (n, 3) metres per second squared. UsdGeom
angularVelocities float[n, 3] (n, 3) degrees per second. UsdGeom
ids int[] int64 ids that follow instances across time samples. UsdGeom
invisibleIds int[] The ids of instances to hide. UsdGeom
ernie:quaternionOrder token The component order of the orientations: xyzw (USD, Warp, PhysX) or wxyz (Isaac Lab, MuJoCo). "xyzw" xyzw, wxyz Ernie
ernie:worlds int[] int (n,): each instance's world. Ernie
{
  "$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
  "prims": {
    "/World/PointInstancer": {
      "typeName": "PointInstancer",
      "ernie:quaternionOrder": "xyzw"
    }
  }
}