> [!abstract] Summary
> Glossary of the essential USD terms — **Attribute**, **Def**, **Instance**, **Kind**, **Layer**, **Opinion**, **Payload**, **Point Instance**, **Prim**, **Primvar**, **Reference**, **Purpose**, **Specifier**, **Stage**, **SubLayer**, **Variant**, **Xform**. Short, self-contained definitions with code examples. Summary by **BHGC**.
> [!info] Source
> A summary of USD terms by BHGC.
---
## Attribute
A **name and value** that describe an aspect of a prim. For example, a `Sphere` prim could have an attribute named `radius` with a value of `5`.
## Def
Defines a prim. `def` is one of the three USD specifiers (see [[#Specifier]]).
```usda
def Sphere "my_sphere"
{
int radius = 5
}
```
## Instance
A **memory-efficient copy** of a prim. In this example, we create an instance of `pawn.usd` by setting `instanceable = true`:
```usda
def Xform "instance" (
instanceable = true
references = @pawn.usd@
)
{
}
```
## Kind
Used to set **relationships between geometries**. There are four kinds: `group`, `assembly`, `component`, and `subcomponent`.
Example hierarchy organized by kind:
```
Trees (group)
└── Maple (assembly)
├── Trunk (component)
└── Leaves (component)
├── Leaf (subcomponent)
└── Leaf (subcomponent)
└── Oak (assembly)
├── Trunk (component)
└── Leaves (component)
├── Leaf (subcomponent)
└── Leaf (subcomponent)
```
## Layer
A **collection of prims**. You could have a layer for geometry, one for lighting, one for materials, etc. Layers enable **non-destructive editing** — any change to existing prims can be stored in a different layer. A stage always consists of at least one layer.
## Opinion
An **assignment of a value** to any prim. When we say `my_sphere` has a `radius` of `5`, we are expressing an **opinion** about `my_sphere`'s radius. Other layers can override this opinion if theirs is stronger.
Opinion strength, from strongest to weakest, follows the **LIVRPS** order:
- **L**ocal
- **I**nherits
- **V**ariants
- **R**eferences
- **P**ayloads
- **S**pecializes
## Payload
A reference that can be **disabled or enabled manually**. Disabling a payload improves memory usage and scene performance while editing.
## Point Instance
The **most memory-efficient form of instancing** in USD. Instanced copies are scattered to points on a mesh with varying position, rotation, scale, etc.
## Prim
The **basic building block of USD**. Anything can be a prim: a mesh, a light, a material, an empty container, and more.
## Primvar
An **attribute intended for rendering-related data**. Primvars are declared with the `primvars:` prefix. For example, `primvars:st` is the USD equivalent of **UVs**.
## Reference
A **layer loaded from disk** (or, sometimes, from elsewhere in an already-loaded layer). A reference can be placed at any position in the scene hierarchy.
```usda
def Xform "pawn" (
references = @pawn.usd@
)
{
}
```
## Purpose
Defines **when a prim is displayed**. Four purposes are available: `default`, `guide`, `proxy`, `render`. Geometry tagged as `proxy` would not show up in final renders. Prims can have multiple purposes.
## Specifier
Three specifiers exist in USD:
- **`def`** — defines a prim.
- **`over`** — creates an override of a prim's values.
- **`class`** — more abstract, not necessary for end-users and artists.
## Stage
A stage is created when **all layers are combined** (or "composed," in USD terminology) to form the final scene.
## SubLayer
A type of reference placed **directly into the root of a stage**, stacking on top of other sublayers.
## Variant
An **alternate version of a prim** that can be switched to at will. For example, you might create Variant Sets with different materials on your geometry, or different lighting setups in your scene.
## Xform
A **container prim** that allows transformation of all its children. For example, you could define an Xform called `chess_board` and put all the chess board component meshes inside, then move, rotate and scale the entire board by modifying the Xform.
---
# 🔗 Related
- [[6.30 USD Theory]] — how these terms fit together in a USD pipeline.
- [[USD From 0 to pro - L4 WS]] — extended explanations of prims, layers, stage and properties.
- [[USD Extension]] — file-format flavors where these prims live.
- [[USD MOC]]