Full requirement coverage
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. |
Naming & paths (NP)
Section titled “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)
Section titled “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)
Section titled “SimReady metadata (SR)”| Code | Requirement | Coverage |
|---|---|---|
SR.001 | SimReady metadata in customLayerData | Enforced |
Units (UN)
Section titled “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)
Section titled “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)
Section titled “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)
Section titled “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 source assets properly referenced | Roadmap — pipeline (pipeline uses UsdPreviewSurface, 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)
Section titled “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)
Section titled “Semantic labels (SL)”| Code | Requirement | Coverage |
|---|---|---|
SL.001 | All geometry prims semantically labeled | Roadmap — pipeline |
SL.003 | Semantic labels use SemanticsLabelsAPI schema | Roadmap — pipeline |
SL.NV.002 | Semantic label attributes have no time samples | Roadmap — pipeline |
SL.QCODE.001 | Wikidata Q-codes valid and retrievable | Roadmap — pipeline |
Physics — rigid bodies (RB)
Section titled “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)
Section titled “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)
Section titled “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)
Section titled “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)
Section titled “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)
Section titled “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)
Section titled “Runtime — Isaac Sim (ISA)”| Code | Requirement | Coverage |
|---|---|---|
ISA.001 | Isaac Sim composition requirements | Runtime / advisory — validated at runtime in Isaac Sim |
Robot materials (RM)
Section titled “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)
Section titled “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 |