Unable to grasp a PhysX deformable body using an articulation-based gripper

Important: Isaac Sim support

Note: For Isaac Sim support, the community is gradually transitioning from this forum to the Isaac Sim GitHub repository so that questions and issues can be tracked, searched, and resolved more efficiently in one place. Whenever possible, please create a GitHub Discussion or Issue there instead of starting a new forum topic.

Note: For any Isaac Lab topics, please submit your topic to its GitHub repo ( GitHub - isaac-sim/IsaacLab: Unified framework for robot learning built on NVIDIA Isaac Sim · GitHub ) following the instructions provided on Isaac Lab’s Contributing Guidelines ( Contribution Guidelines — Isaac Lab Documentation ).

Please provide all relevant details below before submitting your post. This will help the community provide more accurate and timely assistance. After submitting, you can check the appropriate boxes. Remember, you can always edit your post later to include additional information if needed.

6.0.0
5.1.0
5.0.0
4.5.0
4.2.0
4.1.0
4.0.0
4.5.0
2023.1.1
2023.1.0-hotfix.1
Other (please specify):

Operating System

Ubuntu 24.04
Ubuntu 22.04
Ubuntu 20.04
Windows 11
Windows 10
Other (please specify):

GPU Information

  • Model: NVIDIA GeForce RTX 5050 Laptop GPU
  • Driver Version:

Topic Description

Detailed Description

I am trying to simulate a parallel jaw gripper picking up a soft/deformable object. The gripper is attached to a 6-DOF robot arm as part of a single articulation. The object is implemented as a PhysX deformable body, cooked via the Isaac Sim UI (Add → Physics → Deformable Body).

Expected: When the gripper jaw closes onto the deformable object, contact forces are generated the jaw stops at the surface and the deformable object responds.

Actually Happened: The jaw passes straight through the deformable object with no contact response whatsoever. The deformable body behaves correctly in all other respects it falls under gravity, lands on surfaces, and deforms visibly when a separate non-articulation rigid body is placed on top of it. The issue is specific to contact between an articulation link and the deformable body.

Steps to Reproduce

  1. Create a new stage with a PhysicsScene (TGS solver, 120 Hz, 4 substeps, CPU dynamics, MBP broadphase).

  2. Add a 6-DOF robot arm with an ArticulationRoot. Lock all joints with angular drives (stiffness=1e8, damping=1e5). Attach a parallel jaw gripper to the end effector via a FixedJoint the gripper extends the articulation chain.

  3. Create a simple mesh prim . Apply PhysxDeformableBodyAPI via the UI. Apply PhysxDeformableBodyMaterialAPI

  4. Press Play. Confirm the deformable body falls under gravity and deforms correctly when a plain rigid box is placed on it.

  5. Now command the gripper jaw to close onto the deformable object (PrismaticJoint drive target = -0.15m).

  6. Observe: the jaw passes through the deformable object. No contact forces are generated.

Error Messages

No error messages are thrown for the contact failure itself the jaw simply passes through silently. The deformable body continues to simulate normally.

Additional Information

What I’ve Tried

  • Minimal scene confirmation: Verified the deformable body is working correctly in isolation. A plain rigid body (non-articulation) placed on the deformable object compresses it visibly. The contact issue is specific to articulation links.

  • Rigid body baseline: The same gripper successfully contacts and holds a rigid body object in a clean scene. The problem is isolated to the deformable body case.

Hi, Can you try to enable GPU dynamics in your PhysicsScene setup? Some deformable features may not work on CPU.

I enabled GPU dynamics and set broadphase to GPU. All collision meshes in the scene are already set to convexHull or convexDecomposition and the deformable body is cooked via the Isaac Sim UI
The error:
PhysX error: Non-GPU-compatible convex mesh is not able
to collide with deformable volume tetrahedron mesh.
FILE: PxgNphaseImplementationContext.cpp, LINE 1274

GPU Dynamics: ON Broadphase: GPU Solver: TGS All gripper/robot meshes: convexHull or convexDecomposition Deformable body: parametric torus, 1470 tetrahedra, cooked internally by Isaac Sim UI

Is there a known incompatibility between articulation links and deformable body tetrahedron meshes in Isaac Sim 5.1.0 even with GPU dynamics enabled? Or is there a specific API or scene flag required to enable this contact pair that we are missing?

Hi, The error you’re now seeing explains the remaining issue:

PhysX error: Non-GPU-compatible convex mesh is not able to collide with deformable volume tetrahedron mesh.

This means the convex collision meshes on your gripper’s articulation links were not cooked as GPU-compatible. On the GPU pipeline, PhysX requires all collision shapes that interact with deformable tetrahedron meshes to use GPU-compatible convex hulls.

To fix the error, for each collision mesh on your gripper’s articulation links:

  1. Select the collision mesh prim in the Stage view.
  2. In the Property panel, find the PhysxCollisionAPI (or physxCollision) properties.
  3. Look for the Contact Offset and collision approximation settings. Critically, ensure the collision mesh approximation is set to convexHull (not convexDecomposition — decomposed hulls can produce non-GPU-compatible pieces in some cases).
  4. Re-cook the collision mesh by removing and re-adding the collision approximation. When GPU dynamics is enabled in the scene, Isaac Sim should cook GPU-compatible convex hulls automatically. You can verify this by checking the console output for the cooking logs.