Skip to content
Offline fluid simulation solver adopted from
C++ C Other
Branch: master
Clone or download
Latest commit 0814ef8 Oct 31, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
FluidEngine raw particle emitter Oct 31, 2019
include OpenGL Visualizer Sep 21, 2019
lib OpenGL Visualizer Sep 21, 2019
FluidEngine.sln fluid solver Sep 5, 2019 surface reconstruction improvement Oct 25, 2019


This is a fluid simulation engine for computer graphics applications. I adopt it from Doyub Kim's fluid-engine-dev. It's built on C++11 and compiled with Microsoft Visual Studio 2017. This fluid engine is just for personal learning and interest.


  • Basic math and geometry operations and data structures
  • Jacobi, Gauss-Seidel, SOR, MG, CG, ICCG, and MGPCG linear system solvers
  • Spherical, SPH, Zhu & Bridson, and Anisotropic kernel for points-to-surface converter
  • Intel TBB multi-threading backends
  • SPH and PCISPH fluid simulators
  • Converters between signed distance function and triangular mesh
  • Stable fluids-based smoke simulator (Pure Euler fluid solver)
  • Level set-based liquid simulator
  • Fluid solvers have both 2-D and 3-D version


Just clone the code and open it with Microsoft Visual Studio 2017. There are three vs2017 projects. FluidEngine is the core of engine. Test is for unit test while FluidExample includes several fluid demos.


  • PIC, FLIP, and APIC fluid simulators
  • Position based fluid simulator
  • Visualizer based on OpenGL
  • Flame simulator
  • GPU version of SPH Simulator
  • ......

Learning Notes(In Chinese)

These are not documentations for the engine but simulation algorithm notes.


The engine is just for simulation and can use some renderers (such as Mitsuba renderer) to render it for visualization.

PCISPH Simulation Example


Euler Simulation Solver Example


Level-set Based Liquid Example



[1] Müller M, Charypar D, Gross M. Particle-based fluid simulation for interactive applications[C]//Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation. Eurographics Association, 2003: 154-159.

[2]​ Becker M, Teschner M. Weakly compressible SPH for free surface flows[C]//Proceedings of the 2007 ACM SIGGRAPH/Eurographics symposium on Computer animation. Eurographics Association, 2007: 209-217.

[3]​ Schechter H, Bridson R. Ghost SPH for animating water[J]. ACM Transactions on Graphics (TOG), 2012, 31(4): 61.

[4]​ Kim, D. (2017). Fluid engine development. Boca Raton: Taylor & Francis, a CRC Press, Taylor & Francis Group.

[5]​ Adams and Wicke, Meshless approximation methods and applications in physics based modeling and animation, Eurographics tutorials 2009.

[6]​ Dan Koschier, Jan Bender. Smoothed Particle Hydrodynamics Techniques for the Physics Based Simulation of Fluids and Solids, Eurographics Tutorial 2019.

[7]​ Solenthaler B, Pajarola R. Predictive-corrective incompressible SPH[C]// Acm Siggraph. 2009.

[8]​ R. Bridson and M. Müller-Fischer. Fluid simulation: Siggraph 2007 course notes. In ACM SIGGRAPH 2007 Courses, pages 1–81, ACM, 2007.

[10] Stam J. Stable fluids[J]. Acm Transactions on Graphics, 1999, 1999:121—128.

[11] A. J. Chorin and J. E. Marsden. A Mathematical Introduction to Fluid Mechanics. Springer-Verlag. Texts in Applied Mathematics 4. Second Edition., New York, 1990.

[12] Fedkiw R, Stam J, Jensen H W. Visual simulation of smoke[C]// Conference on Computer Graphics & Interactive Techniques. 2001.

[13] Solenthaler B , Jürg Schläfli, Pajarola R . A unified particle model for fluid-solid interactions[J]. Computer Animation and Virtual Worlds, 2007, 18(1):69-82.


Thanks very much for Doyub Kim's book, "Fluid Engine Development". I highly recommend this book if you are interested in fluid simulation.

You can’t perform that action at this time.