---
title: "Full requirement coverage"
description: "Every requirement code in the SimReady Foundation specification and Rigyd's current status against it."
---

The SimReady Foundation specification is a numbered registry of requirements grouped by area (naming, geometry, materials, physics, articulation, robot core, etc.). Rigyd's validator implements the entire registry — every code below is touched on every conversion. For each requirement, the table records:

- **Code** — the SimReady Foundation requirement code.
- **Requirement** — what the spec actually asks for.
- **Coverage** — what Rigyd does with it today, in one of four states:

| State | Meaning |
| --- | --- |
| **Enforced** | Actively checked on every conversion. A failure here fails the job. |
| **Runtime / advisory** | Inherently a runtime concern (PhysX/Isaac evaluates it at simulation time) or an advisory that requires runtime geometry analysis. Reported as `N/A` so downstream consumers can see the check was considered, not skipped. |
| **Roadmap — pipeline** | Spec area we haven't shipped yet (semantic labels, non-visual materials, MDL materials, grasp simulation properties). Tracked, not enforced. |
| **Roadmap — articulated / robot** | Structurally inapplicable to single rigid-body props. Activates when Rigyd's articulated-asset and robot generation lands and we move from the `Prop-Robotics-Neutral` profile to the [`Robot-Body-*` profile family](https://nvidia.github.io/simready-foundation/guides/profiles/profiles.html). |

## Naming & paths (NP)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `NP.001` | Prim naming convention | Enforced |
| `NP.002` | File naming convention | Enforced |
| `NP.003` | Directory structure | Enforced |
| `NP.004` | Path length limits | Enforced |
| `NP.005` | Asset folder structure | Enforced |
| `NP.006` | Metadata location | Enforced |
| `NP.007` | Relative paths (no absolute paths in references) | Enforced |
| `NP.008` | All referenced asset paths resolve to existing files | Enforced |

## Atomic asset (AA)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `AA.001` | Asset references use anchored paths | Enforced |
| `AA.002` | Asset uses only supported file types | Enforced |
| `AA.OV.001` | UDIM textures unsupported in Omniverse | Runtime / advisory — UDIM resolution is an Omniverse runtime concern |

## SimReady metadata (SR)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `SR.001` | SimReady metadata in `customLayerData` | Enforced |

## Units (UN)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `UN.001` | Stage specifies `upAxis` | Enforced |
| `UN.002` | Stage specifies `metersPerUnit` | Enforced |
| `UN.003` | Stage specifies `kilogramsPerUnit` (if physics present) | Enforced |
| `UN.004` | Corrective transforms applied for unit mismatches | Enforced |
| `UN.005` | Stage specifies `timeCodesPerSecond` (if timesamples present) | Runtime / advisory — no timesampled data in static props |
| `UN.006` | Stage `upAxis = 'Z'` | Enforced |
| `UN.007` | Stage `metersPerUnit = 1.0` | Enforced |

## Hierarchy (HI)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `HI.001` | Single root prim hierarchy | Enforced |
| `HI.002` | Every `UsdGeomPrim` has exclusive `Xform` parent | Enforced |
| `HI.003` | Root prim is `UsdGeomXformable` | Enforced |
| `HI.004` | Stage has `defaultPrim` | Enforced |
| `HI.005` | Transforms conform to `UsdGeomXformCommonAPI` | Enforced |
| `HI.006` | Placeable/posable prims are `Xformable` | Enforced |
| `HI.007` | *(Reserved by the spec)* | Reserved |
| `HI.008` | Geometry grouped logically per object structure | Enforced |
| `HI.009` | Hierarchy reflects kinematic chain (articulated assets) | Roadmap — articulated / robot |
| `HI.010` | No undefined prims (overs) | Enforced |

