Generated banner for Omniverse Usd Performance Tuning
Generated logo for Omniverse Usd Performance Tuning

Omniverse Usd Performance Tuning

NVIDIAOfficialCreated by NVIDIA Omniverse

  • Skill
  • Workflow
  • Software development
  • Apache-2.0
  • Medium risk
  • Has scripts

From the author

Diagnose and optimize USD stages for slow loading, high memory, low FPS or validation; preserve asset boundaries and reuse shared definitions.
— the description by NVIDIA Omniverse

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides a structured workflow for diagnosing and optimizing USD stages. It focuses on improving performance metrics like load times, memory footprint, and frame rates by identifying and optimizing unique asset definitions, reusing shared definitions, and pruning unnecessary data. The process emphasizes preserving original asset boundaries, animation, and interface requirements, ensuring that downstream applications remain functional after optimization.

What it does

  • Inspects USD stages to identify performance bottlenecks and structural inefficiencies.
  • Classifies assets into atomic, package, or aggregate structures to guide optimization.
  • Performs native USD optimization operations on disjoint scopes.
  • Publishes semantic libraries to enable efficient asset reuse.
  • Validates composition, ownership, and interface accessibility of the optimized output.
  • Profiles the final output against the original baseline to report measured improvements.

When to use it

  • When a USD stage suffers from slow loading times or high memory consumption.
  • When rendering performance (FPS) needs improvement in a production environment.
  • Before finalizing a USD assembly for downstream consumption.
  • When you need to standardize asset structures according to factory-level guidelines.

Advantages

  • Maintains asset boundaries and critical metadata during optimization.
  • Reduces scene complexity through intelligent reuse of shared definitions.
  • Provides verifiable reports on performance gains and composition integrity.
  • Supports large-scale scene optimization by processing independent definition scopes.

Usage examples

“Inspect the USD stage at /data/factory.usdc for performance issues and prepare a review workspace.”
The agent initializes the workspace, runs the inspection script, and provides a summary of candidates for optimization.
“Submit the optimization decisions for the factory stage based on the generated JSON.”
The agent processes the boundary decisions, executes the optimization operations, and generates the final optimized USD assembly.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/nvidia/omniverse-usd-performance-tuning/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip omniverse-usd-performance-tuning.zip -d .agents/skills

Documentation by NVIDIA Omniverse

Omniverse USD Performance Tuning

Purpose

Improve loading, memory use or rendering for the requested workload. Preserve the prim paths, appearance, placement and behavior required by downstream applications. Follow the component/subcomponent model in NVIDIA's Factory-Level USD Structuring guide. Apply the relevant parts of that model; a static asset does not need new animation or physics.

Inputs

Required: the source USD stage. When no workload is specified, use factory layout planning and visualization and record that assumption in the request/report. Explicit workload and preservation requirements take precedence. Optional: an output workspace, preservation requirements, physical error budget, existing library indexes and recorded runtime evidence. Use values from the current user request; reuse recorded values only while they remain applicable. Follow setup when no output path is supplied.

Prerequisites

Verify the selected runtime and required capabilities using setup. Keep its preflight record with the run; installation and remote access are conditional steps described there.

Instructions

  1. Inspect. Establish the workload, preservation requirements and output workspace. Set up progress and dashboard access before assessment. Verify setup and inspect the selected source configuration.

  2. Judge boundaries. Review equipment, service-system sections and architectural elements in the selected configuration, including animation and interiors. Record owners, editable interfaces, equipment categories and optional families using boundary guidance.

  3. Classify and author. Classify accepted assets children before parents. Capture or reuse the original profile before authoring. Prepare reusable definitions, materials and occurrence opinions using asset authoring.

  4. Optimize unique definitions. Run supported native operations concurrently on disjoint scopes with the recorded physical budget.

  5. Publish semantic libraries. Use one writer per category layer and remap consumer references.

  6. Check composition. Check authored ownership, references, bindings, placement, animation and interface accessibility through the written-output checks.

  7. Profile and report. Compare the final consumer with the original baseline under comparable conditions and report measured benefits, completion and operations by asset definition.

