This repository contains the official implementation of SIGGRAPH Asia Conference Paper
“An Adjoint Method for Differentiable Fluid Simulation on Flow Maps”
By Zhiqi Li, Jinjin He, Barnabás Börcsök, Taiyuan Zhang, Duowen Chen, Tao Du, Ming C. Lin, Greg Turk & Bo Zhu.
Paper available at arXiv: 2511.01259 (Nov 2025).
🔗 Project Page / Demo: https://pearseven.github.io/DiffFMProject/
📄 Paper PDF / DOI
🎥 Video Demo
This implementation is written entirely in Python 3.9 using Taichi for high-performance simulation.
Install all required packages:
pip install taichi numpy pillow matplotlib scipy imageio
or using a requirements.txt:
taichi>=1.5.0
numpy
pillow
matplotlib
scipy
imageio
Then install with:
pip install -r requirements.txt
For 3D part, our repo rely on https://github.com/wrc042/AMGPCG_Pybind, a fast MGPCG solver. install it before run 3D code.
For 2D G->R smoke shape transition
cd 2D/shape
python optimize_shape_G_R.py
For 2D vortex optimization
cd 2D/vortex
python optimize_vortex.py
For 3D G->R smoke shape transition
cd 3D
optimize_shape_G_R.py
If you find this repository helpful, please cite:
@inproceedings{li2025adjoint,
year = {2025},
title = {An Adjoint Method for Differentiable Fluid Simulation on Flow Maps},
booktitle = {ACM SIGGRAPH Asia 2025 (Conference Track)},
author = {Li, Zhiqi and He, Jinjin and Börcsök, Barnabás and Zhang, Taiyuan and Chen, Duowen and Du, Tao and Lin, Ming C. and Turk, Greg and Zhu, Bo}
}