Skip to content

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...

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:

xt+1=f(xt,ut,θ) x_{t+1} = f(x_t, u_t, \theta)

where:

SymbolMeaning
xtx_tSystem state
utu_tControl input
θ\thetaPhysical parameters
ffPhysics transition operator

A loss over trajectories:

L(x0,x1,,xT) 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:

ProblemOptimization Target
RoboticsControl policy
AnimationMotion trajectories
Material designElastic parameters
Inverse mechanicsHidden forces
System identificationPhysical constants
Reinforcement learningLong-term reward
Scientific inferenceUnknown governing parameters
Trajectory optimizationMinimal 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:

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

Numerical integration produces discrete updates:

xt+1=xt+Δtg(xt,ut,θ) x_{t+1} = x_t + \Delta t \cdot g(x_t, u_t, \theta)

for explicit Euler integration.

Automatic differentiation computes:

Lθ \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:

x0x1x2xT x_0 \rightarrow x_1 \rightarrow x_2 \rightarrow \cdots \rightarrow x_T

The total loss may be:

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

Reverse mode computes adjoints backward:

λt=Lxt \lambda_t = \frac{\partial L}{\partial x_t}

using:

λt=λt+1xt+1xt+txt \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:

xt=(pt,vt) x_t = (p_t, v_t)

with updates:

pt+1=pt+Δtvt p_{t+1} = p_t + \Delta t \, v_t vt+1=vt+Δtg v_{t+1} = v_t + \Delta t \, g

A target loss:

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

can be differentiated with respect to initial velocity:

Lv0 \frac{\partial L}{\partial v_0}

allowing gradient-based optimization of launch conditions.

System Identification

A differentiable simulator can infer unknown physical parameters.

Suppose:

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

and observations are:

yt y_t

The objective:

L=txt(θ)yt2 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)q¨+C(q,q˙)+G(q)=τ M(q)\ddot{q} + C(q,\dot{q}) + G(q) = \tau

where:

SymbolMeaning
qqGeneralized coordinates
MMMass matrix
CCCoriolis and centrifugal forces
GGGravity
τ\tauApplied 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:

MethodStrategy
Soft contactSmooth penetration forces
Penalty methodsContinuous force approximation
Implicit differentiationDifferentiate solver equilibrium
Relaxed collision modelsApproximate contact manifolds
Event-aware gradientsHandle discontinuities explicitly

Contact dynamics remain a major research problem.

Soft Body Simulation

Soft materials deform continuously.

A deformation field:

u(x) u(x)

describes displacement.

Energy-based models often define:

E(u;θ) 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:

vt+(v)v=p+ν2v+f \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:

ApplicationGoal
Aerodynamic optimizationMinimize drag
Flow controlStabilize turbulence
Weather inferenceEstimate hidden parameters
Shape optimizationImprove flow geometry
Scientific calibrationMatch observations

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

Differentiable Constraints

Many simulators solve constrained systems:

g(x)=0 g(x) = 0

Examples:

  • joints
  • incompressibility
  • nonpenetration
  • conservation laws

Constraint solvers may involve iterative optimization.

Differentiation through solvers can occur via:

MethodIdea
Unrolled differentiationDifferentiate every iteration
Implicit differentiationDifferentiate equilibrium conditions
Custom adjointsManually derived backward rules

Implicit differentiation is often more memory efficient.

Implicit Differentiation

Suppose the simulator solves:

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

Differentiating gives:

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

Therefore:

dxdθ=(Fx)1Fθ \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:

ut=π(xt;ϕ) u_t = \pi(x_t; \phi)

where ϕ\phi are policy parameters.

The simulator defines dynamics:

xt+1=f(xt,ut) 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:

minu0:Tt(xt,ut) \min_{u_{0:T}} \sum_t \ell(x_t, u_t)

subject to dynamics:

xt+1=f(xt,ut) 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:

xt+1=fθ(xt,ut) 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:

λt=(fxt)Tλt+1+txt \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:

ProblemCause
Exploding gradientsChaotic dynamics
Vanishing gradientsDissipative systems
Contact instabilityDiscontinuous forces
Integrator sensitivityNumerical discretization
Solver divergenceIll-conditioned constraints
Floating point driftLong trajectory accumulation

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

Memory Complexity

Reverse-mode differentiation stores intermediate states:

x0,x1,,xT x_0, x_1, \ldots, x_T

Large simulations may require terabytes of memory.

Techniques include:

MethodPurpose
CheckpointingRecompute states during backward pass
Reversible integrationRecover earlier states
Implicit adjointsAvoid full storage
Truncated gradientsLimit backward horizon
Mixed precisionReduce 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:

ComponentType
Collision detectionSymbolic
Constraint graphSymbolic
Dynamics integrationNumerical
Material modelsContinuous
ControllersLearned
Contact relaxationApproximate 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.

FailureCause
Contact explosionsUnstable collision gradients
Energy driftIntegration error
Unrealistic optimizationExploiting simulator artifacts
Gradient chaosSensitive dynamics
Solver nonconvergenceIll-conditioned systems
Soft-contact artifactsUnrealistic penetration
Overfitting to simulatorReality gap

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

Systems Architecture

A differentiable physics engine typically contains:

ComponentPurpose
State representationPhysical configuration
IntegratorTime evolution
Constraint solverPhysical validity
Contact systemCollision response
Tensor backendGPU acceleration
Differentiation runtimeBackward propagation
Adjoint solverEfficient sensitivity computation
Optimization loopParameter 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:

xt+1=f(xt,ut,θ) 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.