Validating an AIF Asset#
This guide shows how to validate an NVIDIA AI Factory (AIF) data center asset (CDU, CRAH, UPS, or Compute Rack) against the AIF-Entity profile.
If you only want to confirm your setup works, the minimal
Foosample in the top-level README is the quickest check. This page is the AIF path: use it once you have a real data center asset to validate.
Prerequisites#
Python 3.10 to 3.12 (3.12 recommended).
The
simready-validatetoolchain installed in an active virtual environment. If you already completed Environment setup in the top-level README, you have this; just activate that virtual environment and continue. If not, create and activate a virtual environment (see the README) and, from the repository root, run:pip install -r nv_core/validator_sample/requirements.txt
This pulls
simready-validate,omniverse-usd-profiles(which ships theomni.capabilitiesmodule the AIF validators import), andomniverse-asset-validator. No local build/codegen step is required to run validation.An AIF asset to validate. See the AIF-Entity authoring guide for the required stage composition and the per-equipment-class attribute sets.
The asset class drives validation#
A single AIF-Entity profile covers all four equipment classes. The aif:core:assetClass property on the asset selects which expectations apply:
|
Thermal |
Electrical |
|---|---|---|
|
Yes |
Yes |
|
Yes |
Yes |
|
No |
Yes |
|
No |
No |
You do not pick a different profile per class; you set aif:core:assetClass on the asset and validate against AIF-Entity.
Running validation#
From the repository root:
simready-validate \
--rules-path nv_core/sr_specs/docs/capabilities \
--features-path nv_core/sr_specs/docs/features \
--profiles-path nv_core/sr_specs/docs/profiles/profiles.toml \
--profile AIF-Entity --version 0.1.0 \
-v path/to/your_asset.usd
The aif:core:assetClass property on the asset selects which expectations apply (CDU, CRAH, UPS, or Rack), so the same AIF-Entity invocation works for every class. Write results to a file for programmatic inspection with --output results.json.
The asset path can point anywhere on disk. It does not need to live inside this repository. Pass an absolute or relative path to any
.usd/.usdaand the validator will resolve and check it. Note that the asset must be self-contained: any references it makes to external files (textures, sublayers, payloads) must resolve, or those references will be reported as failures.
Stamping the result into the asset#
Add --stamp-asset-validation to record the outcome in the asset’s customLayerData under SimReady_Metadata (see the README for the stamp schema). This gives downstream tools a portable record of what passed, against which profile, and when.
Expected results per class#
All four pass the
AIF-Entitychecks with zero failing requirements.
|
Expected |
Notes |
|---|---|---|
|
Pass |
|
|
Pass |
|
|
Pass |
|
|
Pass |
|
Where this fits#
This repository is the spec and validation rules. To author an AIF asset from CAD (ingestion, optimization, metadata), use the AIF Pipeline Samples, then validate the output here against AIF-Entity.