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.



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.


implementation details

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