An extensible framework to validate OpenUSD assets. Inspired by Pixar's usdchecker, this library extends validation capabilities with additional rules and provides automatic issue fixing.
- Rule-based validation — Modular rule interface with registration mechanism for custom validators
- Flexible engine — Run validation on a
Usd.Stage, individual layers, or recursively search folders - Auto-fixing — Issue fixing interface for applying automated corrections when rules provide suggestions
- Command line interface — Standalone CLI for validation outside of GUI applications
- Lightweight — Pure Python implementation requiring only OpenUSD
Install from PyPI:
pip install usd-validation-nvidiaFor full functionality, install with optional dependencies:
# Include usd-core
pip install usd-validation-nvidia[usd]
# Include NumPy (for optimizations)
pip install usd-validation-nvidia[numpy]
# Install all optional dependencies
pip install usd-validation-nvidia[usd,numpy]Generate the capabilities package with usd-profiles-nvidia, then build the wheel:
uv run \
--no-project \
--with usd-profiles-nvidia==1.15.0 \
python -m usd_profiles_nvidia.codegen \
--docs-root specs \
--destination-dir src \
--package-name usd_validation_nvidia.capabilities
uv build -o distfrom usd_validation_nvidia import ValidationEngine, IssueFixer
engine = ValidationEngine()
asset = "path/to/asset.usda"
results = engine.validate(asset)
for issue in results.issues():
print(f"{issue.severity}: {issue.message}")
fixer = IssueFixer(asset)
fix_results = fixer.fix(results.issues())
for result in fix_results:
print(f"{result.status}: {result.issue.message}")
fixer.save()The ValidationEngine also supports selecting specific rules with enableRule() / disableRule()
and filtering by category with enableCategory().
The nvidia_usd_validate command provides validation from the terminal:
# Validate a single file
nvidia_usd_validate asset.usda
# Validate a directory recursively
nvidia_usd_validate ./assets/
# Apply automatic fixes
nvidia_usd_validate --fix asset.usda
# Validate specific categories
nvidia_usd_validate --category Material --category Geometry asset.usda
# Enable specific rules only
nvidia_usd_validate --no-init-rules --rule StageMetadataChecker asset.usda
# Export results to CSV
nvidia_usd_validate --csv-output results.csv asset.usda
# Show help
nvidia_usd_validate --helpThe AGENTS.md file and .agents/skills directory contain structured guidance for AI coding agents. Start there for Python project setup, local venv setup, and generated requirement validation workflows.
- Python 3.10 - 3.12
- OpenUSD 22.11 or later
Apache-2.0