## Visual geometry (VG)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `VG.001` | At least one imageable geometry | Enforced |
| `VG.002` | Boundable prims have valid `extent` values | Enforced |
| `VG.003` | No internal-only geometry | Runtime / advisory — requires runtime visibility analysis |
| `VG.004` | Efficient mesh boundaries | Runtime / advisory — requires runtime mesh analysis |
| `VG.005` | Meshes maintain appropriate scale | Runtime / advisory — requires scene-context analysis |
| `VG.006` | No unnecessary mesh overlap | Runtime / advisory — requires runtime overlap analysis |
| `VG.007` | Mesh geometry is manifold | Runtime / advisory — handled during Blender preprocessing |
| `VG.008` | No coincident meshes | Runtime / advisory — requires runtime analysis |
| `VG.009` | Indexed primvars when values repeat | Enforced |
| `VG.010` | No subdivision on meshes with normals | Enforced |
| `VG.011` | Only actively used primvars included | Enforced |
| `VG.012` | Small meshes combined where appropriate | Runtime / advisory — pipeline preserves input mesh structure |
| `VG.013` | Appropriate tessellation density | Runtime / advisory — input tessellation preserved |
| `VG.014` | Mesh topology is valid | Enforced |
| `VG.015` | Time samples only when values change | Runtime / advisory — no timesampled data in static props |
| `VG.016` | No colocated (duplicate) vertex positions | Runtime / advisory — requires runtime point analysis |
| `VG.017` | Avoid tessellating primitive shapes | Enforced |
| `VG.018` | No unused vertices, edges, or faces in mesh topology | Runtime / advisory — requires runtime topology analysis |
| `VG.019` | Faces have non-zero area | Runtime / advisory — requires runtime geometry analysis |
| `VG.020` | Points attribute fits 32-bit float precision | Enforced |
| `VG.021` | Mesh is triangulated | Enforced |
| `VG.022` | Transparent bodies are watertight | Runtime / advisory — requires runtime watertightness analysis |
| `VG.023` | Positioning via xform ops, not baked into points | Enforced |
| `VG.024` | Identical meshes have consistent connectivity | Runtime / advisory — single-asset pipeline, no repeated meshes |
| `VG.025` | Asset positioned at origin `(0,0,0)` | Enforced |
| `VG.026` | Pivot point placed logically | Runtime / advisory — requires domain-specific inspection |
| `VG.027` | Non-subdivided meshes have normals | Enforced |
| `VG.028` | Mesh normals are valid | Enforced |
| `VG.029` | Correct face winding order | Runtime / advisory — requires runtime geometry analysis |
| `VG.034` | Avoid invisible prims; use deactivation instead | Enforced |
| `VG.MESH.001` | All geometry represented as `UsdGeomMesh` | Enforced |
| `VG.RTX.001` | World-space bounds within RTX limit | Enforced |

