Releases: NVIDIA-Omniverse/usd-optimize
Releases · NVIDIA-Omniverse/usd-optimize
Release list
USD Optimize v1.1.0
[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
[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_usdpin 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
[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/doubleattributes.
Changed
- Bumped
repo_usdto 5.0.34. - Use symlinks for Python files where possible during builds rather than copying them.
USD Optimize v1.0.2
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/, subclassingomni::scene::optimizer::Operationand self-registering withSO_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.hfor 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 throughomniverse-asset-validatorand its CLI.
Usage
- From source -
./repo.sh build(Linux) orrepo.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 plusINDEX.md,INVOCATION.md, andPIPELINES.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.