simready-validator / VALIDATE.md
loginowskid's picture
Sync from simready-oem-library-pm@5cf67ff7
03f7730 verified

SimReady OEM Library β€” Onboarding

Step 1: Clone the Foundation Repo

git lfs install
git clone https://github.com/NVIDIA/simready-foundation.git
cd simready-foundation

Requires Git LFS. Run git lfs pull if binary files show as pointers.


Step 2: Understand Profiles

Profiles define what your asset must satisfy. Pick the one matching your use case:

Profile Use Case
Prop-Robotics-Neutral Props (format-neutral physics)
Prop-Robotics-Physx Props (PhysX-specific)
Prop-Robotics-Isaac Props (Isaac Sim ready)
Robot-Body-Neutral Robot bodies (neutral)
Robot-Body-Runnable Robots runnable in PhysX
Robot-Body-Isaac Robots for Isaac Sim

⚠️ Profile names are case-sensitive.

Read your profile's authoring guide: nv_core/sr_specs/docs/profiles/<profile-name>.md

See formal definitions: nv_core/sr_specs/docs/profiles/profiles.toml

Study sample assets: sample_content/common_assets/robots_general/ and props_general/


Step 3: Install the SDK

Install the simready CLI from the public SimReady OEM SDK distribution.

pip install simready-oem-sdk

Avoid Anaconda β€” it causes USD DLL conflicts. The packaging spec is summarized in Step 4 below.


Step 4: Package Your Assets

Follow the SimReady packaging specification (summarized below). Required structure:

<asset_name>/
β”œβ”€β”€ <asset_name>.usd           ← Interface file (validate THIS)
β”œβ”€β”€ configuration/
β”‚   β”œβ”€β”€ <asset_name>_base.usd
β”‚   β”œβ”€β”€ <asset_name>_physics.usd
β”‚   └── <asset_name>_sensor.usd
└── .thumbs/256x256/
    └── <asset_name>.usd.png   ← 256Γ—256 thumbnail (REQUIRED)

Embed profile metadata in your interface file's customLayerData. See your profile's authoring guide under nv_core/sr_specs/docs/profiles/<profile-name>.md in the NVIDIA/simready-foundation repo for full details.


Step 5: Validate & Fix

simready validate ./my_asset/my_asset.usd --profile Robot-Body-Runnable
simready fix list                       # see available auto-fixes
simready fix apply <fix_name> ./my_asset

Iterate until all checks pass. For a hosted run that doesn't require local installation, use the Validator tab on this Space.


Step 6: Generate a Validation Receipt

simready validate ./my_asset/my_asset.usd --profile Robot-Body-Runnable --receipt

Creates .simready/validation.json β€” required for submission.


Step 7: Package with WRAPP (Optional)

wrapp create my_asset 1.0.0 ./my_asset --repo s3://your-bucket/assets

WRAPP is from NGC, not pip.


Step 8: Create Manifest & Pre-flight

simready manifest init my_company --email team@company.com
simready manifest add my_company ./my_asset
simready manifest validate my_company    # must pass before submission

Step 9: Submit Merge Request

simready submit my_company
git checkout -b submission/my_company-q2-2026
git add . && git commit -m "Submit assets" && git push origin HEAD

Open a PR targeting main. Include your manifest + asset directories with receipts.


Further Reading