## Visual materials (VM)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `VM.MAT.001` | Material bound to all renderable geometry | Enforced |
| `VM.BIND.001` | Material bindings use appropriate scope | Enforced |
| `VM.BIND.002` | Shader inputs match specification types | Enforced |
| `VM.MDL.001` | [MDL](https://www.nvidia.com/en-us/design-visualization/technologies/material-definition-language/) source assets properly referenced | Roadmap — pipeline (pipeline uses [`UsdPreviewSurface`](https://openusd.org/release/spec_usdpreviewsurface.html), not MDL) |
| `VM.MDL.002` | MDL shaders use standard OpenUSD attributes | Roadmap — pipeline (pipeline uses `UsdPreviewSurface`, not MDL) |
| `VM.PS.001` | `UsdPreviewSurface` attributes comply with spec | Enforced |
| `VM.TEX.001` | Texture dimensions ≤ 16384 px | Enforced (when textures present) |
| `VM.TEX.002` | Correct color space per texture channel | Enforced (when textures present) |
| `VM.D.001` | Fewer materials improve performance | Enforced |

## Non-visual materials (NVM)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `NVM.001` | Materials specify non-visual attributes | Roadmap — pipeline |
| `NVM.002` | Materials specify base material type | Roadmap — pipeline |
| `NVM.003` | Materials specify surface coating | Roadmap — pipeline |
| `NVM.004` | Non-visual attributes on bound materials | Roadmap — pipeline |
| `NVM.005` | Non-visual properties consistent with visual materials | Roadmap — pipeline |
| `NVM.006` | Non-visual properties not time-varying | Roadmap — pipeline |

## Semantic labels (SL)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `SL.001` | All geometry prims semantically labeled | Roadmap — pipeline |
| `SL.003` | Semantic labels use [`SemanticsLabelsAPI`](https://docs.omniverse.nvidia.com/kit/docs/omni.replicator.core/latest/API.html) schema | Roadmap — pipeline |
| `SL.NV.002` | Semantic label attributes have no time samples | Roadmap — pipeline |
| `SL.QCODE.001` | [Wikidata Q-codes](https://www.wikidata.org/wiki/Wikidata:Identifiers) valid and retrievable | Roadmap — pipeline |

## Physics — rigid bodies (RB)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `RB.001` | Asset contains at least one rigid body | Enforced |
| `RB.003` | Rigid bodies are `UsdGeomXformable` prims | Enforced |
| `RB.005` | Rigid bodies not part of scene graph instances | Enforced |
| `RB.006` | No nested rigid bodies without xformOp stack reset | Enforced |
| `RB.007` | Rigid body or collision children have mass specified | Enforced |
| `RB.008` | Detailed mass properties (CoM, inertia tensor) | Enforced |
| `RB.009` | Rigid body transform has no skew matrix | Enforced |
| `RB.010` | Invisible collision meshes have `purpose = 'guide'` | Enforced |
| `RB.011` | Nested rigid bodies have explicit mass or non-zero collision volume | Roadmap — articulated / robot (no nested bodies in single-body props) |
| `RB.012` | No nested rigid bodies without connecting joint | Roadmap — articulated / robot (no nested bodies in single-body props) |
| `RB.COL.001` | `CollisionAPI` applied to geometry prims | Enforced |
| `RB.COL.002` | `MeshCollisionAPI` on Mesh prims with `CollisionAPI` | Enforced |
| `RB.COL.003` | `MeshCollisionAPI` only on `UsdGeomMesh` prims | Enforced |
| `RB.COL.004` | Uniform collision scale for Sphere/Capsule/Cylinder/Cone | Enforced |
| `RB.MB.001` | Asset contains at least two rigid bodies (multi-body) | Roadmap — articulated / robot |

## Physics — joints (JT)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `JT.001` | Non-free-floating rigid bodies connected via joints | Roadmap — articulated / robot |
| `JT.002` | Joint `Body0`/`Body1` targets exist | Roadmap — articulated / robot |
| `JT.003` | Joint `Body0`/`Body1` have at most one target each | Roadmap — articulated / robot |
| `JT.ART.001` | Kinematic chains define an articulation | Roadmap — articulated / robot |
| `JT.ART.002` | Articulation roots not nested | Roadmap — articulated / robot |
| `JT.ART.003` | Articulations not on kinematic bodies | Roadmap — articulated / robot |
| `JT.ART.004` | Articulations not on static (disabled) bodies | Roadmap — articulated / robot |

## Physics — driven joints (DJ)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `DJ.001` | Driven joint has correct drive config and joint state | Roadmap — articulated / robot |
| `DJ.002` | Driven joints implement joint state API | Roadmap — articulated / robot |
| `DJ.003` | Driven joints maintain correct transform and state | Roadmap — articulated / robot |
| `DJ.004` | Driven joints implement drive or mimic API | Roadmap — articulated / robot |
| `DJ.005` | Driven joints have max velocity limits | Roadmap — articulated / robot |
| `DJ.006` | Drive joint parameters within reasonable ranges | Roadmap — articulated / robot |
| `DJ.007` | Mimic API config valid for coordinated motion | Roadmap — articulated / robot |
| `DJ.008` | Robot schema joints exist and defined | Roadmap — articulated / robot |
| `DJ.009` | Robot schema links exist and connected | Roadmap — articulated / robot |
| `DJ.010` | Robot joint/link relationships valid | Roadmap — articulated / robot |
| `DJ.011` | No articulation loops | Roadmap — articulated / robot |

## Physics — base articulation (BA)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `BA.001` | Articulated assets have exactly one `ArticulationRootAPI` | Roadmap — articulated / robot |
| `BA.002` | Non-adjacent collision meshes don't clash at default pose | Roadmap — articulated / robot |

## Physics — colliders & PhysX (COL, PHYSX)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `COL.001` | SDF collision approximation | Runtime / advisory — PhysX-specific, validated at runtime in Isaac Sim |
| `PHYSX.COL.001` | `CollisionAPI` on Gprim or Xform with `PhysxMeshMergeCollisionAPI` | Runtime / advisory — PhysX-specific |
| `PHYSX.COL.002` | PhysX collider mesh validation | Runtime / advisory — PhysX-specific |

## Physics — materials & grasp (PMT, GSP)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `PMT.001` | Physics material with friction and restitution | Enforced |
| `GSP.001` | Grasp simulation properties | Roadmap — pipeline |

## Runtime — Isaac Sim (ISA)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `ISA.001` | Isaac Sim composition requirements | Runtime / advisory — validated at runtime in Isaac Sim |

## Robot materials (RM)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `RM.001` | No nested materials in robot assets | Roadmap — articulated / robot |
| `RM.002` | Materials on top-level only in robot assets | Roadmap — articulated / robot |

## Robot core (RC)

| Code | Requirement | Coverage |
| --- | --- | --- |
| `RC.001` | Robot asset folder contains only referenced files | Roadmap — articulated / robot |
| `RC.002` | No local override layers masking upstream schemas | Roadmap — articulated / robot |
| `RC.003` | Robot and prim naming conventions | Roadmap — articulated / robot |
| `RC.004` | Robot asset has representative thumbnail | Roadmap — articulated / robot |
| `RC.005` | Physics attributes authored in physics layer | Roadmap — articulated / robot |
| `RC.006` | Robot physics schema correctly authored | Roadmap — articulated / robot |
| `RC.007` | Robot USDs declare required schemas | Roadmap — articulated / robot |
| `RC.008` | Robot USDs declare robot type | Roadmap — articulated / robot |
| `RC.009` | Root joint pinned per robot type | Roadmap — articulated / robot |

## References

- [SimReady Foundation — specification home](https://nvidia.github.io/simready-foundation/)
- [SimReady Foundation — features](https://nvidia.github.io/simready-foundation/guides/features/features.html)
- [SimReady Foundation — profiles](https://nvidia.github.io/simready-foundation/guides/profiles/profiles.html)
- [The SimReady Specification — Omniverse docs](https://docs.omniverse.nvidia.com/simready/latest/overview/simready-spec.html)
- [OpenUSD](https://openusd.org/)
- [NVIDIA Isaac Sim](https://developer.nvidia.com/isaac/sim) · [Isaac Lab](https://isaac-sim.github.io/IsaacLab/)