Skip to content

feat(schemas): mesh-collision schema-fragment API (additive)#9

Draft
vidurv-nvidia wants to merge 5 commits into
vidurv/schema-frag-frameworkfrom
vidurv/schema-frag-meshcollision
Draft

feat(schemas): mesh-collision schema-fragment API (additive)#9
vidurv-nvidia wants to merge 5 commits into
vidurv/schema-frag-frameworkfrom
vidurv/schema-frag-meshcollision

Conversation

@vidurv-nvidia

@vidurv-nvidia vidurv-nvidia commented Jun 5, 2026

Copy link
Copy Markdown
Owner

Description

Additive mesh-collision fragment family

  • core: MeshCollisionFragment, UsdPhysicsMeshCollisionCfg (physics:approximation), apply_mesh_collision_properties (anchor MeshCollisionAPI)
  • physx cooking fragments: PhysxConvexHullCfg, PhysxConvexDecompositionCfg, PhysxTriangleMeshCfg, PhysxTriangleMeshSimplificationCfg, PhysxSDFMeshCfg
  • newton: NewtonMeshCollisionCfg, NewtonSDFCollisionCfg

⚠️ Review focus: the physics:approximation token is shared state set by whichever cooking fragment is present — handled in the family writer (uses the last non-none fragment, validates against MESH_APPROXIMATION_TOKENS). One cross-cutting change: apply_namespaced now skips the mesh_approximation_name field. Status: authored, ruff clean, sim verification pending.

Fixes # (N/A — part of the staged physics schema-fragment refactor; no tracked public issue)

Type of change

  • New feature (non-breaking change which adds functionality)

Screenshots

N/A — no user-facing visual changes.

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks (ruff + ruff-format) on the changed files
  • I have made corresponding changes to the documentation (the public API reference is auto-generated via ./isaaclab.sh -d; not separately authored)
  • My changes generate no new warnings
  • I have added tests that prove my feature works
  • I have added a changelog fragment under source/<pkg>/changelog.d/ for every touched package
  • I have added my name to CONTRIBUTORS.md

Add the additive mesh-collision schema-fragment family, mirroring the
rigid-body pilot. Core gains the MeshCollisionFragment marker, the
UsdPhysicsMeshCollisionCfg fragment carrying the physics:approximation
token, and the apply_mesh_collision_properties family writer (applies the
MeshCollisionAPI anchor, resolves and validates the approximation token
from whichever cooking fragment is present, then dispatches each fragment
via its func).

PhysX cooking fragments (PhysxConvexHullCfg, PhysxConvexDecompositionCfg,
PhysxTriangleMeshCfg, PhysxTriangleMeshSimplificationCfg, PhysxSDFMeshCfg)
and Newton cooking fragments (NewtonMeshCollisionCfg, NewtonSDFCollisionCfg)
each own a single namespace and applied schema, dispatched through the
generic apply_namespaced applier.

Widen the MeshConverterCfg.mesh_collision_props slot to accept a fragment
list and add the transition bridge in mesh_converter.py without breaking
the legacy single-cfg path. Legacy cfgs and modify_mesh_collision_properties
stay intact.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant