Summary
simready-validate 2026.4.9 with omni-asset-validator 1.18.0 cannot validate assets against any SimReady Foundation profile (Prop-Robotics-Physx, Prop-Robotics-Neutral, etc.) because the validation rule Python modules referenced in nv_core/sr_specs/docs/capabilities/__init__.py do not exist in the repository.
Environment
simready-validate==2026.4.9 (pip, PyPI)
omniverse-asset-validator==1.18.0 (pip, PyPI)
omniverse-usd-profiles==1.10.22
simready-foundation at commit a1e9dd6 (Release 2026.04.1, branch main)
- Python 3.12.13, Linux x86_64 (Ubuntu 22.04)
Steps to Reproduce
pip install simready-validate numpy
git clone https://github.com/NVIDIA/simready-foundation
simready-validate \
--rules-path simready-foundation/nv_core/sr_specs/docs/capabilities \
--features-path simready-foundation/nv_core/sr_specs/docs/features \
--profiles-path simready-foundation/nv_core/sr_specs/docs/profiles/profiles.toml \
--profile Prop-Robotics-Physx \
/path/to/any/asset.usd
Error
ImportError: cannot import name 'validation' from 'capabilities.core.atomic_asset' (unknown location)
Root Cause
nv_core/sr_specs/docs/capabilities/__init__.py imports ~25 validation.py modules that do not exist in the repository:
from .core.atomic_asset import validation # ← file missing
from .core.naming_paths import validation # ← directory missing
from .core.sim_ready import validation # ← file missing
from .core.units import validation # ← directory missing
from .example import example # ← module missing
from .hierarchy import validation # ← file missing
from .isaac_sim.composition import validation
from .isaac_sim.robot_core import validation
from .visualization.geometry import validation
from .visualization.materials import validation
# ... ~15 more missing modules
Only physics_bodies/physics_graspable/validation.py actually exists in the repo.
Impact
Without loadable rule modules:
- Requirements cannot be registered via
--rules-path
- Features are skipped ("contains unregistered requirements")
- Profiles are skipped ("contains unregistered features")
- Validation always returns "Profile not found" regardless of asset quality
This means no asset can be validated against any profile using the documented workflow from profiles_validation_workflow.md.
Additional Context
omni-asset-validator 1.18.0 (pip) internally registers 41 validation rules covering 22 of the 44 requirement codes needed for Prop-Robotics-Physx. However, simready-validate's initialize() clears these during startup before re-loading from --rules-path.
- The
omniverse-cad-to-simready skill's simready-validate/scripts/run.py checks for a --json-output CLI flag (newer interface with --foundation-root) that does not exist in simready-validate 2026.4.9.
- The
validator_sample/ in this repo works fine because it uses its own self-contained rules/features/profiles, but production profiles cannot be validated.
Expected Behavior
One of:
- Ship the validation rule Python modules in
capabilities/ so --rules-path works with the existing CLI
- Ship a newer
simready-validate CLI version that bundles all rules internally and exposes --foundation-root / --json-output
- Fix
capabilities/__init__.py to gracefully skip missing modules and fall back to whatever rules omni-asset-validator already registers
Workaround
Currently the only partial workaround is using simready-conform-profile (which passed for our asset) as the validation gate instead of the full simready-validate profile validation.
Summary
simready-validate 2026.4.9withomni-asset-validator 1.18.0cannot validate assets against any SimReady Foundation profile (Prop-Robotics-Physx,Prop-Robotics-Neutral, etc.) because the validation rule Python modules referenced innv_core/sr_specs/docs/capabilities/__init__.pydo not exist in the repository.Environment
simready-validate==2026.4.9(pip, PyPI)omniverse-asset-validator==1.18.0(pip, PyPI)omniverse-usd-profiles==1.10.22simready-foundationat commita1e9dd6(Release 2026.04.1, branchmain)Steps to Reproduce
Error
Root Cause
nv_core/sr_specs/docs/capabilities/__init__.pyimports ~25validation.pymodules that do not exist in the repository:Only
physics_bodies/physics_graspable/validation.pyactually exists in the repo.Impact
Without loadable rule modules:
--rules-pathThis means no asset can be validated against any profile using the documented workflow from
profiles_validation_workflow.md.Additional Context
omni-asset-validator 1.18.0(pip) internally registers 41 validation rules covering 22 of the 44 requirement codes needed forProp-Robotics-Physx. However,simready-validate'sinitialize()clears these during startup before re-loading from--rules-path.omniverse-cad-to-simreadyskill'ssimready-validate/scripts/run.pychecks for a--json-outputCLI flag (newer interface with--foundation-root) that does not exist insimready-validate 2026.4.9.validator_sample/in this repo works fine because it uses its own self-contained rules/features/profiles, but production profiles cannot be validated.Expected Behavior
One of:
capabilities/so--rules-pathworks with the existing CLIsimready-validateCLI version that bundles all rules internally and exposes--foundation-root/--json-outputcapabilities/__init__.pyto gracefully skip missing modules and fall back to whatever rulesomni-asset-validatoralready registersWorkaround
Currently the only partial workaround is using
simready-conform-profile(which passed for our asset) as the validation gate instead of the fullsimready-validateprofile validation.