In Spring 2016, I had an amazing time teaching a Fluid Simulation course at Penn. During this time, Akshay & I took the opportunity to implement a FLIP+PIC Fluid solver from scratch, based on a Siggraph paper - "Animating Sand as a Fluid" (FLIP) by Bridson et al. FLIP is a hybrid approach to fluid simulation and combines the strengths of both worlds - particles & grids - for large scale simulations.
POSITION BASED FLUIDS
In a team of 2, I implemented a Position Based Fluid solver based on the "Position Based Fluids" (PBF) paper described in [Macklin & Muller, Siggraph 2013]. In this approach, we combine SPH with Position Based Dynamics for simulating fluids faster than grid based approaches while compromising for simulation accuracy.
I first implemented a particle solver based on Position Based Dynamics (PBD) [Muller et al. 2007] and rendered simple spheres for visualization in OpenGL .
This video shows a quick implementation of SPH + PBD with a naive brute-force search.
With a spatial hash grid implementation, our solver was able to simulate 20000 particles at without any parallelization
Finally, I created a custom Houdini HDK SOP node and used OpenVDB to mesh our particles in Houdini.
The final images were rendered using Mantra's Physically Based Renderer