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.19.0

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.19.0
File
pysplishsplash-2.19.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
pysplishsplash-2.19.0-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.19.0-cp313-cp313-macosx_26_0_arm64.whl CPython 3.13 CPython 3.13 macOS 26.0+ ARM64 Details
pysplishsplash-2.19.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
pysplishsplash-2.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
pysplishsplash-2.19.0-cp312-cp312-macosx_26_0_arm64.whl CPython 3.12 CPython 3.12 macOS 26.0+ ARM64 Details
pysplishsplash-2.19.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
pysplishsplash-2.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
pysplishsplash-2.19.0-cp311-cp311-macosx_26_0_arm64.whl CPython 3.11 CPython 3.11 macOS 26.0+ ARM64 Details
pysplishsplash-2.19.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
pysplishsplash-2.19.0-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.19.0-cp310-cp310-macosx_26_0_arm64.whl CPython 3.10 CPython 3.10 macOS 26.0+ ARM64 Details
pysplishsplash-2.19.0-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: 63.5 MB

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

Download URL pysplishsplash-2.19.0-cp313-cp313-win_amd64.whl
Size 4.6 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
bb6744b210402ab506762bfb6815b6ff821ddb7d5b4bd844be022c298a632374
BLAKE2b-256 checksum
How to use checksums
9a1cb449cc9b396d386af1fe8327779243a460c966178d008ab9fa9b88ed5c02
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.19.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.19.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.5 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5e36cfe3fd19a9074da26164b7d11c7f4a475186b924265e235861641f9c8012
BLAKE2b-256 checksum
How to use checksums
36f55e3ff177826c631d38454c07f22bb50194e2b0bc15359d88e28d8ebb25e2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL pysplishsplash-2.19.0-cp313-cp313-macosx_26_0_arm64.whl
Size 4.4 MB
Tags CPython 3.13 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
99423fde062b53dd2477e0a74ac132c7a1accd685600f53a0ad883e757074490
BLAKE2b-256 checksum
How to use checksums
b2e5bad53c1876c6ac3a3b6bb4202a14620b801950f1d10a945a68e623558273
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.19.0-cp312-cp312-win_amd64.whl

Download URL pysplishsplash-2.19.0-cp312-cp312-win_amd64.whl
Size 4.6 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
ae5571f774c0e9a400bd1ba3449ab847be489a9c7f895309fec1144b8c23ed2a
BLAKE2b-256 checksum
How to use checksums
2971050d48ea6e2a83577c7ca7e70c12d516bddd1a9cf28526fe56e81f6a9a11
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.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.19.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5f740f94b38ec2c90971ddf8771ab223dac66f0ebdd982c982408be3655729b4
BLAKE2b-256 checksum
How to use checksums
dc886d77ca63c8ff25b0ec00735779396bf41b1f7ca5e752afc68a819035e99d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL pysplishsplash-2.19.0-cp312-cp312-macosx_26_0_arm64.whl
Size 4.4 MB
Tags CPython 3.12 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
260c5b829a84547fafd75fbab33f5610ca29aa33767557333a549574f38022c2
BLAKE2b-256 checksum
How to use checksums
782e2a569f3b663c8248eb0e6c0989633311ea481af7675cde5a2dc31c4538fa
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.19.0-cp311-cp311-win_amd64.whl

Download URL pysplishsplash-2.19.0-cp311-cp311-win_amd64.whl
Size 4.6 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2f4ca3022ace29269b8c0407e500060bbb493a5188d02eb5eb97f72891945479
BLAKE2b-256 checksum
How to use checksums
93719ecc3822a9c52a37a08a939cd7486b7fa4605cd4b75357e7cd57e59156a4
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.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.19.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e4bd098d21c6b0d736b4618da51814fb37c231a94aeafc8f82843e5cf020c2ab
BLAKE2b-256 checksum
How to use checksums
746bd98ecd5c779c26b3739b631a4438c8e3b72033ea18a5251cfb824571ffa5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL pysplishsplash-2.19.0-cp311-cp311-macosx_26_0_arm64.whl
Size 4.4 MB
Tags CPython 3.11 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
9603fbae4fc026a7b06e9259664adb72843980f4666459cb7fe13c07a89c57cd
BLAKE2b-256 checksum
How to use checksums
03fe2d7b88de36101077e37c1234901d67b6adba2eaa856c0b18ae5fe2793678
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.19.0-cp310-cp310-win_amd64.whl

Download URL pysplishsplash-2.19.0-cp310-cp310-win_amd64.whl
Size 4.6 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b1d771e3dc3b40785c501a2dd4b2da1857813847594da0d2c56b3053c83f5cfb
BLAKE2b-256 checksum
How to use checksums
195fe5c3d7353716242a511e5df2a533544128016b457097fb06829e1cafdef4
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.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.19.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
205fe0ed88e4e04e46b5e6c8610e4212721183f4e351ec1874ebdd68967f65ae
BLAKE2b-256 checksum
How to use checksums
85751409d5c4a2ccdbc8bd2b5a053ce34c0e6f7fed4646e8a655972750a7c48f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

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

Download URL pysplishsplash-2.19.0-cp310-cp310-macosx_26_0_arm64.whl
Size 4.4 MB
Tags CPython 3.10 macOS 26.0+ ARM64
SHA-256 checksum
How to use checksums
f7d3fa54f1e707152bae4517fc6a2a341d9bdecc88ad8bcc6d76c3f227e1db20
BLAKE2b-256 checksum
How to use checksums
05a3f431f22aa62d76b365a6fdadfa9fac6ba3fdcfc3f0022f1e69263e94d3bc
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.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.19.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.6 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0e53d077fa479cdbe77b87e62440cddcda9ed7d744e334f027ba0626869b85e9
BLAKE2b-256 checksum
How to use checksums
451e62d59028f5f69c2f5c044652db2f11d7bb69833e07f61ed19c38fd2994bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

This release

2.19.0 This release

13 release files

2.18.0

9 release files

2.11.1

8 release files

2.10.1

8 release files

2.9.2

9 release files

2.9.1

10 release files

2.8.7

10 release files

2.8.5

10 release files

2.8.3

10 release files

2.8.2

10 release files

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