OpenMaelstrom Save

An open source GPU based SPH simulation with support for spatial adaptivity

Project README

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

Build Instructions

The simulation build itself is based on CMake and intended for 64 bit applications only. Tested configurations are:

  • Windows 10 64 Bit, MSVC 19.16.27025.1, CMake 3.15, CUDA 10.0
  • Ubuntu 18.04 64 Bit, GCC 7.4.0, CMake 3.15, CUDA 10.0

For some information on how to build the simulation under Windows see Build Guide


Documentation

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.


Features

  • an open source 3D SPH fluid simulation
  • a compile time enforced SI unit system
  • a meta modelling system for memory handling
  • full GPU support with no reliance on CPU based methods
  • incompressible fluid simulation methods (IISPH, DFSPH)
  • spatially highly adaptive incompressible flows
  • surface tension effects and fluid-air-drag forces
  • rigid-fluid coupling for static and dynamic bodies
  • two-way coupled rigid-fluid interactions (including for adaptive methods)
  • rigid-rigid interactions
  • fluid inlet and outlets
  • JSON based configuration files
  • Alembic output
  • built-in ray tracing of particles and opaque/transparent fluid surfaces
  • support for anisotropic surfaces
  • a variety of neighbor list and data structure methods

Pressure solvers

  • Implicit Incompressible SPH (IISPH)
  • Divergence-free smoothed particle hydrodynamics (DFSPH)
  • Pressure Boundaries for Implicit Incompressible SPH
  • Interlinked SPH Pressure Solvers for Strong Fluid-Rigid Coupling

Boundary Handling

  • Versatile Rigid-Fluid Coupling for Incompressible SPH (not for adaptive fluids)
  • Pressure Boundaries for Implicit Incompressible SPH (not for adaptive fluids)
  • Interlinked SPH Pressure Solvers for Strong Fluid-Rigid Coupling(not for adaptive fluids)
  • MLS Pressure Extrapolation for the Boundary Handling in Divergence-Free SPH (not for adaptive fluids)
  • A boundary integral based method (supports adaptive fluids)

Fluid effects

  • Versatile Surface Tension and Adhesion for SPH Fluids
  • Robust Simulation of Small-Scale Thin Features in SPH-based Free Surface Flows
  • Approximate Air-Fluid Interactions for SPH
  • XSPH based viscosity and traditional artificial viscosity

Screenshots


Example Simulations

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.

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Watch the video

Open Source Agenda is not affiliated with "OpenMaelstrom" Project. README Source: wi-re/openMaelstrom

Open Source Agenda Badge

Open Source Agenda Rating