Skip to content

Full requirement coverage

View Markdown llms-full.txt

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:
StateMeaning
EnforcedActively checked on every conversion. A failure here fails the job.
Runtime / advisoryInherently 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 — pipelineSpec area we haven’t shipped yet (semantic labels, non-visual materials, MDL materials, grasp simulation properties). Tracked, not enforced.
Roadmap — articulated / robotStructurally 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.
CodeRequirementCoverage
NP.001Prim naming conventionEnforced
NP.002File naming conventionEnforced
NP.003Directory structureEnforced
NP.004Path length limitsEnforced
NP.005Asset folder structureEnforced
NP.006Metadata locationEnforced
NP.007Relative paths (no absolute paths in references)Enforced
NP.008All referenced asset paths resolve to existing filesEnforced
CodeRequirementCoverage
AA.001Asset references use anchored pathsEnforced
AA.002Asset uses only supported file typesEnforced
AA.OV.001UDIM textures unsupported in OmniverseRuntime / advisory — UDIM resolution is an Omniverse runtime concern
CodeRequirementCoverage
SR.001SimReady metadata in customLayerDataEnforced
CodeRequirementCoverage
UN.001Stage specifies upAxisEnforced
UN.002Stage specifies metersPerUnitEnforced
UN.003Stage specifies kilogramsPerUnit (if physics present)Enforced
UN.004Corrective transforms applied for unit mismatchesEnforced
UN.005Stage specifies timeCodesPerSecond (if timesamples present)Runtime / advisory — no timesampled data in static props
UN.006Stage upAxis = 'Z'Enforced
UN.007Stage metersPerUnit = 1.0Enforced
CodeRequirementCoverage
HI.001Single root prim hierarchyEnforced
HI.002Every UsdGeomPrim has exclusive Xform parentEnforced
HI.003Root prim is UsdGeomXformableEnforced
HI.004Stage has defaultPrimEnforced
HI.005Transforms conform to UsdGeomXformCommonAPIEnforced
HI.006Placeable/posable prims are XformableEnforced
HI.007(Reserved by the spec)Reserved
HI.008Geometry grouped logically per object structureEnforced
HI.009Hierarchy reflects kinematic chain (articulated assets)Roadmap — articulated / robot
HI.010No undefined prims (overs)Enforced
CodeRequirementCoverage
VG.001At least one imageable geometryEnforced
VG.002Boundable prims have valid extent valuesEnforced
VG.003No internal-only geometryRuntime / advisory — requires runtime visibility analysis
VG.004Efficient mesh boundariesRuntime / advisory — requires runtime mesh analysis
VG.005Meshes maintain appropriate scaleRuntime / advisory — requires scene-context analysis
VG.006No unnecessary mesh overlapRuntime / advisory — requires runtime overlap analysis
VG.007Mesh geometry is manifoldRuntime / advisory — handled during Blender preprocessing
VG.008No coincident meshesRuntime / advisory — requires runtime analysis
VG.009Indexed primvars when values repeatEnforced
VG.010No subdivision on meshes with normalsEnforced
VG.011Only actively used primvars includedEnforced
VG.012Small meshes combined where appropriateRuntime / advisory — pipeline preserves input mesh structure
VG.013Appropriate tessellation densityRuntime / advisory — input tessellation preserved
VG.014Mesh topology is validEnforced
VG.015Time samples only when values changeRuntime / advisory — no timesampled data in static props
VG.016No colocated (duplicate) vertex positionsRuntime / advisory — requires runtime point analysis
VG.017Avoid tessellating primitive shapesEnforced
VG.018No unused vertices, edges, or faces in mesh topologyRuntime / advisory — requires runtime topology analysis
VG.019Faces have non-zero areaRuntime / advisory — requires runtime geometry analysis
VG.020Points attribute fits 32-bit float precisionEnforced
VG.021Mesh is triangulatedEnforced
VG.022Transparent bodies are watertightRuntime / advisory — requires runtime watertightness analysis
VG.023Positioning via xform ops, not baked into pointsEnforced
VG.024Identical meshes have consistent connectivityRuntime / advisory — single-asset pipeline, no repeated meshes
VG.025Asset positioned at origin (0,0,0)Enforced
VG.026Pivot point placed logicallyRuntime / advisory — requires domain-specific inspection
VG.027Non-subdivided meshes have normalsEnforced
VG.028Mesh normals are validEnforced
VG.029Correct face winding orderRuntime / advisory — requires runtime geometry analysis
VG.034Avoid invisible prims; use deactivation insteadEnforced
VG.MESH.001All geometry represented as UsdGeomMeshEnforced
VG.RTX.001World-space bounds within RTX limitEnforced
CodeRequirementCoverage
VM.MAT.001Material bound to all renderable geometryEnforced
VM.BIND.001Material bindings use appropriate scopeEnforced
VM.BIND.002Shader inputs match specification typesEnforced
VM.MDL.001MDL source assets properly referencedRoadmap — pipeline (pipeline uses UsdPreviewSurface, not MDL)
VM.MDL.002MDL shaders use standard OpenUSD attributesRoadmap — pipeline (pipeline uses UsdPreviewSurface, not MDL)
VM.PS.001UsdPreviewSurface attributes comply with specEnforced
VM.TEX.001Texture dimensions ≤ 16384 pxEnforced (when textures present)
VM.TEX.002Correct color space per texture channelEnforced (when textures present)
VM.D.001Fewer materials improve performanceEnforced
CodeRequirementCoverage
NVM.001Materials specify non-visual attributesRoadmap — pipeline
NVM.002Materials specify base material typeRoadmap — pipeline
NVM.003Materials specify surface coatingRoadmap — pipeline
NVM.004Non-visual attributes on bound materialsRoadmap — pipeline
NVM.005Non-visual properties consistent with visual materialsRoadmap — pipeline
NVM.006Non-visual properties not time-varyingRoadmap — pipeline
CodeRequirementCoverage
SL.001All geometry prims semantically labeledRoadmap — pipeline
SL.003Semantic labels use SemanticsLabelsAPI schemaRoadmap — pipeline
SL.NV.002Semantic label attributes have no time samplesRoadmap — pipeline
SL.QCODE.001Wikidata Q-codes valid and retrievableRoadmap — pipeline
CodeRequirementCoverage
RB.001Asset contains at least one rigid bodyEnforced
RB.003Rigid bodies are UsdGeomXformable primsEnforced
RB.005Rigid bodies not part of scene graph instancesEnforced
RB.006No nested rigid bodies without xformOp stack resetEnforced
RB.007Rigid body or collision children have mass specifiedEnforced
RB.008Detailed mass properties (CoM, inertia tensor)Enforced
RB.009Rigid body transform has no skew matrixEnforced
RB.010Invisible collision meshes have purpose = 'guide'Enforced
RB.011Nested rigid bodies have explicit mass or non-zero collision volumeRoadmap — articulated / robot (no nested bodies in single-body props)
RB.012No nested rigid bodies without connecting jointRoadmap — articulated / robot (no nested bodies in single-body props)
RB.COL.001CollisionAPI applied to geometry primsEnforced
RB.COL.002MeshCollisionAPI on Mesh prims with CollisionAPIEnforced
RB.COL.003MeshCollisionAPI only on UsdGeomMesh primsEnforced
RB.COL.004Uniform collision scale for Sphere/Capsule/Cylinder/ConeEnforced
RB.MB.001Asset contains at least two rigid bodies (multi-body)Roadmap — articulated / robot
CodeRequirementCoverage
JT.001Non-free-floating rigid bodies connected via jointsRoadmap — articulated / robot
JT.002Joint Body0/Body1 targets existRoadmap — articulated / robot
JT.003Joint Body0/Body1 have at most one target eachRoadmap — articulated / robot
JT.ART.001Kinematic chains define an articulationRoadmap — articulated / robot
JT.ART.002Articulation roots not nestedRoadmap — articulated / robot
JT.ART.003Articulations not on kinematic bodiesRoadmap — articulated / robot
JT.ART.004Articulations not on static (disabled) bodiesRoadmap — articulated / robot
CodeRequirementCoverage
DJ.001Driven joint has correct drive config and joint stateRoadmap — articulated / robot
DJ.002Driven joints implement joint state APIRoadmap — articulated / robot
DJ.003Driven joints maintain correct transform and stateRoadmap — articulated / robot
DJ.004Driven joints implement drive or mimic APIRoadmap — articulated / robot
DJ.005Driven joints have max velocity limitsRoadmap — articulated / robot
DJ.006Drive joint parameters within reasonable rangesRoadmap — articulated / robot
DJ.007Mimic API config valid for coordinated motionRoadmap — articulated / robot
DJ.008Robot schema joints exist and definedRoadmap — articulated / robot
DJ.009Robot schema links exist and connectedRoadmap — articulated / robot
DJ.010Robot joint/link relationships validRoadmap — articulated / robot
DJ.011No articulation loopsRoadmap — articulated / robot
CodeRequirementCoverage
BA.001Articulated assets have exactly one ArticulationRootAPIRoadmap — articulated / robot
BA.002Non-adjacent collision meshes don’t clash at default poseRoadmap — articulated / robot

