Skip to content

Releases: NVIDIA-Omniverse/usd-optimize

USD Optimize v1.1.0

Choose a tag to compare

@dsaxon-nvidia dsaxon-nvidia released this 20 Jul 16:13

[1.1.0] - 2026-07-13

Fixed

  • generateScene: skip empty clusters to avoid writing malformed prims.
  • meshCleanup: skip zero-extent meshes during analysis to avoid a crash.

USD Optimize v1.0.4

Choose a tag to compare

@dsaxon-nvidia dsaxon-nvidia released this 12 Jun 23:31

[1.0.4] - 2026-06-12

Added

  • Asset Validator parameters API: expose validator rule tuning so checker thresholds (e.g. OccludedMeshesChecker, SmallMeshChecker) can be configured via parameters.
  • MergeMeshes: new spatial merge mode that welds coincident boundary vertices across seams.
  • DeduplicateGeometry: new "Point Instancer" mode.
  • PrunePayloads: option to avoid pruning unloaded payloads.
  • DeduplicateHierarchies: support for nested instancing.

Changed

  • Renamed Scene Optimizer to Usd Optimize.
  • Validators now register against capability requirements (e.g. GeometryRequirements, HierarchyRequirements, MaterialsRequirements) via the new plugin entry point instead of rule categories.
  • Migrated the asset validator dependency to usd-validation-nvidia.
  • Reduced default logging noise across operations.
  • Improved performance of PruneLeaves.
  • Reverted repo_usd pin to 5.0.26 (restores the stock build; the 5.0.34 exchange build trimmed link deps).

Fixed

  • DeduplicateHierarchies: fix value variant grouping.
  • DiceMeshes: fix irregular multi-axis cuts.
  • Fix gcc13 build issues from stricter compiler checks (DGX Spark defaults to gcc13).
  • Replaced unsafe sudo/rm guidance in validators skill.

USD Optimize v1.0.3

Choose a tag to compare

@dsaxon-nvidia dsaxon-nvidia released this 29 May 23:41

[1.0.3] - 2026-05-28

Fixed

  • FitPrimitive: no longer incorrectly fits a cube primitive to hollow meshes (e.g. an extruded box). Such meshes are now left unchanged instead of being replaced by a solid cube.
  • Remove primvar indices when removing primvars.

Added

  • Accept JSON int literals for float/double attributes.

Changed

  • Bumped repo_usd to 5.0.34.
  • Use symlinks for Python files where possible during builds rather than copying them.

USD Optimize v1.0.2

Choose a tag to compare

@martinpwnv martinpwnv released this 27 May 06:39

USD Optimize

USD Optimize is a standalone C++ library with Python bindings for processing and optimizing OpenUSD (Universal Scene Description) stages. It's published by NVIDIA as part of the Omniverse ecosystem, but is designed to be embedded in your own applications and pipelines.

Functionality

It ships 45+ optimization operations that transform a USD stage in place, grouped into four categories:

  • Geometry mesh cleanup, deduplication, decimation, shrinkwrapping, instancing, etc.
  • Materials material consolidation, binding cleanup, texture operations.
  • Stage / Hierarchy flattening, prim merging, scope reorganization.
  • Utilities / Analysis read-only passes that report issues without mutating the stage.

Most operations have an analysis mode that reports findings (counts, problem prims, statistics) without writing changes. This powers the asset-validator integration.

Structure

  • Plugin architecture. Each operation is its own C++ shared library under source/operations/, subclassing omni::scene::optimizer::Operation and self-registering with SO_PLUGIN_INIT. The core auto-discovers plugins at build time, so adding an operation doesn't require touching the core.
  • Public C++ API in include/omni/sceneoptimizer/ISceneOptimizer.h for native integration.
  • Python bindings (pybind11) for scripting, JSON-driven batch runs, and pipeline use.
  • Asset Validator integration. A set of Performance-category rules wraps the analysis-mode operations, so problems can surface through omniverse-asset-validator and its CLI.

Usage

  • From source - ./repo.sh build (Linux) or repo.bat build (Windows). Tests via ./repo.sh test.
  • As a prebuilt package - headers, libraries, Python bindings, and a USD Python runtime, for Windows x86_64 and Linux x86_64/aarch64. Install guides live under docs/.

Agent / contributor tooling

The repo is instrumented for AI coding agents:

  • AGENTS.md / CLAUDE.md (symlinks to the same file) are the entry point for any agent.
  • .agents/skills/ holds reusable task playbooks (run validators, interpret results, run operations, tune parameters, testing, etc.).
  • .agents/operations/ has per-operation tuning guides plus INDEX.md, INVOCATION.md, and PIPELINES.md (curated multi-op chains for memory / load-time / mesh-count / data-quality bottlenecks).

The project is not currently accepting external contributions but issues are welcome.