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.16.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.16.0
File Actions
pysplishsplash-2.16.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for pysplishsplash-2.16.0-cp313-cp313-win_amd64.whl
pysplishsplash-2.16.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 for pysplishsplash-2.16.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pysplishsplash-2.16.0-cp313-cp313-macosx_15_0_arm64.whl CPython 3.13 CPython 3.13 macOS 15.0+ ARM64 Details for pysplishsplash-2.16.0-cp313-cp313-macosx_15_0_arm64.whl
pysplishsplash-2.16.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details for pysplishsplash-2.16.0-cp312-cp312-win_amd64.whl
pysplishsplash-2.16.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 for pysplishsplash-2.16.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pysplishsplash-2.16.0-cp312-cp312-macosx_15_0_arm64.whl CPython 3.12 CPython 3.12 macOS 15.0+ ARM64 Details for pysplishsplash-2.16.0-cp312-cp312-macosx_15_0_arm64.whl
pysplishsplash-2.16.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details for pysplishsplash-2.16.0-cp311-cp311-win_amd64.whl
pysplishsplash-2.16.0-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 for pysplishsplash-2.16.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pysplishsplash-2.16.0-cp311-cp311-macosx_15_0_arm64.whl CPython 3.11 CPython 3.11 macOS 15.0+ ARM64 Details for pysplishsplash-2.16.0-cp311-cp311-macosx_15_0_arm64.whl
pysplishsplash-2.16.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details for pysplishsplash-2.16.0-cp310-cp310-win_amd64.whl
pysplishsplash-2.16.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 for pysplishsplash-2.16.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pysplishsplash-2.16.0-cp310-cp310-macosx_15_0_arm64.whl CPython 3.10 CPython 3.10 macOS 15.0+ ARM64 Details for pysplishsplash-2.16.0-cp310-cp310-macosx_15_0_arm64.whl
pysplishsplash-2.16.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details for pysplishsplash-2.16.0-cp39-cp39-win_amd64.whl
pysplishsplash-2.16.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for pysplishsplash-2.16.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
pysplishsplash-2.16.0-cp39-cp39-macosx_15_0_arm64.whl CPython 3.9 CPython 3.9 macOS 15.0+ ARM64 Details for pysplishsplash-2.16.0-cp39-cp39-macosx_15_0_arm64.whl
pysplishsplash-2.16.0-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details for pysplishsplash-2.16.0-cp38-cp38-win_amd64.whl
pysplishsplash-2.16.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details for pysplishsplash-2.16.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Total release size: 76.5 MB

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

Download URL pysplishsplash-2.16.0-cp313-cp313-win_amd64.whl
Size 4.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d07c33b4a03663d2dc6a878837de8b8bd5bef229a702cbb2df82acf52656e4f8
BLAKE2b-256 checksum
How to use checksums
0750be4d649d8e155834724865a6e0d8db2adbdad8a02fd29da1dd732f547494
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
cfb825dd38fae1c14e4416c84094de55657735a1b60d84bba22a05e04207d76c
BLAKE2b-256 checksum
How to use checksums
fba77f02950219f2cd0f07b2d20e03ed908e7260410b17434a327f793cbccfb9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / pysplishsplash-2.16.0-cp313-cp313-macosx_15_0_arm64.whl

Download URL pysplishsplash-2.16.0-cp313-cp313-macosx_15_0_arm64.whl
Size 4.2 MB
Tags CPython 3.13 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
e52300041820e8dd570f2b3b4a854f68c6da3a617fac4372645399192fa497e5
BLAKE2b-256 checksum
How to use checksums
641f9de7c093d1dc8473e6fb84aae2e9a04e346068bfa6b104e0b10389f201d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp312-cp312-win_amd64.whl
Size 4.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
a74b0d05cd198f6adfb950e46dddca57ad2f2030b07f7451baeaf98094f62e9c
BLAKE2b-256 checksum
How to use checksums
239d28c5f0102f2566e9533a1761f546057752b03aed7767cdf30b706d2afc57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.2 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e028fc5d29ca83c44cfde1840900f0050ba824111019feb822e5c6584c3bb4dd
BLAKE2b-256 checksum
How to use checksums
607953fdbfa845ae777f9473c570587bebc4543c965325bed2e4678e25fa82a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / pysplishsplash-2.16.0-cp312-cp312-macosx_15_0_arm64.whl

