An implementation of Position Based Fluids by Macklin and Mueller.
This was my final project in CSCE 450: Computer Animation at Texas A&M with Dr. Shinjiro Sueda.
The base rendering code is based off of Dr. Sueda's code provided in class.
- Only tested on Arch Linux
- Does not work on Windows via WSL2 & WSLg due to CUDA-OpenGL interop not being implemented.
- Dependencies: CUDA, GLEW, GLFW, GLM
pacman -S cmake cuda cuda-toolkit glew glfw glm
SPACEto toggle simulation- Orbit controls with mouse
CTRLtranslateSHIFTzoom
- Update simulation parameters in
CUDA/Parameters.cuhand recompile. (runtime config wip)
These are things I wanted to implement for this project, but ran out of time before the deadline.
- Collision with surfaces defined via SDF
- Mesh to SDF conversion
- Implement Yu and Turk's paper on particle fluid surface reconstruction
- Screen-space fluid rendering
- Macklin, M., and Mueller, M. -- Position Based Fluids, SIGGRAPH 2013
- Hoetzlin R. C. -- Fast Fixed-Radius Nearest Neighbors: Interactive Million-Particle Fluids, GTC 2014
- Yu, J., and Turk, G. -- Reconstructing Surfaces of Particle-Based Fluids Using Anisotropic Kernels, SIGGRAPH 2010
- Green, S. -- Screen Space Fluid Rendering for Games, GDC 2010
- CUDA - OpenGL interoperability