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},
}

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pysplishsplash-2.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pysplishsplash-2.18.0-cp313-cp313-macosx_26_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.13macOS 26.0+ ARM64

pysplishsplash-2.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pysplishsplash-2.18.0-cp312-cp312-macosx_26_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.12macOS 26.0+ ARM64

pysplishsplash-2.18.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pysplishsplash-2.18.0-cp311-cp311-macosx_26_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.11macOS 26.0+ ARM64

pysplishsplash-2.18.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

pysplishsplash-2.18.0-cp310-cp310-macosx_26_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10macOS 26.0+ ARM64

pysplishsplash-2.18.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pysplishsplash-2.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9eeecfcddefacb92a22ec2c5d6018b2fd582ae7d35bf9bccbbf7d1d17f5e5f64
MD5 267d7bf7e40b9267c058beb4c775b73c
BLAKE2b-256 bea6240320f71594c31e20a674d2760f796f03db0f20ac0ccc64386a2e793ecc

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp313-cp313-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp313-cp313-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 29125200e056bb285af9fb56a37f47cad1fd8b75645825c30883d3924707b0f6
MD5 a20c99b6433e9c4605cec35fa339c7dd
BLAKE2b-256 69d56f554f334fc24c95213b4c41cb5b1c62d39ab64baff63362d287c53482fc

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 98b4c748631d08d990767fe5580cae839bc0190ec72111ce9ae9652e840c49c7
MD5 c1d717ac36a51e4aa8ab9ba4eaf620d2
BLAKE2b-256 d0c79c6db1f2f68050ba6959fa33dd0058befa484ad98605e20d9f6369ff3af8

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp312-cp312-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp312-cp312-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 c993fcffc4a24c98d1159ee0c5508c2d6cff21c521d5b14fc27fa0d1155848f1
MD5 ef4d9ccc8fa3ddd499f0b896bd3a5c84
BLAKE2b-256 288912b8e9558bb5ca39401142421ee1020fe6ab24e5dc3563b9cf4c7185ae29

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8acbc06180b06a16011ca80f7de4449d87e3b29a883739320dbb5676469d6bee
MD5 d3ff3b6965de5352825e5753c2e10cdc
BLAKE2b-256 2cab9d219d6e616d3e8f0639502199047c3e61a62dc38909f17c2b04743a6521

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp311-cp311-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp311-cp311-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 4fb99b58cc4271d1c65f86bb4369f89af4bfa625a991e14c538ec8410d4f7b13
MD5 098c0405b83e10198e4f4138785e0dd1
BLAKE2b-256 446fdadcb656dd324c710af39680823c6591217301f0397bb33b9a4aabc1b263

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 88dfe69052eab5b9256b2fa0dd9a801bdd764538f96cae185c8f20c275e8d3fa
MD5 8452220428341dba5224a814c065bf2d
BLAKE2b-256 b866c3414ca6f4146401e83d3aee20c461f8756cb799e9cdc85a6c66b6274471

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp310-cp310-macosx_26_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp310-cp310-macosx_26_0_arm64.whl
Algorithm Hash digest
SHA256 e7e838382382db9611f9da843e9fba509f6aba9c8fbfb09832129b7018a4fd6a
MD5 1d2d428e1bc592d541b76842ca7b7e95
BLAKE2b-256 21cec49984748db6529931a465075d0167a6f9579e24f1aab22ce0cf203b4e4a

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.18.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.18.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 504801ccb318aeeb4d29b59043f6833f8597bf88e99a3650e4bf7bd972ae4b37
MD5 353b758ea2e88fe8af0663ce0b0bf5c1
BLAKE2b-256 eb3083581226c2f89987a4b6c1c6279906cdbde4c62c9f74b68708cbf555ff83

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

2.18.0 This release

9 files

2.17.0

15 files

2.16.1

17 files

2.16.0

17 files

2.15.1

17 files

2.15.0

17 files

2.14.1

17 files

2.14.0

13 files

2.13.2

8 files

2.13.1

10 files

2.13.0

10 files

2.12.5

10 files

2.12.4

10 files

2.12.3

10 files

2.12.2

10 files

2.12.1

10 files

2.12.0

12 files

2.11.6

12 files

2.11.5

12 files

2.11.4

12 files

2.11.3

12 files

2.11.2

12 files

2.11.1

8 files

2.11.0

8 files

2.10.1

8 files

2.10.0

8 files

2.9.2

9 files

2.9.1

10 files

2.9.0

10 files

2.8.8

10 files

2.8.7

10 files

2.8.6

10 files

2.8.5

10 files

2.8.4

10 files

2.8.3

10 files

2.8.2

10 files

2.8.1

10 files

2.8.0

10 files

2.7.0

10 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page