Skip to main content

SPlisHSPlasH Project Python Bindings

Project description


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

Project details


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.15.0-cp313-cp313-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.13Windows x86-64

pysplishsplash-2.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.2 MB view details)

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

pysplishsplash-2.15.0-cp313-cp313-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

pysplishsplash-2.15.0-cp312-cp312-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.12Windows x86-64

pysplishsplash-2.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.2 MB view details)

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

pysplishsplash-2.15.0-cp312-cp312-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

pysplishsplash-2.15.0-cp311-cp311-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.11Windows x86-64

pysplishsplash-2.15.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.2 MB view details)

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

pysplishsplash-2.15.0-cp311-cp311-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

pysplishsplash-2.15.0-cp310-cp310-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.10Windows x86-64

pysplishsplash-2.15.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.2 MB view details)

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

pysplishsplash-2.15.0-cp310-cp310-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

pysplishsplash-2.15.0-cp39-cp39-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.9Windows x86-64

pysplishsplash-2.15.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.2 MB view details)

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

pysplishsplash-2.15.0-cp39-cp39-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

pysplishsplash-2.15.0-cp38-cp38-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.8Windows x86-64

pysplishsplash-2.15.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.2 MB view details)

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

File details

Details for the file pysplishsplash-2.15.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 6d5b9b9fa62d5f6130dad274cb65b068ad9ce2f1f0d0fa19022869eef890c061
MD5 1d947dd87d119f1135d579e7b080eb8f
BLAKE2b-256 f967a3865b417ac67f77440b35d5070781a62f19cfb6e97ec7c58570705b9a14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 193fb8d28d574fb43fbb5c97050ec9152d1253a673b43a45f4e9198ad7b17875
MD5 7ea6f20fe0c8077d7ef6231b872aea00
BLAKE2b-256 70a9f7e67a9b9507c1fbbe719fb7c40fc99eae4c6f1670fa714b68c626b7ae54

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp313-cp313-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 e51f284450e5583a37b4dc958910041245cb5f28d18aacf64f06a677e4c6a5c3
MD5 6f0d9c7d66295012b2751a1316f1ee39
BLAKE2b-256 d5f78c2e5d244940cbdf4ad880980cffbe75401893010f25b575b8e90fec5407

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3fcc1d53ca1b127e6e4576a80520931165486a2095bad9196c7bea327f98b898
MD5 6d65c9bf9848873f84ad2f4f9f5b19c8
BLAKE2b-256 aab8a824d484f4b7cd51f0a0413144d6822ba102d7a9c12cb340dcbbcff47939

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5d0f8db33a316948a3704ae5584a81fbf29493ca59b3201b968c4b2e93094d3c
MD5 bd6bbe5434e85d2df3886b72d017eb9f
BLAKE2b-256 a5b2fd91726621f253924959ef7e3772bbf352b24468e774a814dea5a0902fe0

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp312-cp312-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 aef024695df02478173d08645d1f98a10b4e9696d1f064a0687bf39a6108ec91
MD5 adc64148c1ba30c95fac73b8990c8c13
BLAKE2b-256 5db1ced121f91ea3fbea57e2fd22b50576d3dbb63932daa73289b7408ba3b1d0

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 47a62e0670d28036374358553a01cd0555bb4691e29af10ea3c318c74b896838
MD5 84e88dd9ea37319aa0d20552b2a9072d
BLAKE2b-256 7584d659ac33cab9025d20a8d27ea4ddb0ff36966d9307614e865a9f050908bc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 01ceb87e5a9129d986ea51cf301a1b4df832f289c56e840ef6fba9ebb1e8c80a
MD5 f4576b17363f2837b6fc4ccc2d940da3
BLAKE2b-256 5bae52d90476b12b3e533ad1b5c103710b7335f2b41efc1582c84e0358caf4e4

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp311-cp311-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 314b195c112ca54eb38b91df6c9d99cc94af1ee5d35dd3e2d48e7fc50184e3ad
MD5 c2799aa9541408544a7042e32d1c12f8
BLAKE2b-256 8ffa11e8ba639768715132ff0c63fd755c63ffbc8a7025b563c1dcf576dffbcf

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 8592b3d340619a22c1058af7ef10a1c505478552987bf664ba1e61c7a036227d
MD5 b946358d3c42ab00ce0c73a6176786eb
BLAKE2b-256 f682b0ea45f0d9b64dff20c87d870d826387b68a9af6e7bcfd971a6a9ce468c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6c225c63d23195e8185947af9cf47219192056c0cf45dc0f8fdaf3619f2aafce
MD5 13a9f52ab00e59c1c313251f2a85ace3
BLAKE2b-256 f3c69e4a2b7a2c8492cd75fd4e58a1af922e7bac78a0bc8a4100099581d52a72

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp310-cp310-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 a9c8546f73a4ee91b7ab38f0bf976d78b4b76f087e3a5fe167c95d23d6ad4fe5
MD5 5841d3272a94e9d55b139606b18d61cd
BLAKE2b-256 0c6a627d159bab38187d22c55fb7b64e80e414914d60f4c981fe327d1d80e461

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 48b75cef827c270ee2dc4d8288fe7b578ca531ea32759514c7ffe267b0d9cca0
MD5 94212d0364c9a6551ea2e2d6bb25d217
BLAKE2b-256 197c095ac33d5a7ba9ab2933c626ebfa6ea08ac70d4bec1475ca73dd09b622a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb5cc8f6e74170955ccbcaea46960d22b8eac1c5c72c9a30e27b849c2546e556
MD5 4c8ad7ce0247a69a66e8e948fc743541
BLAKE2b-256 a520f4402fa693006fee4ed250aa5ebd729473c810bc2233ca6ad8615de2fa33

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp39-cp39-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 7fdcedce272cbbbbd5cc72acb70c9d0a03e61f3af8556e7513e37acb78d2db1a
MD5 7cf27bf7303a8f874b678e9b26292dba
BLAKE2b-256 eaa233c98dc48ea1ac23e9a68be6c054696947fb3539aa930fd15cdda2b2d9fc

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 6367d9aa1992ddbaefcd712dd68a472c15186f6280022b677a82777626213ccc
MD5 7869ba64f8676f6a49ee52cf0965033b
BLAKE2b-256 364127b90617abb20ca6c46a2ba4fb8a7247c8386a5605483fcff3b91587a422

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.15.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 db3f3713bc81ab7657422d6b0e6075dfff10d40386949bf9793964df35436eb3
MD5 e17b1351451d3af914818397197e4e2f
BLAKE2b-256 4c3944a85c6e161277ecc0e0d0f8e86544be672cecb45a2f6e1b002902b5f8d5

See more details on using hashes here.

Supported by

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