Building

OpenUSD scenes

Inspect USD scenes, save edits in separate layers, and exchange supported models, materials, cameras and rigs with glTF.

OpenUSD support is available from 0.17.2. You can inspect a scene, save changes in a separate layer and convert supported scene data for use in web projects.

Open a scene

In Assets, select a .usd, .usda, .usdc or .usdz file and choose Open USD inspector. Adding a USD scene copies its local dependencies with it. Keep its referenced layers and textures beside the source when importing.

The inspector shows the scene hierarchy, unit scale, up axis and time range. Select an object to see its Properties or Variants. Layers shows the files that contribute to the scene. Use More objects or More properties to continue through a large scene.

Graspable includes the OpenUSD runtime in supported desktop builds; no separate Python installation is needed. If it is missing or unavailable for your platform, the inspector explains why. Linux ARM64 currently has no bundled OpenUSD runtime. The rest of Graspable remains available.

Save changes in a layer

Choose an object and queue the changes you want:

  • Local transform offset sets a position, rotation or scale correction after the object's existing transform operations. Only rows you change are written. The original position and pivot setup stay in the source.
  • Hide and Show change visibility.
  • Under Properties, edit a supported value and choose Queue change. Leave the time field empty for a default value, or enter a USD time code to set an animation sample. Array values use brackets, such as [1, 2, 3].
  • Inspect samples lists authored time samples. Select one to edit its value and time, or queue Remove sample.
  • Under Variants, choose one of the scene's existing alternatives, or None to block its current selection in the new layer.

Queued changes have not been saved. Undo queued change removes the last one; Discard changes clears the queue. Choose a new .usda path in Edit layer, then Save edit layer.

The new layer refers to the original scene and supplies stronger values for the properties you changed. The inspector switches to this edited scene. Original layers, textures, rigs and geometry stay intact. Each save is recorded in project history. Binary assets use project History for restoration; run undo covers text edits. If the source or a dependency changed since you opened it, saving is refused until you refresh and review the current scene.

A time code uses the scene's time-code rate; it is not necessarily a second or a frame in your film take. Editing a USD sample does not automatically edit film.motion.json.

Preview and export

Build preview creates a separate GLB and displays it in the asset viewer. This is a converted web preview. Read the conversion report, especially when the source uses specialized materials, procedural geometry or animation features.

Save queued changes before using Export scene:

Format Use
USD text (.usda) A readable USD file for further editing
USD binary (.usdc) A binary USD layer for storage and exchange
USD package (.usdz) A package containing the scene and its supported local dependencies
Web model (.glb) A single web asset with supported geometry, materials, textures, rigs and animation

Conversion writes a separate file. Native USD conversion preserves composition by default. Enable Flatten USD composition on export when you need resolved scene data in one layer; flattening removes the original composition structure from that derived output.

To bring a web model into USD, select a GLB or glTF asset and choose Export as USD. Its supported meshes, hierarchy, materials, camera and rig data become USD scene data. Animation clips become named variants. A USD-to-GLB conversion uses the currently selected variant.

What survives conversion

The converter supports triangle meshes, bounded concave-polygon triangulation, hierarchy, local transforms, normals, the first UV set, display colors and opacity, material subsets, perspective cameras and basic punctual lights. Cube, sphere, capsule, cylinder and cone primitives can be tessellated. Native instances and supported PointInstancer scenes can be expanded into web meshes, including bounded instance animation.

Materials use USD Preview Surface. Supported PNG/JPEG texture maps include base color, emission, normal, occlusion, alpha and shared metallic/roughness packing. Specialized shader graphs and unusual texture packing still need review. Display colors provide vertex colors when a mesh has no explicit material; an existing bound material keeps precedence.

Rigged characters use actual USD skeletons, joint bindings and animation, with up to four joint influences per vertex. Dense and sparse morph targets become blend shapes, including animated weights. Morph-only models receive an identity skeleton so USD's deformation evaluator can animate them. Translation, rotation and scale animation can be exchanged. Cubic glTF animation is baked at 60 Hz; hold transitions use a reported approximation of no more than one microsecond. This does not retarget a character or add a timeline editor for individual bones.

Subdivision surfaces are refused when they cannot be evaluated: exporting their coarse control mesh would change the shape. Corrective morph inbetweens, arbitrary shaders, animated topology or visibility, vertex-cache animation, animated camera lenses, nested or skinned PointInstancer prototypes and per-instance primitive variables have conversion limits. Original USD assets retain their native data. Read the report and review the converted scene in its destination renderer before using it in a finished film.

Work with agents

Agents can read the stage overview, then request one object, property, time-sample page, layer list or variant set. A revision covers the source and its local dependencies. Repeating a read with that revision can return only “unchanged”; a change query lists affected object paths so the agent can read those objects again.

Edits use the same revision check and separate output layers as the inspector. Agents can set typed attributes or samples, remove a sample, choose an existing variant, change visibility and add local transform corrections. They receive output paths, hashes, counts and bounded conversion reports instead of a full scene copied into the conversation. Large reports state how many entries were omitted; mappings can be inspected on individual USD objects. See the USD API and MCP tools.

Current limits include 64 MiB per project file, 256 MiB across a dependency graph, 2,048 dependency files and 128 edits in one save. Web conversion has additional geometry, hierarchy and animation-sample limits; exceeding them produces an error. Remote dependencies, unsafe paths and symlink resources are refused.

For film-take animation and editorial exports, see Animation. A take's USDA export contains its motion and cameras; use the Assets workflow here when you need to convert actual scene geometry and rigs.