Use native OVPhysX collision isolation on CUDA - #6948
Conversation
OVPhysX assigns native environment IDs during GPU replication, so manually authoring USD collision groups is redundant. Keep explicit collision filtering for the Isaac Sim PhysX replication path and cover both backends with a Cartpole actuation regression.
Greptile SummaryThe PR narrows explicit USD collision filtering in manually cloned direct environments to the Isaac Sim PhysX manager, allowing OVPhysX to retain native environment-ID isolation.
Confidence Score: 5/5The PR appears safe to merge with no actionable correctness, security, or quality issues identified. The exact backend identifier matches the Isaac Sim PhysX manager contract, excludes OVPhysX as intended, and the added regression validates both backend-specific collision state and consistent actuation. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Manually clone environments] --> B{physics_backend}
B -->|physxmanager| C[Author explicit USD collision groups]
B -->|ovphysxmanager| D[Use native environment-ID isolation]
C --> E[Run direct environment]
D --> E
Reviews (1): Last reviewed commit: "Merge branch 'develop' into kellyg/limit..." | Re-trigger Greptile |
There was a problem hiding this comment.
Isaac Lab Review Bot
The PR consistently narrows explicit collision filtering at all 12 manually cloned direct-workflow call sites from a broad PhysX substring match to the exact Isaac Sim PhysX manager identifier, while adding the required changelog fragment and a backend-isolated Cartpole regression.
- Design and architecture: The backend-specific guard remains at the existing manual-cloning boundaries, preserving explicit filtering for
physxmanagerwhile allowing OVPhysX to use native environment-ID isolation. Repeating the backend literal across 12 sites remains a non-blocking maintenance tradeoff if the identifier changes later. - API: No public signatures, configuration fields, exports, defaults, or registrations change. Existing
filter_collisionsarguments remain intact, and the touchedisaaclab_taskspackage has the required patch changelog fragment. - Implementation: The 12 call-site replacements are consistent. The regression checks both producer paths by asserting backend-specific
/World/collisionspresence and consistent constant-effort Cartpole velocities in isolated simulator processes. Its fixedcuda:0requirement without an explicit GPU marker is a residual CI portability risk, but no numbered actionable finding was supplied for acceptance.
No blocking issues. No inline issue met the actionable-evidence threshold; the assessment above records the review feedback.
Automated review; human maintainers own approval decisions.
OvPhysX environment-ID isolation requires GPU dynamics and GPU broadphase. Keep USD collision filtering on CPU and native isolation on CUDA. Cover each PhysX backend/device pair with the Cartpole regression test.
Description
Use explicit USD collision groups in manually cloned direct-workflow environments only when native environment-ID isolation is unavailable:
useEnvIds=False.Isaac Lab's managed OVPhysX configuration enables GPU dynamics and GPU broadphase on CUDA. Its public
OvPhysxCfgdoes not exposeuseEnvIds, so registered tasks cannot disable that isolation through their preset configuration.This change:
InteractiveScenefiltering unchanged as the shared fallback;This follows up on #6855 and commit 05f68ac.
Type of change
Screenshots
Not applicable.
Validation
isaacsim_physxandovphysx, each on CPU and CUDA)./World/collisionsgroups are authored while native environment IDs are disabled./World/collisionsgroups are authored.uv run --no-sync isaaclab -fupstream/developChecklist
CONTRIBUTORS.md.