sequenceDiagram
    participant A as Agent
    participant T as USD tools
    participant W as Definition workers
    participant L as Library publisher
    participant D as Read-only progress dashboard
    Note over A,L: One compact progress state also renders text progress
    T-->>D: Recorded phase, assessment rounds, counters and decision reasons
    A->>T: Inspect original selected configuration
    T->>T: Collect cached child-to-parent summaries and repetition nominations
    T->>T: Load supplied indexes once and batch authored product clues
    T-->>A: Product review groups, member context, animation and reuse evidence
    loop Until boundaries and interiors are reviewed
        A->>A: Select asset boundaries, then identify required internal prims and properties
        A->>T: Submit boundary decisions with reviewed scope, required edits, category and optional family
        T->>T: Reuse unchanged source evidence, recompute boundary-dependent results
        opt Geometry ownership requires reconstruction
            T->>T: Regroup or native split, remap paths and reassess affected regions
        end
        T-->>A: Remaining candidates and member exceptions
    end
    T->>T: Classify selected child assets before parent assets, confirm reuse
    T->>T: Capture or reuse original baseline profile
    T->>T: Confirm accepted product identities from source and supplied indexes; reconcile complete parent-child groups
    T->>T: Skip worker inputs for confirmed groups; author remaining materials, editable prims and occurrence overrides
    T->>T: Determine merge groups on prepared interiors; preserve selected child assets and required prims
    T->>W: Read-only input USD layers for existing-library matching
    par Independent preparation jobs
        W->>W: Confirm remaining product, exact source or authorized normalized reuse; preserve occurrence placement
        W->>W: Consolidate accepted product or compatible exact/normalized leaf inputs; retain every occurrence
    end
    W-->>T: Confirmed library hits and definitions requiring optimization
    T->>W: Owned geometry prim paths in read-only input layers
    par Independent definition scopes
        W->>W: Remove small meshes when authorized; apply asset representation: reserve merge inputs or fit analytic prims; reduce, merge (native clustering if required), prune, flatten, prune
    end
    W->>L: Geometry outputs and assembly authoring outcomes
    L->>L: Share eligible static whole definitions within current category publication
    L->>L: Share remaining whole meshes; write USD reuse metadata and compact index
    L->>T: Output USD stage with rewritten references and dependencies
    T->>T: Check authored composition, ownership, animation and interfaces
    T->>T: Profile final output USD stage and report results by asset definition
    T-->>A: Measured changes, coverage and unresolved work
    T-->>D: Final verdict and report/library paths

Use the provided tools for traversal, native operations, authoring and checks; the agent supplies engineering judgments. Preserve current variant selections, authored animation, required materials and interfaces. Trust supported USD Optimize operations with valid settings and scopes. Deep geometric comparisons and whole-scene edit trials belong in development tests, not ordinary execution.

Complete when every unique definition has an executed or evidenced unchanged outcome, every asset has justified ownership and structure, and the written consumer passes composition checks. Retain native failures, unresolved judgments and missing required capabilities as incomplete work. Repeat only affected work when evidence changes.

Scope and authorization

  • Diagnosis and validation requests remain read-only. An optimization request authorizes work in a separate output workspace within its stated preservation limits.

  • Never overwrite source layers or inherited libraries without explicit authorization.

  • Reuse authorization already given. Ask only for a missing decision that changes identity, required appearance or a loss budget; explain the affected component and consequence.

  • Report only observed changes. Measure rendering before claiming higher FPS or lower GPU use.

Load only the relevant guidance

RequestRead
Validation onlySetup, then the validation section of operations
Approved operation chainSetup, operations, verification
Existing or persistent asset libraryAdd the library index requirements to the assessment
Missing standalone runtimeInstallation
Remote stageRemote access before the first open
Report from completed evidenceVerification

Use upstream package guidance for selected operation mechanics and proxy workflows. Keep large logs on disk as specified in setup.

Limitations

Convert CAD input with the source converter's workflow and NVIDIA's CAD conversion guidance. Render profiling requires NVIDIA/omniperf or the user's available profiler; USD open and traversal timings alone do not establish rendering improvements.

Troubleshooting

For unavailable imports, operations or remote assets, follow setup. For incomplete execution or failed composition checks, follow verification; retain the failed artifacts and report the missing capability or failed check.

Examples

After runtime preflight, use the verified Python interpreter from setup to inspect a stage:

