SimReady Create Package
Purpose
Use this skill when a user wants to turn a folder of USD assets into a SimReady package with the bundled package sample workflow.
The skill guides assets/scripts/create_simready_package.py, which runs pre-validation, package creation, and post-validation. The helper package under assets/scripts/sr_pkg_sample/ is bundled with the skill so the workflow can run without reaching back into nv_core/package_sample/.
Prerequisites
Before running packaging commands, confirm:
- the repository root is
simready_foundations
- Python 3.10 or newer is available in the shell that will run the sample
assets/scripts/setup_venv.sh can be run from Git Bash, WSL, or another bash-compatible shell
- the user has the WRAPP wheel
omni_wrapp_minimal-2.2.0-py3-none-any.whl, or has access to an internal index that provides it
- the source folder contains every USD file and referenced asset that should go into the package
- the user provides the license that applies to the asset; do not choose a license for them
No OpenAI API key is required.
Inputs
Collect or infer:
| Input |
Requirement |
name |
Package name, lowercase and without spaces, such as apple_a01. |
version |
Package version, such as 1.0.0. |
license |
SPDX identifier or LicenseRef-* expression chosen by the user. |
source |
Folder that contains the root USDs and all referenced files. |
repo |
WRAPP repository path or file:// URL for the full WRAPP flow. |
root_usd |
Relative path inside source for each root USD, repeated with --root-usd. |
mode |
Full flow, pre-validation only, post-validation only, skip phase, or no-WRAPP fallback. |
Instructions
Use this checklist from the repository root:
- Use the bundled scripts in
skills/simready-foundation-create-package/assets/scripts/.
- Change into
skills/simready-foundation-create-package/assets/scripts/ before running setup or package commands.
- If
.venv/ already exists, activate it and verify import simready.validate and import wrapp before rebuilding it.
- If a virtual environment is needed, run
./setup_venv.sh --wrapp-wheel <path-to-wheel>. Add --extra-index <url> only when the user has a package index that provides missing dependencies.
- Activate the virtual environment for every packaging command. If running from outside the repository root, set
SIMREADY_FOUNDATIONS_ROOT to the repository root so the bundled helper can find nv_core/sr_specs/docs.
- Prefer the default flow for publication:
python create_simready_package.py <name> <version> <license> <source> <repo> \
--root-usd <relative/root.usd>
- Use
--only-pre-validation --source <folder> --root-usd <path> when the user is iterating on source-folder conformance before building.
- Use
--only-post-validation --package-def <path-to-com.nvidia.simready.packaging.json> to validate an already-created package.
- Suggest
--skip-pre-validation only after a successful pre-validation against the same unchanged source folder.
- Suggest
--skip-post-validation only when the user intentionally wants to validate the created package later.
- Use
--no-wrapp only for a minimal package skeleton or when WRAPP cannot be installed. Tell the user it is not suitable for publication and may fail BOM or introspection checks.
- Inspect the command return code. Treat stdout as evidence, not proof of success.
Examples
Full package creation:
cd skills/simready-foundation-create-package/assets/scripts
source .venv/bin/activate
python create_simready_package.py apple_a01 1.0.0 Apache-2.0 \
~/my_asset/simready_usd ~/my_repo \
--root-usd sm_apple_a01_01.usd
Pre-validation only while repairing source-folder paths:
python create_simready_package.py --only-pre-validation \
--source ~/my_asset/simready_usd \
--root-usd sm_apple_a01_01.usd
No-WRAPP fallback for a local experiment:
python create_simready_package.py apple_a01 1.0.0 MIT \
~/my_asset/simready_usd \
--no-wrapp --skip-post-validation
Failure Handling
- Pre-validation
FET031_PACKAGE_SELF_CONTAINED or AA.001: report the offending anchored-path failure and ask before editing USD references.
- Pre-validation usage error: collect the missing
--root-usd, missing --source, or invalid folder path.
- Create error about an existing root
.wrapp marker: ask whether to reuse that package name or remove the marker.
- Create error about nested packages: ask the user to remove nested
.wrapp files before retrying.
- Post-validation
FET030_PACKAGING_CORE: cite the failing package-core requirement and keep the generated package for inspection.
- Post-validation
FET032_PACKAGING_INTROSPECTION: check whether BOM metadata was written and rerun the full flow if the source did not change.
Policies
- Do not rewrite the user's USD files automatically while packaging.
- Do not pick the asset license for the user.
- Treat
assets/scripts/ as the skill-owned copy of the package workflow.
- Preserve generated reports and metadata unless the user asks for cleanup.
- Stop after two setup retries and summarize the blocker with the exact command that failed.
Limitations
- This skill does not replace profile-specific conformance skills for repairing USD content.
- The WRAPP setup depends on user-provided packages, credentials, or indexes that may not be available in the current shell.
- The no-WRAPP fallback creates a lightweight package definition and is expected to miss full publication evidence.
Troubleshooting
- Error:
Could not find a version that satisfies the requirement. Solution: verify access to https://pypi.nvidia.com/, then add the user's private index or local wheels.
- Error:
no root USD files specified. Solution: add one or more --root-usd paths relative to the source folder, or use --no-usd-files only for intentional non-USD packages.
- Error: package source changed after pre-validation. Solution: rerun the default flow so conformance metadata hashes match the current source.
- Error: WRAPP local backend is disabled. Solution: reinstall the WRAPP wheel with the
[local] extra through setup_venv.sh.
Resources
assets/scripts/create_simready_package.py is the command-line entrypoint.
assets/scripts/setup_venv.sh creates the sample virtual environment.
assets/scripts/requirements-package-sample.txt lists the package workflow dependencies.
assets/scripts/sr_pkg_sample/ contains the Python API for custom tooling integrations.
Summary Format
Report:
| Field |
Meaning |
mode |
Full flow, pre-validation only, post-validation only, skip phase, or no-WRAPP fallback. |
source |
Source folder that was packaged or checked. |
package_name |
Package name and version. |
root_usds |
Root USD paths supplied to the script. |
repo |
Target WRAPP repository, when used. |
first_failing_phase |
First failed phase, or none. |
reports |
Validation report paths, metadata paths, or package definition path. |
next_step |
Repair source, rerun packaging, publish, or inspect generated evidence. |
1---2name: simready-foundation-create-package3description: Use for creating SimReady packages with package sample scripts, WRAPP setup, root USD inputs, validation phases, and fallback modes.4license: Apache-2.05---67# SimReady Create Package89## Purpose1011Use this skill when a user wants to turn a folder of USD assets into a SimReady package with the bundled package sample workflow.1213The skill guides `assets/scripts/create_simready_package.py`, which runs pre-validation, package creation, and post-validation. The helper package under `assets/scripts/sr_pkg_sample/` is bundled with the skill so the workflow can run without reaching back into `nv_core/package_sample/`.1415## Prerequisites1617Before running packaging commands, confirm:1819- the repository root is `simready_foundations`20- Python 3.10 or newer is available in the shell that will run the sample21- `assets/scripts/setup_venv.sh` can be run from Git Bash, WSL, or another bash-compatible shell22- the user has the WRAPP wheel `omni_wrapp_minimal-2.2.0-py3-none-any.whl`, or has access to an internal index that provides it23- the source folder contains every USD file and referenced asset that should go into the package24- the user provides the license that applies to the asset; do not choose a license for them2526No OpenAI API key is required.2728## Inputs2930Collect or infer:3132| Input | Requirement |33|---|---|34| `name` | Package name, lowercase and without spaces, such as `apple_a01`. |35| `version` | Package version, such as `1.0.0`. |36| `license` | SPDX identifier or `LicenseRef-*` expression chosen by the user. |37| `source` | Folder that contains the root USDs and all referenced files. |38| `repo` | WRAPP repository path or `file://` URL for the full WRAPP flow. |39| `root_usd` | Relative path inside `source` for each root USD, repeated with `--root-usd`. |40| `mode` | Full flow, pre-validation only, post-validation only, skip phase, or no-WRAPP fallback. |4142## Instructions4344Use this checklist from the repository root:45461. Use the bundled scripts in `skills/simready-foundation-create-package/assets/scripts/`.472. Change into `skills/simready-foundation-create-package/assets/scripts/` before running setup or package commands.483. If `.venv/` already exists, activate it and verify `import simready.validate` and `import wrapp` before rebuilding it.494. If a virtual environment is needed, run `./setup_venv.sh --wrapp-wheel <path-to-wheel>`. Add `--extra-index <url>` only when the user has a package index that provides missing dependencies.505. Activate the virtual environment for every packaging command. If running from outside the repository root, set `SIMREADY_FOUNDATIONS_ROOT` to the repository root so the bundled helper can find `nv_core/sr_specs/docs`.516. Prefer the default flow for publication:52 ```bash53 python create_simready_package.py <name> <version> <license> <source> <repo> \54 --root-usd <relative/root.usd>55 ```567. Use `--only-pre-validation --source <folder> --root-usd <path>` when the user is iterating on source-folder conformance before building.578. Use `--only-post-validation --package-def <path-to-com.nvidia.simready.packaging.json>` to validate an already-created package.589. Suggest `--skip-pre-validation` only after a successful pre-validation against the same unchanged source folder.5910. Suggest `--skip-post-validation` only when the user intentionally wants to validate the created package later.6011. Use `--no-wrapp` only for a minimal package skeleton or when WRAPP cannot be installed. Tell the user it is not suitable for publication and may fail BOM or introspection checks.6112. Inspect the command return code. Treat stdout as evidence, not proof of success.6263## Examples6465Full package creation:6667```bash68cd skills/simready-foundation-create-package/assets/scripts69source .venv/bin/activate70python create_simready_package.py apple_a01 1.0.0 Apache-2.0 \71 ~/my_asset/simready_usd ~/my_repo \72 --root-usd sm_apple_a01_01.usd73```7475Pre-validation only while repairing source-folder paths:7677```bash78python create_simready_package.py --only-pre-validation \79 --source ~/my_asset/simready_usd \80 --root-usd sm_apple_a01_01.usd81```8283No-WRAPP fallback for a local experiment:8485```bash86python create_simready_package.py apple_a01 1.0.0 MIT \87 ~/my_asset/simready_usd \88 --no-wrapp --skip-post-validation89```9091## Failure Handling9293- Pre-validation `FET031_PACKAGE_SELF_CONTAINED` or `AA.001`: report the offending anchored-path failure and ask before editing USD references.94- Pre-validation usage error: collect the missing `--root-usd`, missing `--source`, or invalid folder path.95- Create error about an existing root `.wrapp` marker: ask whether to reuse that package name or remove the marker.96- Create error about nested packages: ask the user to remove nested `.wrapp` files before retrying.97- Post-validation `FET030_PACKAGING_CORE`: cite the failing package-core requirement and keep the generated package for inspection.98- Post-validation `FET032_PACKAGING_INTROSPECTION`: check whether BOM metadata was written and rerun the full flow if the source did not change.99100## Policies101102- Do not rewrite the user's USD files automatically while packaging.103- Do not pick the asset license for the user.104- Treat `assets/scripts/` as the skill-owned copy of the package workflow.105- Preserve generated reports and metadata unless the user asks for cleanup.106- Stop after two setup retries and summarize the blocker with the exact command that failed.107108## Limitations109110- This skill does not replace profile-specific conformance skills for repairing USD content.111- The WRAPP setup depends on user-provided packages, credentials, or indexes that may not be available in the current shell.112- The no-WRAPP fallback creates a lightweight package definition and is expected to miss full publication evidence.113114## Troubleshooting115116- Error: `Could not find a version that satisfies the requirement`. Solution: verify access to `https://pypi.nvidia.com/`, then add the user's private index or local wheels.117- Error: `no root USD files specified`. Solution: add one or more `--root-usd` paths relative to the source folder, or use `--no-usd-files` only for intentional non-USD packages.118- Error: package source changed after pre-validation. Solution: rerun the default flow so conformance metadata hashes match the current source.119- Error: WRAPP local backend is disabled. Solution: reinstall the WRAPP wheel with the `[local]` extra through `setup_venv.sh`.120121## Resources122123- `assets/scripts/create_simready_package.py` is the command-line entrypoint.124- `assets/scripts/setup_venv.sh` creates the sample virtual environment.125- `assets/scripts/requirements-package-sample.txt` lists the package workflow dependencies.126- `assets/scripts/sr_pkg_sample/` contains the Python API for custom tooling integrations.127128## Summary Format129130Report:131132| Field | Meaning |133|---|---|134| `mode` | Full flow, pre-validation only, post-validation only, skip phase, or no-WRAPP fallback. |135| `source` | Source folder that was packaged or checked. |136| `package_name` | Package name and version. |137| `root_usds` | Root USD paths supplied to the script. |138| `repo` | Target WRAPP repository, when used. |139| `first_failing_phase` | First failed phase, or `none`. |140| `reports` | Validation report paths, metadata paths, or package definition path. |141| `next_step` | Repair source, rerun packaging, publish, or inspect generated evidence. |