Metadata-Version: 2.4
Name: omniverse-asset-validator
Version: 1.15.1
Summary: NVIDIA Asset Validator
Project-URL: Homepage, https://docs.omniverse.nvidia.com/kit/docs/asset-validator
Project-URL: Documentation, https://docs.omniverse.nvidia.com/kit/docs/asset-validator
Author: NVIDIA
License: Apache-2.0
Requires-Python: <3.13,>=3.10
Provides-Extra: numpy
Requires-Dist: numpy<2,>=1; extra == 'numpy'
Provides-Extra: usd
Requires-Dist: usd-core>=22.11; extra == 'usd'
Description-Content-Type: text/markdown

# Omniverse Asset Validator

An extensible framework to validate [OpenUSD](https://openusd.org) assets.
Inspired by Pixar's [usdchecker](https://graphics.pixar.com/usd/release/toolset.html#usdchecker),
this library extends validation capabilities with additional rules and provides automatic issue fixing.

## Features

- 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

## Installation

Install from PyPI:

```bash
pip install omniverse-asset-validator
```

## Optional Dependencies

For full functionality, install with optional dependencies:

```bash
# Include usd-core
pip install omniverse-asset-validator[usd]

# Include NumPy (for optimizations)
pip install omniverse-asset-validator[numpy]

# Install all optional dependencies
pip install omniverse-asset-validator[usd,numpy]
```

## Basic usage

```python
from omni.asset_validator import ValidationEngine, IssueFixer

engine = ValidationEngine()
results = engine.validate("path/to/asset.usda")

for issue in results.issues():
    print(f"{issue.severity}: {issue.message}")

fixer = IssueFixer()
fix_results = fixer.fix(results.issues())

for result in fix_results:
    print(f"{result.status}: {result.issue.message}")
```

The `ValidationEngine` also supports selecting specific rules with `enableRule()` / `disableRule()`
and filtering by category with `enableCategory()`.

## Command Line Interface

The `omni_asset_validate` command provides validation from the terminal:

```bash
# Validate a single file
omni_asset_validate asset.usda

# Validate a directory recursively
omni_asset_validate ./assets/

# Apply automatic fixes
omni_asset_validate --fix asset.usda

# Validate specific categories
omni_asset_validate --category Material --category Geometry asset.usda

# Enable specific rules only
omni_asset_validate --no-init-rules --rule StageMetadataChecker asset.usda

# Export results to CSV
omni_asset_validate --csv-output results.csv asset.usda

# Show help
omni_asset_validate --help
```

## Documentation

- [Full Documentation](https://docs.omniverse.nvidia.com/kit/docs/asset-validator)
- [API Reference](https://docs.omniverse.nvidia.com/kit/docs/asset-validator/latest/source/python/docs/api.html)
- [Available Rules](https://docs.omniverse.nvidia.com/kit/docs/asset-validator/latest/source/python/docs/rules.html)

## Requirements

- Python 3.10 - 3.12
- OpenUSD 22.11 or later

## License

Apache-2.0