python scripts/successor_assessment.py inspect --source /data/factory.usdc --workspace /data/factory-review

Review the generated candidates using boundary guidance, fill the generated decision template, then submit it:

python scripts/successor_assessment.py decide --workspace /data/factory-review --decisions /data/factory-review/decisions.json

These commands perform assessment; continue through the instructions above only when review is complete. Run from the skill directory; generated data stays in the workspace.

Output Format

Maintain live progress and editable steering throughout execution.

For end-to-end optimization, provide the written USD assembly, validated report JSON, and generated Markdown and HTML reports. State the runtime, operations actually executed, preservation and coverage results, measured changes, source-write status, and artifact paths. Diagnosis-only work may return a findings summary stating that no optimized stage was written.

Files

references/asset-authoring.md

Classify and author assets

Classify selected assets children before parents, after their workload-required independent use has justified a boundary under structure assessment. Having child assets and no owned geometry determines aggregate structure; it does not justify making an organizational prim a separate asset. These workflow conventions use the terminology of annotated asset structures:

StructureOwned content
AtomicGeometry with no selected child asset boundaries after interior review
PackageOwned geometry together with selected child assets
AggregateReferenced child assets and assembly opinions; no owned geometry

Every geometry occurrence belongs to one atomic asset or package. An aggregate's referenced descendants are expected; unassigned geometry is not. An atomic asset may use internal geometry references and shared material libraries.

Model hierarchy and occurrence opinions

Choose kind for the composed role, separately from structural type. Equipment can be a component even when its structure is aggregate. Significant parts inside a component are subcomponent occurrences; their standalone definitions can remain components. Organizational ancestors of models need group or a derived kind such as assembly, without becoming separate published assets. Authoring clears obsolete copied kind metadata on copied internal prims, including protected coordinate frames without geometry, then applies the selected asset and interface kinds. Preserving a prim and its transforms does not require preserving its imported model kind. Do not turn every imported model label into subcomponent. Selected child assets and referenced contents keep their declared roles; source layers remain unchanged.

Keep editable mechanisms in the equipment hierarchy, with references to atomic geometry below their interfaces. Preserve occurrence placement, visibility, authored animation and domain relationships. Shared geometry must not turn a required editable descendant into an instance proxy. Instance eligible atomic asset occurrences even when the current assembly uses a definition only once. Placement remains editable on the occurrence root; parents with independently editable children remain non-instanceable.

Imported references and instances describe source composition, not required asset boundaries. Preparation resolves selected interiors into editable definitions while preserving selected child assets and required internal prims. Assessment merge groups are provisional; preparation recomputes them on those editable inputs before optimization. Accepted product identities are checked against supplied libraries before preparation. Confirmed parent-child groups reuse published definitions directly. Explicit variant contexts are applied during ordinary input preparation. Other definitions continue through preparation and the existing reuse checks. The workflow records how many worker inputs were avoided.

The authoring and optimization tools handle transform composition and placement. They may bake static internal transforms into merged geometry; those original transform attributes need not survive. Retain transform operations and their order where authored animation or a required editable attribute depends on them, including reset-stack behavior and authored time samples. The agent records the required movement/edit paths, not a transform-preservation checklist.

Record each edit's existing prim/property path, human-readable use and edit_class (placement, visibility or identification). Placement and visibility require the corresponding USD capability and an editable output prim. Identification preserves the named prim/property for its selection or lookup use and existing identifying opinions; it imposes no transform-frame or editability requirement. Occurrence labels can differ while sharing geometry. Geometry beneath a required prim can merge within it. A Mesh used as a placement frame keeps that frame; fitting remains available beneath a preserved Xform. Preserve empty attachment frames without adding geometry. Detailed pose/visibility trials and unrelated-occurrence isolation checks belong in development fixtures, not repeated whole-scene runtime trials. Unsupported required interfaces remain incomplete.

Shared materials and semantic libraries

Resolve effective material bindings in occurrence context, including GeomSubsets, inherited bindings and binding purposes. Keep shader connections, primvars and resources intact. The workflow creates the shared material library automatically before geometry workers run: it extracts used networks and their shader dependencies, removes unused networks, and invokes native optimizeMaterials for compatible duplicates. Asset definitions reference the resulting material prims; do not create separate copies of their shader networks for each asset. Distinct material properties and required metadata remain distinct. One writer coordinates this work.

