Skip to content

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

Closed
vidurv-nvidia wants to merge 9 commits into
vidurv/schema-frag-frameworkfrom
vidurv/schema-frag-meshcollision
Closed

feat(schemas): mesh-collision schema-fragment API (additive)#9
vidurv-nvidia wants to merge 9 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

huidongc and others added 9 commits June 24, 2026 09:18
…`` (isaac-sim#6242)

# Description

Fixed the `newton[sim]` dependency pin to use Newton commit
`79e95bf5571d70a0a46c8eaedc80644531d27368`, including the
`RenderContext` triangle-mesh construction fix from
[newton-physics/newton#3199](newton-physics/newton#3199).


## Type of change

- Bug fix (non-breaking change which fixes an issue)

## Checklist

- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
Bumped packages:
- isaaclab: 7.0.5 → 7.1.0
- isaaclab_newton: 1.0.4 → 1.1.0
- isaaclab_ov: 0.4.6 → 0.5.0
- isaaclab_physx: 2.0.2 → 2.1.0
- isaaclab_tasks: 8.0.4 → 8.0.5
- isaaclab_visualizers: 1.0.1 → 1.0.2
…cartpole, dexsuite_kuka, and shadow_hand with test coverage (isaac-sim#6101)

# Description

Add distance_to_camera and distance_to_image_plane camera presets to
cartpole, dexsuite_kuka, and shadow_hand with test coverage.

## Checklist

- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
…isaac-sim#6238)

# Description

Add ISAAC_LAB_ENABLE_ISAAC_RTX_PER_ENV_SCENE_PARTITION environment
variable to opt in to authoring primvars:omni:scenePartition and
omni:scenePartition on the USD stage. Previously this was always on; now
it is off by default. This is to address an OOM in one of our IsaacSim
RTX benchmark suites related to primvar inheritance of the scene
partition attributes while the root cause/fix is under investigation.

## Testing

We have a separate issue which only visualizes env_0 in kit when scene
partitioning is enabled... so I tested with:
```bash
./isaaclab.sh train --rl_library rsl_rl \
    --task Isaac-Lift-KukaAllegro-Camera \
    presets=newton_mjwarp,isaacsim_rtx_renderer,rgb64,single_camera \
    --seed 42 \
    --num_envs 4 \
    --max_iterations 1000 \
    --visualizer kit
```
... and it shows all the envs - checked all the env Xforms and camera
and they don't have the scenePartition attribute/primvars:
<img width="3813" height="2072" alt="image"
src="https://github.com/user-attachments/assets/ea22b566-db95-498b-aa5d-445c1c2b0c8b"
/>

Conversely, tested with the environment variable enabled:
```bash
ISAAC_LAB_ENABLE_ISAAC_RTX_PER_ENV_SCENE_PARTITION=1 ./isaaclab.sh train --rl_library rsl_rl \
    --task Isaac-Lift-KukaAllegro-Camera \
    presets=newton_mjwarp,isaacsim_rtx_renderer,rgb64,single_camera \
    --seed 42 \
    --num_envs 4 \
    --max_iterations 1000 \
    --visualizer kit
```

And we get the old behavior of only env_0 showing.

@fatimaanes keen to hear if this helps mitigate the benchmark OOM you
are seeing.

## Checklist

- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] I have run the [`pre-commit` checks](https://pre-commit.com/) with
`./isaaclab.sh --format`
- [x] I have made corresponding changes to the documentation
- [x] My changes generate no new warnings
- [x] I have added tests that prove my fix is effective or that my
feature works
- [x] I have updated the changelog and the corresponding version in the
extension's `config/extension.toml` file
- [x] I have added my name to the `CONTRIBUTORS.md` or my name already
exists there
# Description

## Summary (PR 1 of 2 — additive, no behavior change)

Introduces single-namespace schema **fragments** so a prim can carry
rigid-body properties from multiple USD namespaces at once (`physics:`,
`physxRigidBody:`, `mjc:`), with core naming no backend. **Purely
additive** — existing cfgs and the deprecated `RigidBodyPropertiesCfg`
class are untouched.

- **core:** `SchemaFragment`, `RigidBodyFragment`,
`UsdPhysicsRigidBodyCfg`; `apply_namespaced` (generic per-fragment
writer) and `apply_rigid_body_properties` (applies a fragment list with
`UsdPhysics.RigidBodyAPI` as the implicit anchor).
- **spawner:** `rigid_props` accepts a fragment list; legacy single cfgs
keep working via a transition bridge
(shapes/meshes/from_files/mesh_converter).
- **backends:** `PhysxRigidBodyCfg` (physx), `MujocoRigidBodyCfg`
(newton).
- new `test_schema_fragments.py` + exports.

**PR 2** (stacked) flips `RigidBodyPropertiesCfg` to a deprecation
factory and migrates all call sites: #4 (review
after this lands).

## Test Plan
- [x] `test_schema_fragments.py` — 7 passed
- [x] pre-commit clean · `./isaaclab.sh -d` docs build clean
- [ ] CI

First slice of the staged physics schema-cfg refactor (collision / mass
/ joint-drive / … follow later). Draft for review of the fragment API
shape.


## Type of change

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

## Screenshots

N/A — no user-facing visual changes.

## Checklist

- [x] I have read and understood the [contribution
guidelines](https://isaac-sim.github.io/IsaacLab/main/source/refs/contributing.html)
- [x] 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)
- [x] My changes generate no new warnings
- [x] I have added tests that prove my feature works
- [x] I have added a changelog fragment under
`source/<pkg>/changelog.d/` for every touched package
- [ ] I have added my name to `CONTRIBUTORS.md`

---------

Co-authored-by: ooctipus <zhengyuz@nvidia.com>
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.
No behavior change; collapse over-explained inline comments to terse intent.
@vidurv-nvidia
vidurv-nvidia force-pushed the vidurv/schema-frag-meshcollision branch from 00e1a7b to 1d63747 Compare June 25, 2026 05:45
@vidurv-nvidia

Copy link
Copy Markdown
Owner Author

Superseded by the upstream cross-fork PR on isaac-sim/IsaacLab (mesh-collision framework, base develop, like isaac-sim#5976/isaac-sim#6254). Closing this fork-internal PR.

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.

3 participants