simready-foundation-create-package
Use for creating SimReady packages with package sample scripts, WRAPP setup, root USD inputs, validation phases, and fallback modes.
npx skills add https://github.com/nvidia/simready-foundation --skill simready-foundation-create-packageSimReady 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.shcan 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 verifyimport simready.validateandimport wrappbefore 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_ROOTto the repository root so the bundled helper can findnv_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-validationonly after a successful pre-validation against the same unchanged source folder. - Suggest
--skip-post-validationonly when the user intentionally wants to validate the created package later. - Use
--no-wrapponly 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_CONTAINEDorAA.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
.wrappmarker: ask whether to reuse that package name or remove the marker. - Create error about nested packages: ask the user to remove nested
.wrappfiles 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 tohttps://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-usdpaths relative to the source folder, or use--no-usd-filesonly 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 throughsetup_venv.sh.
Resources
assets/scripts/create_simready_package.pyis the command-line entrypoint.assets/scripts/setup_venv.shcreates the sample virtual environment.assets/scripts/requirements-package-sample.txtlists 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. |