Differentiable Physics Engines

A differentiable physics engine computes gradients of physical simulation outputs with respect to inputs, parameters, or control signals. Instead of treating simulation as a...

Differentiable Physics Engines

A differentiable physics engine computes gradients of physical simulation outputs with respect to inputs, parameters, or control signals. Instead of treating simulation as a terminal forward process, the simulator becomes part of the computational graph.

The system computes:

$$ x_{t+1} = f(x_t, u_t, \theta) $$

where:

Symbol Meaning
$x_t$ System state
$u_t$ Control input
$\theta$ Physical parameters
$f$ Physics transition operator

A loss over trajectories:

$$ L(x_0, x_1, \ldots, x_T) $$

can then be differentiated with respect to:

  • initial conditions
  • controller parameters
  • forces
  • geometry
  • masses
  • friction coefficients
  • material constants

Automatic differentiation propagates gradients backward through the simulation itself.

Physics Simulation as Computation

A classical simulator performs:

initial state
  -> timestep integration
  -> collision handling
  -> constraint solving
  -> next state

repeated over time.

A differentiable simulator augments this with backward propagation:

loss
  -> adjoint propagation
  -> gradients of states and parameters

The simulation becomes an optimization-compatible dynamical system.

Why Differentiable Physics Matters

Many real problems require optimizing physical behavior rather than merely simulating it.

Examples include:

Problem Optimization Target
Robotics Control policy
Animation Motion trajectories
Material design Elastic parameters
Inverse mechanics Hidden forces
System identification Physical constants
Reinforcement learning Long-term reward
Scientific inference Unknown governing parameters
Trajectory optimization Minimal energy or time

Without differentiability, optimization requires black-box search or reinforcement methods with weak gradient signals.

Differentiable simulation provides direct sensitivity information.

Dynamical Systems

A continuous dynamical system is:

$$ \frac{dx}{dt} = g(x, u, \theta) $$

Numerical integration produces discrete updates:

$$ x_{t+1} = x_t + \Delta t \cdot g(x_t, u_t, \theta) $$

for explicit Euler integration.

Automatic differentiation computes:

$$ \frac{\partial L}{\partial \theta} $$

through all timesteps.

This is structurally similar to recurrent neural networks and backpropagation through time.

Simulation Rollout

A rollout is:

$$ x_0 \rightarrow x_1 \rightarrow x_2 \rightarrow \cdots \rightarrow x_T $$

The total loss may be:

$$ L = \sum_{t=0}^{T} \ell(x_t, u_t) $$

Reverse mode computes adjoints backward:

$$ \lambda_t = \frac{\partial L}{\partial x_t} $$

using:

$$ \lambda_t = \lambda_{t+1} \frac{\partial x_{t+1}}{\partial x_t} + \frac{\partial \ell_t}{\partial x_t} $$

This propagates future consequences backward through physical evolution.

Example: Projectile Optimization

Suppose a projectile state is:

$$ x_t = (p_t, v_t) $$

with updates:

$$ p_{t+1} = p_t + \Delta t , v_t $$

$$ v_{t+1} = v_t + \Delta t , g $$

A target loss:

$$ L = |p_T - p^\star|^2 $$

can be differentiated with respect to initial velocity:

$$ \frac{\partial L}{\partial v_0} $$

allowing gradient-based optimization of launch conditions.

System Identification

A differentiable simulator can infer unknown physical parameters.

Suppose:

$$ x_{t+1} = f(x_t; \theta) $$

and observations are:

$$ y_t $$

The objective:

$$ L = \sum_t |x_t(\theta) - y_t|^2 $$

optimizes:

  • mass
  • damping
  • stiffness
  • drag
  • friction
  • elasticity

This is inverse physics.

Rigid Body Simulation

Rigid body systems evolve according to:

$$ M(q)\ddot{q} + C(q,\dot{q}) + G(q) = \tau $$

where:

