Skip to main content

                  Documentation Status

SPlisHSPlasH is an open-source library for the physically-based simulation of fluids. The simulation in this library is based on the Smoothed Particle Hydrodynamics (SPH) method which is a popular meshless Lagrangian approach to simulate complex fluid effects. The SPH formalism allows an efficient computation of a certain quantity of a fluid particle by considering only a finite set of neighboring particles. One of the most important research topics in the field of SPH methods is the simulation of incompressible fluids. SPlisHSPlasH implements current state-of-the-art pressure solvers (WCSPH, PCISPH, PBF, IISPH, DFSPH, PF) to simulate incompressibility. Moreover, the library provides different methods to simulate viscosity, surface tension and vorticity.

The library uses the following external libraries: Eigen, json, partio, zlib, cxxopts, tinyexpr, toojpeg, pybind, glfw, hapPLY, nfd, and imgui. All external dependencies are included.

Furthermore we use our own libraries:

SPlisHSPlasH can export the particle data in the partio and vtk format. If you want to import partio files in Maya or Blender, try out our plugins:

Author: Jan Bender

License

The SPlisHSPlasH library code is licensed under the MIT license. See LICENSE for details.

External dependencies are covered by separate licensing terms. See the extern folder for the code and respective licensing terms of each dependency.

Documentation

Forum

On our GitHub discussions page you can ask questions, discuss about simulation topics, and share ideas.

Build Instructions

This project is based on CMake. Simply generate project, Makefiles, etc. using CMake and compile the project with a compiler of your choice that supports C++11. The code was tested with the following configurations:

  • Windows 10 64-bit, CMake 3.18.3, Visual Studio 2019
  • Debian 11.5 64-bit, CMake 3.18.4, GCC 10.2.1.

Note: Please use a 64-bit target on a 64-bit operating system. 32-bit builds on a 64-bit OS are not supported.

Python Installation Instruction

For Windows and Linux targets there exists prebuilt python wheel files which can be installed using

pip install pysplishsplash

These are available for Python versions 3.6-3.10. See also here: pySPlisHSPlasH. If you do not meet these conditions please refer to the build instructions and to the python binding Getting started guide.

The command line simulator is available by running one of the following

splash
splash --help

Features

SPlisHSPlasH implements:

  • an open-source SPH fluid simulation (2D & 3D)
  • neighborhood search on CPU or GPU
  • supports vectorization using AVX
  • Python binding (thanks to Stefan Jeske)
  • supports embedded Python scripts
  • several implicit pressure solvers (WCSPH, PCISPH, PBF, IISPH, DFSPH, PF)
  • explicit and implicit viscosity methods
  • current surface tension approaches
  • different vorticity methods
  • computation of drag forces
  • support for multi-phase simulations
  • simulation of deformable solids
  • rigid-fluid coupling with static and dynamic bodies
  • two-way coupling with deformable solids
  • XSPH velocity filter
  • fluid emitters
  • scripted animation fields
  • a json-based scene file importer
  • automatic surface sampling
  • a tool for volume sampling of closed geometries
  • a tool to generate spray, foam and bubble particles in a postprocessing step
  • a tool to skin a visual mesh to the moving particles of an elastic solid in a postprocessing step
  • partio file export of all particle data
  • VTK file export of all particle data (enables the data import in ParaView)
  • rigid body export
  • a Maya plugin to model and generate scene files
  • a ParaView plugin to import particle data

A list of all implemented simulation methods can be found here: https://splishsplash.physics-simulation.org/features

Screenshots & Videos

https://splishsplash.physics-simulation.org/gallery

Citation

To cite SPlisHSPlasH you can use this BibTeX entry:

@software{SPlisHSPlasH_Library,
  author = {Bender, Jan and others},
  license = {MIT},
  title = {{SPlisHSPlasH Library}},
  url = {https://github.com/InteractiveComputerGraphics/SPlisHSPlasH},
}

Metadata

Release files for pySPlisHSPlasH 2.18.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for pySPlisHSPlasH 2.18.1
File
pysplishsplash-2.18.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pysplishsplash-2.18.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pysplishsplash-2.18.1-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details
pysplishsplash-2.18.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pysplishsplash-2.18.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pysplishsplash-2.18.1-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details
pysplishsplash-2.18.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pysplishsplash-2.18.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pysplishsplash-2.18.1-cp311-cp311-macosx_26_0_arm64.whl CPython 3.11 CPython 3.11 macOS 26.0+ ARM64 Details
pysplishsplash-2.18.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pysplishsplash-2.18.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pysplishsplash-2.18.1-cp310-cp310-macosx_26_0_arm64.whl CPython 3.10 CPython 3.10 macOS 26.0+ ARM64 Details
pysplishsplash-2.18.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details

Total release size: 61.8 MB

Release files / pysplishsplash-2.18.1-cp313-cp313-win_amd64.whl

Download URL pysplishsplash-2.18.1-cp313-cp313-win_amd64.whl
Size 4.5 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
62888fa72b6312c081e0248935dd6c2a4e5d1df7f8bed069c9b767e2c4f82919
BLAKE2b-256 checksum
How to use checksums
1f587a8ef5717cbb1fb3844fbda5f43f585f20c3efe790ace6753666c036a4e5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.18.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5cb07939c300d2c492ee671ad409d6d72e4ca2dc6baeb4d9ce528712074617dc
BLAKE2b-256 checksum
How to use checksums
87763d993d72964c8c69cd89d2bbe0cde9d95191f9e43b6fa372b8442b284639
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / pysplishsplash-2.18.1-cp313-cp313-macosx_26_0_arm64.whl

Download URL pysplishsplash-2.18.1-cp313-cp313-macosx_26_0_arm64.whl
Size 4.3 MB
Tags CPython 3.13 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
8c22290ac5a7209c25be1b5a5d9d89b1c1fae20bcfe23a62f5a89a0e0fa029a8
BLAKE2b-256 checksum
How to use checksums
4cc5c58c6bb902d3c8bbab7f62986047956f61bc2e5525cb2179a78f8c7c4ec8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp312-cp312-win_amd64.whl

Download URL pysplishsplash-2.18.1-cp312-cp312-win_amd64.whl
Size 4.5 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
4ea2f97460ade6f1b46d2cb904c2cdca4e364ff28529fb57b6c092934c15f3d4
BLAKE2b-256 checksum
How to use checksums
fa584bd8fa7d9ea9422900651221b38807c180b553904f6e04292c178dfcc33f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.18.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0408218b21573fe95b4030be09536a978596ffcf0ffc47bf564c0ac525b1913a
BLAKE2b-256 checksum
How to use checksums
85ea2acfdbf794d87a17f70a8edfcf296ba3b3815ee618447e1f52770a97dbfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / pysplishsplash-2.18.1-cp312-cp312-macosx_26_0_arm64.whl

Download URL pysplishsplash-2.18.1-cp312-cp312-macosx_26_0_arm64.whl
Size 4.3 MB
Tags CPython 3.12 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
0c0380cd1f66ed6a2bf893966467676811e414cf0574630b91c6781b75a96920
BLAKE2b-256 checksum
How to use checksums
0c17c5c6f6fdc5c8ea012bc982d3dd6b31a18989e4ff26df8e1015c36b03a23b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp311-cp311-win_amd64.whl

Download URL pysplishsplash-2.18.1-cp311-cp311-win_amd64.whl
Size 4.5 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
65c7bc7dc50f4c2581089bbd57bfaef45e772d47b729e7bad043cc99ea000e05
BLAKE2b-256 checksum
How to use checksums
031c905ddb623d1e641d9385dff02c767ea2f30bf4d6e219deb07cbd48e9057c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.18.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a2c38d269a7c7cb87cda7ef52d30d3d42f50e90f683bc749801de45ca7a25b6d
BLAKE2b-256 checksum
How to use checksums
8c7d28541de7fa877915d7f9e8c49adafdb2e20d3ac795ce44b07bbff7b1b7af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / pysplishsplash-2.18.1-cp311-cp311-macosx_26_0_arm64.whl

Download URL pysplishsplash-2.18.1-cp311-cp311-macosx_26_0_arm64.whl
Size 4.3 MB
Tags CPython 3.11 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
f57f9b3b2faeb76d6ea92e906ebba413fd0624df97c14427478f4e5c87115442
BLAKE2b-256 checksum
How to use checksums
a0cd21d239e78c29b3c0d1502f8d633157bef913c700c7a9cc8e7e2aa90c9199
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp310-cp310-win_amd64.whl

Download URL pysplishsplash-2.18.1-cp310-cp310-win_amd64.whl
Size 4.5 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
40a43ff4da352dc1d5dabe8050557fe0ab2cf604aadf2265a4657d9761ee7a12
BLAKE2b-256 checksum
How to use checksums
9522472139fdba392e805852d6d0f3a0c2d38ad824a50358892196f9a2625021
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.18.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
6f8536a608634f1f469e90726819128aa7ebc4b90c9820f9a2678f2739807dec
BLAKE2b-256 checksum
How to use checksums
d58be3f600470f9a5a6c68b12df63ae727c9d1d5650b628c9bb21789c8636fac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / pysplishsplash-2.18.1-cp310-cp310-macosx_26_0_arm64.whl

Download URL pysplishsplash-2.18.1-cp310-cp310-macosx_26_0_arm64.whl
Size 4.2 MB
Tags CPython 3.10 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
a2e6f4074fc34af93c1d4ef77b7896624b8cbec0d652b6a3502a957d4f63431e
BLAKE2b-256 checksum
How to use checksums
60820d6911938f0634158ef783a2687db4c2863cb585a52431ac021bfd24d04a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.10

Release files / pysplishsplash-2.18.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.18.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.4 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fbc60753cd6a53f1781dd1b8a850f9b25019eb85fbab7477a6dbcd4852aa158b
BLAKE2b-256 checksum
How to use checksums
64be6843e2a38dbee49cd83169af38399e340fee626005d422579b9072a0c384
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page