> [!abstract] Summary
> **Scope** prims are **organisational containers** in the scene graph — they cannot store their own transforms but keep the tree tidy. Typical use: one Scope per department (`/Lighting`, `/Environment`, `/Characters`) for clean organisation. Inherits and passes ancestor transforms unchanged — effectively a guaranteed no-op transform.
---
# Scope
- **Scope primitives** are useful for creating **"organising" branches** that keep the scene-graph tree tidy:
- `/models/...`
- `/materials/...`
- `/collections/...`
- `/lights/...`
- Scopes **do not store their own transforms**, but they **inherit and pass on** transforms from their ancestors. Think of it as a **guaranteed no-op transform**.
---
# Department-per-Scope Pattern
A reliable production pattern is to organise every asset under **at least one scope per department**:
```
/world
├── /world/Lighting ← Scope
├── /world/Environment ← Scope
│ ├── /world/Environment/Trees ← Scope
│ └── /world/Environment/Rocks ← Scope
├── /world/Characters ← Scope
│ ├── /world/Characters/Hero ← Xform (has transform)
│ └── /world/Characters/Crowd ← Scope
└── /world/FX ← Scope
```
Benefits:
- **Department-level visibility toggles** — hide an entire department at once.
- **Department-level overrides** — author opinions on a Scope path to affect all descendants.
- **Layer routing** — write `/world/Lighting/*` to one layer, `/world/Environment/*` to another.
---
# Scope vs Xform
| | **Scope** | **Xform** |
|---|---|---|
| Has transform? | ❌ No | ✅ Yes |
| Inherits ancestor transform? | ✅ Yes (no-op) | ✅ Yes |
| Use for | Organisation only | Anything that moves |
---
# 🔗 Related
- [[../SOLARIS MOC|SOLARIS MOC]].
- [[SOLARIS Primitive Node|SOLARIS Primitive Node]] — create Scopes explicitly.
- [[../SCENE GRAPH/SOLARIS PrimType|SOLARIS PrimType]] — Scope vs Xform vs Kind.
- [[../../../../PROTOCOL/USD/Notes/USD KNOWLEDGE/USD terms and definitions|USD Terms & Definitions]] — Specifier, Prim.