Symbol Meaning
$q$ Generalized coordinates
$M$ Mass matrix
$C$ Coriolis and centrifugal forces
$G$ Gravity
$\tau$ Applied forces

Differentiable rigid body simulation computes gradients through:

  • forward dynamics
  • integration
  • constraint resolution
  • contact forces

This enables optimization of robot motion and control.

Contact and Collision

Collision handling is one of the hardest parts of differentiable physics.

Classical contact is discontinuous:

if penetration:
    apply impulse

Tiny perturbations may abruptly create or remove contacts.

This causes unstable gradients.

Approaches include:

Method Strategy
Soft contact Smooth penetration forces
Penalty methods Continuous force approximation
Implicit differentiation Differentiate solver equilibrium
Relaxed collision models Approximate contact manifolds
Event-aware gradients Handle discontinuities explicitly

Contact dynamics remain a major research problem.

Soft Body Simulation

Soft materials deform continuously.

A deformation field:

$$ u(x) $$

describes displacement.

Energy-based models often define:

$$ E(u; \theta) $$

The dynamics minimize or evolve according to this energy.

Differentiable soft body simulation computes gradients through:

  • elastic deformation
  • stress computation
  • finite element assembly
  • constitutive models

Applications include:

  • cloth simulation
  • biological tissue
  • deformable robotics
  • material optimization

Fluid Simulation

Fluid systems satisfy equations such as Navier-Stokes:

$$ \frac{\partial v}{\partial t} + (v \cdot \nabla)v = -\nabla p + \nu \nabla^2 v + f $$

Differentiable fluid simulation computes sensitivities of flow behavior.

This supports:

Application Goal
Aerodynamic optimization Minimize drag
Flow control Stabilize turbulence
Weather inference Estimate hidden parameters
Shape optimization Improve flow geometry
Scientific calibration Match observations

Large-scale fluid differentiation is computationally expensive because state dimensionality is enormous.

Differentiable Constraints

Many simulators solve constrained systems:

$$ g(x) = 0 $$

Examples:

  • joints
  • incompressibility
  • nonpenetration
  • conservation laws

Constraint solvers may involve iterative optimization.

Differentiation through solvers can occur via:

Method Idea
Unrolled differentiation Differentiate every iteration
Implicit differentiation Differentiate equilibrium conditions
Custom adjoints Manually derived backward rules

Implicit differentiation is often more memory efficient.

Implicit Differentiation

Suppose the simulator solves:

$$ F(x^\star, \theta) = 0 $$

Differentiating gives:

$$ \frac{\partial F}{\partial x} \frac{dx^\star}{d\theta} + \frac{\partial F}{\partial \theta} = 0 $$

Therefore:

$$ \frac{dx^\star}{d\theta} = - \left( \frac{\partial F}{\partial x} \right)^{-1} \frac{\partial F}{\partial \theta} $$

This avoids storing all iterative solver states.

Differentiable Controllers

A controller may generate forces:

$$ u_t = \pi(x_t; \phi) $$

where $\phi$ are policy parameters.

The simulator defines dynamics:

$$ x_{t+1} = f(x_t, u_t) $$

The full system becomes:

state
  -> controller
  -> forces
  -> physics
  -> next state

Gradients flow through both controller and physics.

This enables trajectory optimization and model-based reinforcement learning.

Model Predictive Control

Differentiable simulation is central in model predictive control.

The controller solves:

$$ \min_{u_{0:T}} \sum_t \ell(x_t, u_t) $$

subject to dynamics:

$$ x_{t+1} = f(x_t, u_t) $$

Differentiability allows efficient optimization of control sequences using gradient methods.

Differentiable Robotics

Modern robotics pipelines increasingly combine:

policy network
  -> physics simulator
  -> trajectory
  -> reward loss

Gradients may optimize:

  • motor torques
  • gait parameters
  • grasp trajectories
  • balance policies
  • actuator calibration

Differentiable simulation often improves sample efficiency relative to black-box reinforcement learning.

Learned Physics