Publication remaps those references to the delivered library. The published manifest's output.material_library and the report identify its final location. Published material-library filenames use materials_ followed by the existing unique publication suffix. Preserve source material prim names and displayName labels when present. A CAD colour label such as Color_D2D2FF identifies colour; it does not establish a physical material such as steel or plastic. Keep those labels when colour is the only supplied identification. Material names and labels do not determine equivalence; native material optimization compares the networks. Check the reported location when inspecting the delivery, rather than the temporary working/materials.usdc file. Resource localization follows the persistent-library requirements; this does not imply independent lookup of equivalent materials across unrelated scenes.

Publish multiple separately referenceable definitions in a library for each established semantic category: robots, fences, pumps, chairs and similar types. Use the general library when equipment type cannot be established. Optional equipment_family labels group supported product/model relationships within a category; omit them when evidence is absent. They do not change library partitioning, entrypoints or geometry-equivalence decisions. Category, structural type and kind are independent fields. Distinct models in a category retain distinct entrypoints. Keep the consumer assembly separate from category libraries.

For persistent reuse, follow the library index requirements. Confirm exact cache hits before optimization across the supplied indexes, independent of category. The lookup helper returns nominations requiring confirmation; equal names or bounds do not authorize reuse. Keep inherited entries read-only and preserve their local coordinate frames. Changed geometry creates a new output version instead of silently changing other consumers. Use remote access for resolver and localization work.

Working layers and publication

Express geometry in the selected asset's local coordinate frame and retain its occurrence transform. Replace the original rendered subtree with its reference; do not leave a second rendered copy. Sdf.CopySpec copies authored specs, so the authoring tool must first resolve the selected composition. Give each definition units, axis and a usable default prim.

Author an immutable input and separate output for each unique definition. Parent working layers reference immutable child inputs, so a worker never reads another worker's partially written output. These temporary files do not determine delivery packaging. Record output entrypoints before dispatch.

Category planning separates independent computation from publication. After native execution and output checks pass, publication rewrites references to verified outputs and writes each category through one writer. Within that unpublished layer, the native sharing helper can share identical remaining geometry across definitions with different child poses. It resolves explicit owned occurrence paths to editable meshes or existing sources beneath each asset's Prototypes class, submitting each authored source once. Native deduplicateGeometry and scoped organizePrototypes place confirmed sources under the category's /Library/Prototypes class. The publisher updates occurrence path mappings and the written library fingerprints. Editable ancestors, addressed mesh interfaces, material bindings and independently referenced entrypoints remain intact. These internal geometry references do not introduce asset boundaries. This pass compares eligible whole meshes within one writable category layer. It does not recover repeated parts inside a merged mesh or share geometry across category libraries. Inherited entries remain read-only. For a common library, publish unique category files under assets/, materials under materials/, and supporting layers under dependencies/. Preserve existing files and atomically replace the cumulative index.json after new files are installed. Keep each station’s after.usdc, reports and working files in its output directory. References are relative to final file locations. A failed publication leaves the previous index usable; unindexed new files may remain. Standalone publication commits its output directory together. Reopen the consumer and check references, binding remaps, placement and ownership; a successful copy alone does not establish valid composition.

For portable delivery, follow the library dependency requirements. Move a successfully published dependency snapshot and reopen it to check references, materials and resources. Otherwise retain resolvable persistent references and report them.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Python, Needs Node.js

The author says: Requires a verified standalone Usd Optimize/OpenUSD runtime for operations, usd-validation-nvidia for supported checks, and a writable output workspace. Remote assets require a working resolver. Render profiling is an external handoff.

Security

What our scanner noticed· Medium risk

  • Large base64-encoded blobs
  • Scripts that your agent may run

This skill includes scripts that your agent may run. Read them before you use it.

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
NVIDIA Omniverse
Publisher
NVIDIA (Official)
Source
NVIDIA/skills · skills/omniverse-usd-performance-tuning · commit fce3cca
Licence
Apache License 2.0 (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE-APACHE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by NVIDIA Omniverse or NVIDIA.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download omniverse-usd-performance-tuning.zip