> usd-editor
Guide for modifying USD ASCII (.usda) files, including prims, properties, composition arcs, variants, and transforms. Use when editing or reviewing .usda files by hand.
curl "https://skillshub.wtf/tomkrikorian/visionOSAgents/usd-editor?format=md"USD Editor
Description and Goals
This skill guides safe, minimal edits to USD ASCII (.usda) files and the proper use of official USD command-line tools. It focuses on preserving stage structure, using correct specifiers and property types, and avoiding composition mistakes while making targeted changes.
Goals
- Make precise edits without disrupting existing USD composition
- Preserve file formatting and authoring style
- Use correct prim specifiers, property types, and relationships
- Avoid common USD pitfalls (wrong paths, missing xformOpOrder, broken connections)
- Guide safe manipulation and inspection of USD assets using the command-line tools
What This Skill Should Do
When asked to modify a .usda file, this skill should:
- Inspect the stage structure - Identify root prims, scopes, and relevant paths.
- Choose the correct specifier - Use
overfor edits to existing prims,deffor new prims. - Edit only what is necessary - Preserve unrelated content and formatting.
- Respect composition - Avoid changing subLayers, references, or variants unless asked.
- Validate connections and paths - Ensure
SdfPathtargets are valid and type-compatible.
If the change is material- or shader-related for RealityKit, prefer the shadergraph-editor skill for node-specific guidance.
Quick Start Workflow
- Locate the prim path you need to edit (search by prim name or
SdfPath). - Determine whether you should
overan existing prim ordefa new one. - Apply the smallest possible change (attribute value, relationship target, or child prim).
- If adding transforms, update
xformOpOrderto match your new ops. - Re-check any paths or connections you touched.
Information About the Skill
Core Concepts
Stage and Layer
A USD stage is composed of one or more layers. A .usda file is a single ASCII layer that can sublayer or reference others.
Prim and Specifier
A prim is a scene graph node. Specifiers control behavior: def creates, over modifies, class defines a reusable template.
Properties
Attributes store typed data; relationships (rel) point to other prims.
Composition Arc
Mechanisms like sublayers, references, and payloads that bring other USD data into the stage.
SdfPath
A path to a prim or property, written like </Root/Child> or </Root/Mat.outputs:surface>.
List Editing
USD list ops (prepend, append, delete, add) modify lists without replacing them.
Variants
Variant sets provide alternative content branches for a prim.
Time Samples
Animated or time-varying data stored in timeSamples dictionaries.
Reference Tables
| Reference | When to Use |
|---|---|
usd-syntax | When you need a refresher on .usda syntax, values, and path formats. |
prims-properties | When adding or editing prims, attributes, or relationships. |
composition-variants | When touching sublayers, references, payloads, or variant sets. |
transforms-units | When editing transforms, xformOps, or stage units/up axis metadata. |
time-samples | When modifying animated/time-sampled properties. |
command-line-tools | When you need a quick reference for common USD command-line tools. |
usdcat | When converting, flattening, or inspecting USD files. |
usdchecker | When validating USD or USDZ assets, including RealityKit-focused checks. |
usdrecord | When rendering images from USD files. |
usdtree | When inspecting the prim hierarchy of a USD file. |
usdzip | When creating or inspecting USDZ packages. |
usdedit | When you need the official text-editing workflow for a USD-readable file. |
Implementation Patterns
Override an Existing Prim
over "Mesh"
{
token visibility = "invisible"
}
Add a Simple Xform with Translate
def Xform "Pivot"
{
double3 xformOp:translate = (0.0, 0.1, 0.0)
uniform token[] xformOpOrder = ["xformOp:translate"]
}
Bind a Material Relationship
rel material:binding = </Materials/Mat>
Pitfalls and Checks
- Don't replace a prim with
defwhen you only need anover. - Keep
xformOpOrderconsistent with the ops you add or remove. - Verify
SdfPathtargets exist and match the expected property type. - Avoid editing composition arcs unless explicitly requested.
- Preserve existing formatting and comments to minimize diff noise.
> related_skills --same-repo
> visionos-widgetkit-developer
Build and debug WidgetKit widgets for Apple Vision Pro (visionOS), including mounting styles (elevated/recessed), textures (glass/paper), proximity-aware layouts via LevelOfDetail, and timeline update troubleshooting.
> visionos-immersive-media-developer
Implement immersive and spatial video experiences on Apple Vision Pro (visionOS), including RealityKit VideoPlayerComponent setup, portal/progressive/full immersive viewing modes, transitions and events, comfort mitigation, and Apple Immersive Video authoring workflows.
> tkr-skill-writer
Guide for creating and structuring skills with consistent formatting, clear documentation, and proper reference organization. Use when creating new skills or updating existing skill documentation.
> spatial-swiftui-developer
Design and implement visionOS SwiftUI scenes that integrate RealityKit content. Use when building spatial UI with RealityView, Model3D, attachments, volumetric windows, ImmersiveSpace, or spatial gestures, or when choosing SwiftUI vs RealityKit APIs for 3D presentation.