Some systems replace analytic physics with learned approximations:

$$ x_{t+1} = f_\theta(x_t, u_t) $$

The learned model may represent:

  • fluid dynamics
  • rigid body interactions
  • cloth deformation
  • contact dynamics

These systems trade exact physical guarantees for differentiability and efficiency.

Hybrid systems are common:

analytic physics
  + learned residual model

Adjoint Methods

Large scientific simulators often use adjoint methods instead of general-purpose AD.

An adjoint system propagates sensitivities backward through time:

$$ \lambda_t = \left( \frac{\partial f}{\partial x_t} \right)^T \lambda_{t+1} + \frac{\partial \ell_t}{\partial x_t} $$

Adjoint methods are mathematically equivalent to reverse-mode differentiation but optimized for PDE-scale computation.

Numerical Stability

Differentiating long simulations introduces instability.

Common problems include:

Problem Cause
Exploding gradients Chaotic dynamics
Vanishing gradients Dissipative systems
Contact instability Discontinuous forces
Integrator sensitivity Numerical discretization
Solver divergence Ill-conditioned constraints
Floating point drift Long trajectory accumulation

Chaotic systems may have gradients that become meaningless over long horizons.

Memory Complexity

Reverse-mode differentiation stores intermediate states:

$$ x_0, x_1, \ldots, x_T $$

Large simulations may require terabytes of memory.

Techniques include:

Method Purpose
Checkpointing Recompute states during backward pass
Reversible integration Recover earlier states
Implicit adjoints Avoid full storage
Truncated gradients Limit backward horizon
Mixed precision Reduce memory cost

Memory management is often the dominant systems problem.

Parallel and GPU Simulation

Differentiable simulators increasingly target GPUs.

Challenges include:

  • parallel contact handling
  • differentiable sparse solvers
  • dynamic topology
  • irregular memory access
  • synchronization costs

Modern simulators integrate tightly with tensor runtimes such as CUDA-based computation graphs.

Hybrid Symbolic-Continuous Systems

Practical physics engines often combine:

Component Type
Collision detection Symbolic
Constraint graph Symbolic
Dynamics integration Numerical
Material models Continuous
Controllers Learned
Contact relaxation Approximate differentiable

Fully smooth physics engines are rare. Most systems selectively introduce differentiability where optimization benefits justify the complexity.

Failure Modes

Differentiable simulators fail in recognizable ways.

Failure Cause
Contact explosions Unstable collision gradients
Energy drift Integration error
Unrealistic optimization Exploiting simulator artifacts
Gradient chaos Sensitive dynamics
Solver nonconvergence Ill-conditioned systems
Soft-contact artifacts Unrealistic penetration
Overfitting to simulator Reality gap

Optimization can exploit weaknesses in the simulator rather than discovering physically meaningful behavior.

Systems Architecture

A differentiable physics engine typically contains:

Component Purpose
State representation Physical configuration
Integrator Time evolution
Constraint solver Physical validity
Contact system Collision response
Tensor backend GPU acceleration
Differentiation runtime Backward propagation
Adjoint solver Efficient sensitivity computation
Optimization loop Parameter updates

At scale, simulator design becomes inseparable from differentiation strategy.

Relation to Automatic Differentiation

Differentiable physics extends automatic differentiation into dynamical systems.

The simulator becomes a recurrent differentiable program:

$$ x_{t+1} = f(x_t, u_t, \theta) $$

Automatic differentiation propagates gradients through:

  • integration
  • constraints
  • forces
  • contacts
  • material response
  • control systems

The central challenge is not differentiating elementary arithmetic. The challenge is preserving meaningful gradients through long, nonlinear, often discontinuous physical evolution.

Core Idea

A differentiable physics engine transforms simulation into an optimization-compatible process. Physical trajectories become differentiable computations whose parameters can be learned, inferred, or controlled through gradient-based methods.

This allows observations, rewards, or objectives defined at the end of a simulation to shape the physical parameters and control signals that generated the trajectory.