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"
}
}
}