Skip to content

[Proposal] Add Newton deformable object API with coupled rigid-deformable simulation #5285

Description

@xiangdonglai

Add Newton deformable object API with coupled rigid-deformable simulation

Summary

Add first-class deformable object support to Isaac Lab's Newton physics backend, enabling cloth and volumetric soft-body simulation alongside rigid-body articulations with one-way and two-way coupling.

Motivation

Isaac Lab currently supports deformable objects only through the PhysX backend. The Newton backend offers access to the VBD (Vertex Block Descent) solver for cloth and soft bodies, which is important for manipulation tasks involving deformable objects (e.g., cloth folding, pick-and-place of soft items). This change bridges that gap by introducing a DeformableObject asset type for Newton and the plumbing needed to visualize, replicate, and couple deformable bodies with rigid articulations.

Build Info

  • Isaac Lab Version: 3.0.0
  • Isaac Sim Version: 6.0.0

Changes

Core API (isaaclab)

  • New BaseDeformableObject abstract base class and DeformableObjectCfg providing a backend-agnostic interface for deformable assets (particle positions, velocities, kinematic targets, nodal forces)
  • New mesh spawner functions and USD mesh loading utilities for deformable geometry

Newton backend (isaaclab_newton)

  • DeformableObject: registers particles with Newton's model builder, handles multi-env cloning via newton_replicate, exposes read/write APIs for particle_q, particle_qd, and kinematic constraints
  • CoupledSolver: alternates a rigid-body solver (Featherstone or MuJoCo) and VBD per substep, supporting both one-way and two-way coupling with normal + Coulomb friction forces
  • NewtonManager extensions: deformable body registry, Fabric particle sync (sync_particles_to_usd via wp.fabricarrayarray), deferred dirty-flag pattern (_mark_transforms_dirty / _mark_particles_dirty), geometry streaming fix for Kit viewport flicker
  • NewtonManagerCfg additions: VBD solver configuration, coupled solver settings

Checklist

  • I have checked that there is no similar issue in the repo (required)

Acceptance Criteria

TBD

With contribution from @AnkaChan @mmichelis @moennen @xiangdonglai

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions