Lattice Boltzmann CFD solver that runs fluid simulations on GPUs and CPUs through OpenCL, with real-time rendering and multi-GPU support.
InteractiveComputerGraphics/SPlisHSPlasH
An open-source C++ library for physically-based fluid simulation using Smoothed Particle Hydrodynamics (SPH), with a Python binding and CLI.
- Stars
- 1,957
- Forks
- 344
- Open issues
- 17
- Last commit
- 9 days ago
What is it?
SPlisHSPlasH is a library for simulating fluids with Smoothed Particle Hydrodynamics, a meshless Lagrangian method that computes quantities for each particle from a finite set of its neighbors. It implements several incompressible pressure solvers (WCSPH, PCISPH, PBF, IISPH, DFSPH, PF) along with methods for viscosity, surface tension and vorticity.
Beyond pure fluids, the library covers rigid-fluid coupling, two-way coupling with deformable solids, multi-phase flow and drag forces. Scenes are defined in JSON, and results can be exported as partio or VTK files for use in Maya, Blender or ParaView. A `splash` command-line simulator and pip-installable Python bindings (pysplishsplash) are provided for Windows and Linux.
The project is built with CMake and requires a C++11 compiler. Its neighborhood search runs on the CPU or GPU, and it uses AVX vectorization where available.
Key features
- 01Pressure solvers for incompressible fluids: WCSPH, PCISPH, PBF, IISPH, DFSPH and PF
- 022D and 3D simulation with CPU or GPU neighborhood search
- 03Rigid-fluid and two-way fluid-solid coupling
- 04Multi-phase simulation and drag force computation
- 05JSON scene importer with Python scripting support
- 06Export of particle data to partio and VTK formats
Use cases
- Researching SPH pressure solvers and fluid-solid coupling methods
- Generating fluid animation data for import into Maya, Blender or ParaView
- Scripting fluid scenes from Python with the pysplishsplash bindings
Quick start
- 1
Install the prebuilt Python package for Windows or Linux
pip install pysplishsplash - 2
Run the command line simulator
splash
Things to know
- Prebuilt Python wheels are only provided for Windows and Linux, for Python 3.6-3.10.
- Building from source requires CMake and a C++11 compiler.
Topics
FAQ
- What is SPlisHSPlasH?
- An open-source C++ library for physically-based fluid simulation using Smoothed Particle Hydrodynamics (SPH), with a Python binding and CLI. SPlisHSPlasH is a library for simulating fluids with Smoothed Particle Hydrodynamics, a meshless Lagrangian method that computes quantities for each particle from a finite set of its neighbors. It implements several incompressible pressure solvers (WCSPH, PCISPH, PBF, IISPH, DFSPH, PF) along with methods for viscosity, surface tension and vorticity.
- Is SPlisHSPlasH free to use? What license does it have?
- SPlisHSPlasH is open source under the MIT license. Check the license terms before using it in commercial products.
- Is SPlisHSPlasH still maintained?
- Actively maintained. The last commit to SPlisHSPlasH was on Oct 28, 2026.
- What can I use SPlisHSPlasH for?
- Researching SPH pressure solvers and fluid-solid coupling methods Generating fluid animation data for import into Maya, Blender or ParaView Scripting fluid scenes from Python with the pysplishsplash bindings
- How do I install SPlisHSPlasH?
- Install the prebuilt Python package for Windows or Linux: pip install pysplishsplash Run the command line simulator: splash
- Where can I get SPlisHSPlasH?
- The source code and installation instructions are on GitHub: https://github.com/InteractiveComputerGraphics/SPlisHSPlasH
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
C++17 physics library with Python bindings for kinematics, dynamics and contact simulation of articulated robots and animated characters.
A C++ batched environment pool for reinforcement learning that runs many Gym-style environments in parallel with a thread pool.
C++ client library for real-time low-level control of Franka Robotics research robots, with Python bindings via pylibfranka.
Blender is a free, open source 3D creation suite covering modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
A Python framework that JIT-compiles regular Python functions into kernels running on CPU or NVIDIA GPU, for simulation, robotics, and ML.