Learning to simulate complex physics

with graph networks

Alvaro Sanchez-Gonzalez*, Jonathan Godwin*, Tobias Pfaff*, Rex Ying*,

Jure Leskovec, Peter Battaglia

teaser_3.mp4

All experiments

water_3d.mp4

Water-3D

  • 14k particles

  • 800 steps

  • ground truth simulator: SPH

sand_3d.mp4

Sand-3D

  • 19k particles

  • 400 steps

  • ground truth simulator: MPM

goop_3d.mp4

Goop-3D

  • 15k particles

  • 300 steps

  • ground truth simulator: MPM

water_3d_s.mp4

Water-3D-S

  • 6k particles

  • 800 steps

  • ground truth simulator: SPH

water.mp4

Water

  • 2k particles

  • 1000 steps

  • ground truth simulator: MPM

sand.mp4

Sand

  • 2k particles

  • 320 steps

  • ground truth simulator: MPM

goop.mp4

Goop

  • 2k particles

  • 400 steps

  • ground truth simulator: MPM

water_drop.mp4

WaterDrop

  • 2k particles

  • 1000 steps

  • ground truth simulator: MPM

water_drop_xl.mp4

WaterDrop-XL

  • 8k particles

  • 1000 steps

  • ground truth simulator: MPM

randomfloor.mp4

RandomFloor

  • 3.5k particles

  • 600 steps

  • ground truth simulator: MPM

sandramps.mp4

SandRamps

  • 3.5k particles

  • 400 steps

  • ground truth simulator: MPM

waterramps.mp4

WaterRamps

  • 2.5k particles

  • 600 steps

  • ground truth simulator: MPM

fluidshake.mp4

FluidShake

  • 1.4k particles

  • 2000 steps

  • ground truth simulator: MPM

boxbath.mp4

BoxBath

  • 1k particles

  • 150 steps

  • ground truth simulator: PBD

multi.mp4

MultiMaterial

  • 2k particles

  • 1000 steps

  • ground truth simulator: MPM

continuous.mp4

Continuous

  • 5k particles

  • 400 steps

  • ground truth simulator: MPM

  • trained on: friction angle range [0, 30], [55-80]

  • inference: friction angle range [0, 90]

Generalization Experiments

watervortex.mp4

WaterVortex

Generalization Experiment

trained on WaterRamps (2.5k particles, 600 steps)

inference: 2x2 domain, 28k particles, 2500 steps


gen_ramps_small.mp4

Ramps-Small

Generalization Experiment

trained on WaterRamps (2.5k particles, 600 steps)

inference: 2x2 domain, 5k particles, 2000 steps

gen_ramps_large.mp4

Ramps-Large

Generalization Experiment

trained on WaterRamps (2.5k particles, 600 steps)

inference: 8x4 domain, 85k particles, 5000 steps

gen_ramps_sand.mp4

Hourglass

Generalization Experiment

trained on SandRamps (3.5k particles, 400 steps)

inference: 1x2 domain, 3.5k particles, 2000 steps

gen_multi.mp4

MultiHippo

Generalization Experiment

trained on MultiMaterial (2k particles, 1000 steps)

inference: 1x1 domain, 4.5k particles, 2000 steps

Comparisons & Analysis

boxbath_dpi.mp4

Baseline Comparison: DPI

  • BoxBath domain

While DPI uses hard-coded constraints to keep the box shape consistent, our model achieves this without any special treatment of the solid particles.

cconv_all.mp4

Baseline Comparison: CConv

Comparison in the following domains:

  • Water-3D-S (SPH)

  • BoxBath (PBD)

  • Sand, Water, Goop, MultiMaterial (MPM)

fail.mp4

Examples of failure cases

Above videos are indicative for our model's average performance. However, in our comprehensive experiments we have also found some interesting examples of failure cases:

  • Over very long rollouts, solids may become deformed

  • Some model seeds learn to predict large pieces of goop sticking to the wall instead of sliding down

See supplementary material for additional discussion.