Stable Fluid Solver

But then I found out about the Lattice Boltzmann Methods. The more I looked into these the more they revealed interesting properties. They seemed straightforward to parallelize and port to GPU. They captured vorticity effects really well and on top of that, they could be used to solve the Shallow Water Equations. Some configuration even appeared to converge to some stable state which seemed like a desirable property if the vector field were to be stored offline. For more information on how to solve the Shallow Water Equation using the LBM method, I recommend this fantastic book by Dr. Jian Guo Zhou.

I always like to start implementing these complex systems on CPU since it allows me to set breakpoints and investigate the simulated data much easier than when run on a GPU. But even at a very low resolution and frame rate, I could see that this method seemed promising: