Research map / Probabilistic and scientific modeling / Differential equations and PDEs
$\bf{\Phi}_\textrm{Flow}$: Differentiable Simulations for PyTorch, TensorFlow and Jax
Read the paperCheck your idea against 108,967 papers
AI-extracted summary. Written by AI from the paper's full text. Numbers and claims can be wrong or missing context, so check the paper before you cite or build on it.
Presents ΦFlow, an open-source Python toolkit for writing differentiable simulations that runs on PyTorch, TensorFlow, Jax and NumPy, with differential operators, boundary conditions, differentiable sparse solvers, and automatic matrix tracing.
Problem
Writing differentiable physics simulations is hard to combine with ML frameworks; existing tools are either specialized, tied to one framework, or use different programming paradigms, leading to low-level, non-reusable simulation code.
Approach
A framework-agnostic abstraction layer (ΦML) lets simulation building blocks (grids, boundary conditions, differential operators, differentiable linear solvers, batch dimensions, dimensionality-agnostic code, precision management, function-tracing matrix generation, SciPy optimizer integration, single-call plotting) run on any of several ML backends while remaining differentiable.
Key results
- Replicated billiards experiment in 29 lines of computation plus 2 plotting lines versus 79+41 lines in the original implementation.
- Wave propagation example implemented in 14 lines versus 165 lines in the original warp implementation.
- PIV experiment shows velocity MSE decreasing by about one order of magnitude per 8x more markers.
Measured effects reported in the paper
| What was changed | Where | Measured | Effect |
|---|---|---|---|
| Use ΦFlow instead of the Hu et al. implementation | Billiards experiment · Billiards | computation lines of code: 79 -> 29 | Helped |
| Use ΦFlow instead of the Hu et al. implementation | Billiards experiment · Billiards | plotting lines of code: 41 -> 2 | Helped |
| Use ΦFlow instead of warp | Wave propagation example · Wave propagation | lines of code: 165 -> 14 | Helped |
| Increase the number of marker particles | ΦFlow PIV solver · Particle image velocimetry | velocity MSE: about one order of magnitude per 8× more markers | Helped |
| Increase the number of marker particles | ΦFlow PIV solver · Particle image velocimetry | particle position MSE | Helped |
Surprising findings
- Jax developers disabled double precision by default, motivating ΦFlow's context-based precision management.
Limitations
- Code-brevity comparisons are informal and rely on the authors' own implementations.
- Billiards gradients are discontinuous, making the inverse problem challenging.
Experimental setup
Datasets: synthetic fluid simulation data generated with ΦFlow
Metrics: lines of code MSE loss velocity MSE particle position MSE
Baselines: Warp Hu et al. 2019 billiards implementation (DiffTaichi) Schoenholz & Cubuk 2020 sphere packing (JAX-MD)
Builds on: ΦML PyTorch TensorFlow Jax SciPy
Closest papers by meaning
- Physics-informed Reduced Order Modeling of Time-dependent PDEs via Differentiable Solvers (NeurIPS 2025 · similarity 0.84)
- Mosaic: A Benchmark Suite for Differentiable Physics Solvers (NeurIPS 2026 · similarity 0.84)
- PRDP: Progressively Refined Differentiable Physics (ICLR 2025 · similarity 0.84)
- Bespoke Solvers for Generative Flow Models (ICLR 2024 · similarity 0.84)
- MultiPDENet: PDE-embedded Learning with Multi-time-stepping for Accelerated Flow Simulation (ICML 2025 · similarity 0.84)
- MC^2: Monte Carlo Correction for Fast Elliptic PDE Solving (NeurIPS 2026 · similarity 0.83)
Writing a paper in this area? scime draft is a free LaTeX editor with AI included, real-time co-authors and a check of your references and venue rules before you submit. It also imports OpenAI Prism projects.
