NVIDIA / NVIDIA/simready-foundation
simready-validate cannot validate against any profile — missing validation rule modules in capabilities/
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 88
- Forks
- 18
- PR merge metrics
- No merged PRs in 30d
Description
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.22simready-foundationat commita1e9dd6(Release 2026.04.1, branchmain)- 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 forProp-Robotics-Physx. However,simready-validate'sinitialize()clears these during startup before re-loading from--rules-path.- The
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. - 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-pathworks with the existing CLI - Ship a newer
simready-validateCLI version that bundles all rules internally and exposes--foundation-root/--json-output - Fix
capabilities/__init__.pyto gracefully skip missing modules and fall back to whatever rulesomni-asset-validatoralready 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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with nv_core/sr_specs/docs/capabilities/init.py and compare its imports with the modules present under capabilities/. Reproduce the failure using the documented simready-validate command and inspect profiles_validation_workflow.md, the validator_sample/, and the referenced CLI behavior. Done means the documented production profile workflow has a defined, working path for loading rules and validating a profile.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, testing-qa, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 42/100