usd-pipeline

Catalog, place, and validate USD assets in Omniverse scenes with bbox offset correction.

4.0k|530|Updated May 28, 2025
One-click install
npx skills add https://github.com/isaac-sim/IsaacSim --skill usd-pipeline
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: usd-pipeline
Source: https://github.com/isaac-sim/IsaacSim/tree/main/skills/usd-pipeline
Command: npx skills add https://github.com/isaac-sim/IsaacSim --skill usd-pipeline

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Building realistic USD scenes in Omniverse requires measuring scattered asset libraries, correcting for non-origin-centered bounding boxes, and ensuring shaders render in headless environments—tasks that are error-prone and slow when done manually.

Core Features & Use Cases

  • Asset Discovery & Measurement: Recursively catalog USD assets with bbox dimensions, shader type (MDL vs UsdPreviewSurface), prim counts, and meters-per-unit scale.
  • Placeholder-to-Asset Swap: Replace prototype cube geometry with real assets using bbox center offset correction so assets land exactly at target positions.
  • Headless Render Validation: Identify dual-shader assets that render correctly in headless SimulationApp versus MDL-only assets that render black.
  • Use Case: Given a warehouse layout prototyped with colored cubes, catalog a modular asset library, map block prefixes (BRk, CvL) to appropriately-sized rack and conveyor assets, and place hundreds of references with grounding and offset correction in one scripted pass.

Quick Start

Catalog all USD assets under my assets folder, then replace the placeholder cubes in my stage with matching dual-shader assets using bbox offset correction.

Frequently Asked Questions about usd-pipeline

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I measure USD asset bounding boxes in Python?

Open the stage with Usd.Stage.Open, then use UsdGeom.BBoxCache.ComputeWorldBound on the default prim to get the aligned range. Multiply dimensions by the stage's meters-per-unit value, since some assets use centimeters instead of meters.

How do I replace placeholder cubes with real USD assets?

Collect visible UsdGeom.Cube prims grouped by name prefix, map each prefix to a measured asset, then define Xform prims at each block position with a reference to the asset. Subtract the asset's bbox center from the target position so it lands correctly.

Why do USD assets render black in headless Isaac Sim?

MDL-only materials do not render in headless SimulationApp on arm64. Use assets with a UsdPreviewSurface fallback (dual-shader), and add explicit DomeLight and DistantLight prims since headless mode does not create viewport lights automatically.

Why is my placed USD asset offset from the target position?

Most USD assets are not centered at the origin, so referencing them directly places their bbox center away from the target. Correct by translating to target minus the asset's bbox center, and set Z to negative bbox minimum to ground the asset.

Should I scale USD assets to match placeholder cube dimensions?

No. Scaling assets to cube dimensions destroys visual density and realism. Place assets at their natural size, and if an asset is far larger than its zone, use smaller modular pieces instead.