Physics — colliders & PhysX (COL, PHYSX)

Section titled “Physics — colliders & PhysX (COL, PHYSX)”
CodeRequirementCoverage
COL.001SDF collision approximationRuntime / advisory — PhysX-specific, validated at runtime in Isaac Sim
PHYSX.COL.001CollisionAPI on Gprim or Xform with PhysxMeshMergeCollisionAPIRuntime / advisory — PhysX-specific
PHYSX.COL.002PhysX collider mesh validationRuntime / advisory — PhysX-specific
CodeRequirementCoverage
PMT.001Physics material with friction and restitutionEnforced
GSP.001Grasp simulation propertiesRoadmap — pipeline
CodeRequirementCoverage
ISA.001Isaac Sim composition requirementsRuntime / advisory — validated at runtime in Isaac Sim
CodeRequirementCoverage
RM.001No nested materials in robot assetsRoadmap — articulated / robot
RM.002Materials on top-level only in robot assetsRoadmap — articulated / robot
CodeRequirementCoverage
RC.001Robot asset folder contains only referenced filesRoadmap — articulated / robot
RC.002No local override layers masking upstream schemasRoadmap — articulated / robot
RC.003Robot and prim naming conventionsRoadmap — articulated / robot
RC.004Robot asset has representative thumbnailRoadmap — articulated / robot
RC.005Physics attributes authored in physics layerRoadmap — articulated / robot
RC.006Robot physics schema correctly authoredRoadmap — articulated / robot
RC.007Robot USDs declare required schemasRoadmap — articulated / robot
RC.008Robot USDs declare robot typeRoadmap — articulated / robot
RC.009Root joint pinned per robot typeRoadmap — articulated / robot