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
```bash
git lfs install
git clone https://github.com/NVIDIA/simready-foundation.git
cd simready-foundation
```
> Requires [Git LFS](https://git-lfs.com). 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.
```bash
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](https://github.com/NVIDIA/simready-foundation) repo for full details.
---
## Step 5: Validate & Fix
```bash
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
```bash
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)
```bash
wrapp create my_asset 1.0.0 ./my_asset --repo s3://your-bucket/assets
```
> WRAPP is from [NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/omniverse/collections/wrapp), not pip.
---
## Step 8: Create Manifest & Pre-flight
```bash
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
```bash
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
- [NVIDIA/simready-foundation](https://github.com/NVIDIA/simready-foundation) β€” public specs, profile authoring guides, sample assets
- [WRAPP on NGC](https://catalog.ngc.nvidia.com/orgs/nvidia/teams/omniverse/collections/wrapp) β€” packaging tool
- [Git LFS](https://git-lfs.com) β€” required for the foundation repo's binary assets