# 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/.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: ``` / ├── .usd ← Interface file (validate THIS) ├── configuration/ │ ├── _base.usd │ ├── _physics.usd │ └── _sensor.usd └── .thumbs/256x256/ └── .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/.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 ./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