Download URL pysplishsplash-2.16.0-cp312-cp312-macosx_15_0_arm64.whl
Size 4.2 MB
Tags CPython 3.12 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
0c573cc5bb6c669f3611dc17d36aa4caecb61add5bd1bf5f5f532f426c64d0f0
BLAKE2b-256 checksum
How to use checksums
9fe7c9bae1704884438e9ac979edced642b04d64708497b62d66b36857888aa3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp311-cp311-win_amd64.whl
Size 4.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a162c5e08fe0a65055713499e9c3b150951c69c6a58cd529940a643e2b1a734b
BLAKE2b-256 checksum
How to use checksums
647c957223a70623906775eb7e82582ab3ff730517cee0072c6fbca9aab56b64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.3 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
a4616311d64382c6f5e4ca6d47b2b70b1a96a667c9592013b2bbc38acb623ae7
BLAKE2b-256 checksum
How to use checksums
99cfa9be0a66b055a8916a28d9f7210649dede3c75c2318ed1736fa4c23caafb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / pysplishsplash-2.16.0-cp311-cp311-macosx_15_0_arm64.whl

Download URL pysplishsplash-2.16.0-cp311-cp311-macosx_15_0_arm64.whl
Size 4.2 MB
Tags CPython 3.11 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
a3bb0d13feba78a1001376681bd9ca55a0f141912a864857e415cac42c38c532
BLAKE2b-256 checksum
How to use checksums
37a70b4f62e8b22cd19468e7aecc95a8e4d4b6887562b5e5749b757cccaa1dc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp310-cp310-win_amd64.whl
Size 4.0 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
bfb4e41d17bb9ca6f11d235ebbbe370adb4f728b8f3ac930611a0b5164273764
BLAKE2b-256 checksum
How to use checksums
8391df7f1d95c0f881624213b190e5d19b9e8b73efd754d4e82618c9382ae120
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.3 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
715ffa364ade85cd5dc52de089cd3ea7506c18be723c3fc3d658916b2d8ab563
BLAKE2b-256 checksum
How to use checksums
e3aa04cb83679344f51efec210a2a586362993dd1547e02c879976ac3f6b76c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / pysplishsplash-2.16.0-cp310-cp310-macosx_15_0_arm64.whl

Download URL pysplishsplash-2.16.0-cp310-cp310-macosx_15_0_arm64.whl
Size 4.2 MB
Tags CPython 3.10 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
493936f85e45329232ab897f2e5e2ba6a0f8ca09b828fab16b0888c477c01599
BLAKE2b-256 checksum
How to use checksums
5e2998c681b66cb809b751e8fd00ffa87220159e78f2f98a020230be30bcc589
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / pysplishsplash-2.16.0-cp39-cp39-win_amd64.whl

Download URL pysplishsplash-2.16.0-cp39-cp39-win_amd64.whl
Size 4.0 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
be4d8041b418b55beb5a39d37aa224fa9b94f6e6deb0e0fd9406c7c80d6bbf8e
BLAKE2b-256 checksum
How to use checksums
a8bb4e4952afccaf6d0729616411059654e81207312435e1670a1b7558b9ca92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

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

Download URL pysplishsplash-2.16.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.3 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
72887e3b5eb303d0e89c66de0a3d093c21ff93612b09491bbd2e2b850c65b837
BLAKE2b-256 checksum
How to use checksums
a08cde97206e16f810604fb2ce6f0b05794dbe3040e30bfcecd817b10be6dae4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / pysplishsplash-2.16.0-cp39-cp39-macosx_15_0_arm64.whl

Download URL pysplishsplash-2.16.0-cp39-cp39-macosx_15_0_arm64.whl
Size 4.2 MB
Tags CPython 3.9 macOS 15.0+ ARM64
SHA-256 checksum
How to use checksums
6f423e781d016d5f0415745936ae5ce5df653cb9e4bddb7337302bc508aad466
BLAKE2b-256 checksum
How to use checksums
7a932679f473c9b096e306e3228e61408567ca4b1c5f20a5318bf537b622b191
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / pysplishsplash-2.16.0-cp38-cp38-win_amd64.whl

Download URL pysplishsplash-2.16.0-cp38-cp38-win_amd64.whl
Size 4.0 MB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
894c05dc56b27b20dbc04a3df4a3d56f0f9348b69fdc6770fac0e1be7053b7b1
BLAKE2b-256 checksum
How to use checksums
04e79e6272abaf4a89957db6177b94a5f4041e2a44310c2c2c4590ae8696d21c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / pysplishsplash-2.16.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL pysplishsplash-2.16.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 5.3 MB
Tags CPython 3.8 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
91f2ff922942acb9019cbf74618fe28d50fcda8d9293821f3590939cd2c300bd
BLAKE2b-256 checksum
How to use checksums
084b001e23b24882b06a3c29ea7e6de05d52300df9bc5aea814056e8410c2706
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Security for pySPlisHSPlasH 2.16.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

2.16.0 This release

17 release files No provenance

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