An open source GPU based SPH simulation with support for spatial adaptivity
openMaelstrom (opensource Multiplatform Adaptable Expressive and Lean Sph Toolkit for Realism Oriented Methods) is an open-source library for the simulation and rendering of fluids. This simulation is based on the Smoothed Particle Hydrodynamics (SPH) method, which is a grid-free physically based Lagrangian simulation scheme. SPH, in general, works by estimating flow quantities based on local interactions of particles weighed by kernel functions, which can easily be adapted to many physical processes. This approach can be used to simulate a variety of effects, ranging from astrophysics to engineering, but we limit our framework to the simulation of incompressible fluids for Computer Graphics. openMaelstrom implements a variety of methods, including spatially adaptive simulations, that allow for a wide range of flows to be simulated.
This framework is intended to be run on an Nvidia GPU using CUDA, support for CPUs is experimental and AMD GPUs are not yet supported. This framework is supported on Windows (using Visual Studio 2017) and Linux (using GCC 7.4.0).
The following external dependencies are required: Alembic, OpenVDB, CUDA 10.0, Bullet, Qt 5, Boost 1.70
The simulation output is in Alembic files, which can be utilized in Houdini using built-in functions (see the example files in the Configurations). The simulation configuration is done using JSON files and supports inputs for fluid volumes and rigid objects as object files, VDB level-sets or ply files.
Author: Rene Winchenbach, License: MIT
The simulation build itself is based on CMake and intended for 64 bit applications only. Tested configurations are:
For some information on how to build the simulation under Windows see Build Guide
The usage of the simulation is described here
The configuration system is described here
For more information on the design and the unit system see my Master Thesis.
Click on the images to open the video on YouTube. All simulations shown here are included and ready to use in the framework under the Configurations folder, including all required models and settings.