Skip to main content

Differetiable Simulators

Overview

  • DiffSim: a scalable C++ framework for differentiable physics that can support a large number of rigid and deformable objects and their interactions.
  • FluidLab: a fully differentiable and multi-material physics simulation platform, supporting rigid, elastic, plastic materials, inviscid and viscous liquid, and gaseous phenomena such as smoke.
  • PlasticineLab: a differentiable soft-body manipulation simulator and benchmark.
  • DiffArticulated: a differentiable simulation system for articulated rigid bodies.
  • DiSECt: a differentiable simulation engine for autonomous robotic cutting.
  • ThinShellLab: a differentiable simulator for manipulating thin-shell materials, such as cloths and papers.
  • DaxBench: a deformable object manipulation benchmark with differentiable physics.
  • NimblePhysics: a general purpose differentiable physics engine for articulated rigid bodies.
  • MuJoCo XLA(MJX): a re-implementation of the MuJoCo physics engine in JAX, which is differentiable.
  • SoftMAC: a differentiable soft body simulation with forecast-based contact model, coupling with articulated rigid bodies and clothes.

DiffSim

DiffSim is a scalable C++ framework for differentiable physics that can support a large number of rigid and deformable objects and their interactions.

Details

DiffSim: Scalable Differentiable Physics for Learning and Control
  

DiffSim is a scalable framework for differentiable physics that can support a large number of objects and their interactions. It adopts meshes as its representation and leverage the sparsity of contacts for scalable differentiable collision handling. Collisions are resolved in localized regions to minimize the number of optimization variables even when the number of simulated objects is high. It further accelerates implicit differentiation of optimization with nonlinear constraints. DiffSim requires up to two orders of magnitude less memory and computation in comparison to contemporary particle-based methods.

FluidLab

FluidLab and FluidEngine is a fully differentiable and multi-material physics simulation platform, supporting rigid, elastic, plastic materials, inviscid and viscous liquid, and gaseous phenomena such as smoke.

Details

FluidLab: A Differentiable Environment for Benchmarking Complex Fluid Manipulation
  

FluidLab is a simulation environment with a diverse set of manipulation tasks involving complex fluid dynamics. These tasks address interactions between solid and fluid as well as among multiple fluids. FluidLab is powered by its underlying physics engine, FluidEngine, providing GPU-accelerated simulations and gradient calculations for various material types and their couplings, extending the scope of the existing differentiable simulation engines.

PlasticineLab

PlasticineLab is a differentiable soft-body manipulation simulator and benchmark.

Details

PlasticineLab: A Soft-Body Manipulation Benchmark with Differentiable Physics
  

PlasticineLab is a differentiable physics benchmark including a diverse collection of soft body manipulation tasks. In each task, the agent uses manipulators to deform the plasticine into a desired configuration. The underlying physics engine supports differentiable elastic and plastic deformation using the DiffTaichi system, posing many underexplored challenges to robotic agents. We evaluate several existing RL methods and gradient-based methods on this benchmark.

DiffArticulated

DiffArticulated is a differentiable simulation system for articulated rigid bodies.

Details

DiffArticulated: Efficient Differentiable Simulation of Articulated Bodies
  

DiffArticulated is a method for efficient differentiable simulation of articulated bodies. This enables integration of articulated body dynamics into deep learning frameworks, and gradient-based optimization of neural networks that operate on articulated bodies. The gradients of the contact solver are derived using spatial algebra and the adjoint method, resulting in simulation speed that's an order of magnitude faster than autodiff tools.

DiSECt

DiSECt is a differentiable simulation engine for autonomous robotic cutting.

Details

DiSECt
  

DiSECt is a simulator for the cutting of deformable materials. It uses the Finite Element Method (FEM) to simulate the deformation of the material, and leverages a virtual node algorithm to introduce springs between the two halves of the mesh being cut. These cutting springs are weakened in proportion to the knife forces acting on the material, yielding a continuous model of deformation and crack propagation. By leveraging source code transformation, the back-end of DiSECt automatically generates CUDA-accelerated kernels for the forward simulation and the gradients of the simulation inputs. Such gradient information can be used to optimize the simulation parameters to achieve accurate knife force predictions, optimize cutting actions, and more.

ThinShellLab

ThinShellLab is a differentiable simulator for manipulating thin-shell materials, such as cloths and papers.

Details

ThinShellLab: Thin-shell Object Manipulations with Differentiable Physics Simulations
  

ThinShellLab is a fully differentiable simulation platform tailored for robotic interactions with diverse thin-shell materials possessing varying material properties, enabling flexible thin-shell manipulation skill learning and evaluation. This comprehensive endeavor encompasses a triad of experiment task categories, which are as follows: manipulation tasks, inverse design tasks, and real-world experiments.

DaxBench

DaxBench is a deformable object manipulation benchmark with differentiable physics.

Details

DaxBench: Benchmarking Deformable Object Manipulation with Differentiable Physics
  

DaXBench is a differentiable simulation framework for deformable object manipulation. While existing work often focuses on a specific type of deformable objects, DaXBench supports fluid, rope, cloth, etc ; it provides a general-purpose benchmark to evaluate widely different DOM methods, including planning, imitation learning, and reinforcement learning. DaXBench combines recent advances in deformable object simulation with JAX, a high-performance computational framework. All DOM tasks in DaXBench are wrapped with the OpenAI Gym API for easy integration with DOM algorithms.

NimblePhysics

NimbelPhysics is a general purpose differentiable physics engine for articulated rigid bodies.

Details

NimblePhysics
  

Nimble is a toolkit for doing AI on human biomechanics (physically simulated realistic human bodies), written in C++ for speed, but with nice Python bindings. It focuses on studying real physical human bodies. Nimble started life as a general purpose differentiable physics engine, as a fork of the (not differentiable) DART physics engine.

MJX

MuJoCo XLA(MJX) is a re-implementation of the MuJoCo physics engine in JAX.

Details

MuJoCo XLA(MJX)
 

Starting with version 3.0.0, MuJoCo includes MuJoCo XLA (MJX) under the mjx directory. MJX allows MuJoCo to run on compute hardware supported by the XLA compiler via the JAX framework. MJX runs on a all platforms supported by JAX: Nvidia and AMD GPUs, Apple Silicon, and Google Cloud TPUs. The MJX API is consistent with the main simulation functions in the MuJoCo API.

SoftMac

SoftMac is a differentiable soft body simulation with forecast-based contact model, coupling with articulated rigid bodies and clothes.

Details

SoftMac
  

SoftMAC, a differentiable simulation framework coupling soft bodies with articulated rigid bodies and clothes. SoftMAC simulates soft bodies with the continuum-mechanics-based Material Point Method (MPM).