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

Uploaded CPython 3.13Windows x86-64

pysplishsplash-2.14.1-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.14.1-cp313-cp313-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.13macOS 14.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pysplishsplash-2.14.1-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.14.1-cp312-cp312-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.12macOS 14.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pysplishsplash-2.14.1-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.14.1-cp311-cp311-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.11macOS 14.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pysplishsplash-2.14.1-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.14.1-cp310-cp310-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10macOS 14.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

pysplishsplash-2.14.1-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.14.1-cp39-cp39-macosx_14_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.9macOS 14.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

pysplishsplash-2.14.1-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.14.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 66ab1bc951cfebbd51241b1787b8f8ea51485cc978ea5ae75ef3b8849b5d054f
MD5 7b0c240cc2f14bee120548e6305abae7
BLAKE2b-256 b15f5d0dcaa633b6118f2af2409025a69cb2a98199162585f6714587e87c62b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b4beb4f10d233fe5331c5673bd26de5e5dec77f880b485d7b6535fa1e81d679d
MD5 7a721bc6c926929b70b3b8d6eff7c197
BLAKE2b-256 b4c270dfda2b7c7016a287bc397ff6cc03492723839b4de15ea980d0344d3bcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp313-cp313-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 336d300b9717d2f334d35fb72af9e1589463f6e2ada394af68c56b62db5c1f90
MD5 0694f9645c8267fd98b917d4aefca802
BLAKE2b-256 d4d8b2ed3edc1e378a76dd907ffe125399da0e9a95b8ad57e5061b924f409f8c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5901bd61de01576b24e92dd3e0b1a19307819d152db951e7093889c32ea86474
MD5 a7d40aa96c7f273bde58c1fdfb03e2e4
BLAKE2b-256 d1a62b8e1531ceb860e037e2e7f4778937443a4048137834ffc9e0571b46c3fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4d07498410bfcfdadcdf7a1b696fa2d607a7e3c0f4814bc0284bf689b962fb7d
MD5 0db44f7ebc8ccc7eeed9ad377389022a
BLAKE2b-256 04b2c3115f790adf131a6c5a5ac1c7c747dae68fae09a9aea6099d7ade400df5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp312-cp312-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 30a38f516a9ee0b433de9778b59d0829435e6d7801939c8ebfa640597d9c5c26
MD5 92a95e4fa15f0e92d45379d39be4db82
BLAKE2b-256 c811482c7909cfbacf979e37024077202c8bcbbc8097d46ffc9aa8a9f4b917a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 df91e292447d69524deee70303eb968afd2a065d22343d50c952657eb39b785d
MD5 f1e6cbc08898b36a8f50788f254bdfc7
BLAKE2b-256 095bab7be7b9289c3d28299ebe0b89bc0c6dba10e6e356b60673ca7d8feb016c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 10947ab5865b7b9f0a2fedede8a0896515b5186008a4d05e8b3deeaab3981d34
MD5 4ec3acc59f49d03b8058757f4655b537
BLAKE2b-256 b314ff765a5023035574891191a61a895f5624e04c40bba1016ac5747e3f7e65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp311-cp311-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 6408a4de2a11619e22bae342054873f90f42996eee1fb5e9e5bac6185052f19e
MD5 411a26b1fb9a18e774958687d4f04c95
BLAKE2b-256 3d1d0310c908ee59dbea2ee9369c7e9112553978778f65d3520aa326e275112f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c59137fd74b04dcd7fd09744733327680b58bd348665d6204977ba0cf0199b4b
MD5 6ca492afd51a2fe3d6ed86095caa482b
BLAKE2b-256 a21489965732638ad5eda7eaac6980edb771b1f6a95960affc2f68c39dfeb17d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5516bdbf21a8b990f971bf93e3a4b7b91789ef08e0b6bcb70e692adf5a06236b
MD5 30bc2f3fa36d4a5c963b57dcf89391cc
BLAKE2b-256 4b8b8897d0acca875a41270530161929a85801b755a85204fd0a8fb028489060

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp310-cp310-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 3701face9c0b9cdee95b0ed822e03de8f277212d6647dfcf58478bc229c47b02
MD5 7d74655f13a1a3aa2854a52b44bd3a78
BLAKE2b-256 fecea232d19f9261fccecd1ec602b104fb3573f24a3b0c8e4c6fcf36981b6a5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5e29a39898d1db2ef804f486b7506aa3ef99a49f9e7d74439b4878f3db04e52b
MD5 7c9f4b8f6e88cf7e4973679523ea83d6
BLAKE2b-256 49898fe1549dbfbbb1a977311ed8058f489beade26f2474dcf110372772fcf90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 47a525fd2a04094551b6aa8b4958f01313611a09ccc679694b44a395303f086a
MD5 a04916ac410461a401524f70a5616c30
BLAKE2b-256 33652e19f40a8b920bd4e64220bb19ef01cc43e73f51693ba105d580fc957a8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp39-cp39-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 90005e77ed0632efbdc64cbbc681b95a1173abfc71434d74d3bebf8c362a02c8
MD5 0885ad2dd291b46b31d8e59c0881a6db
BLAKE2b-256 9be1eee2297d32adca1017f96e808e0112a27d442487a18bfb547ed4c5d4b483

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 eaeecb56d163e616481dbeb3289034d1ed2c0166b577120d124a5b8c6815d902
MD5 3d0bf18e13746af22a297cda1a64f970
BLAKE2b-256 e47aa72508455bbdcf1c960e82c9330c66c37829ad09cd0dd939aa7fe27aaccf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e4782441da5ef8df07e70f5e85c0bcea88f23fb4eec5c6c6c723139d0503ac03
MD5 a496dde3d1befde15748c5634febf062
BLAKE2b-256 d35a236c3c594596c86ffc87a708cbadd6fd421eaf2d633881c9233f7151dc15

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