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

Uploaded CPython 3.13Windows x86-64

pysplishsplash-2.16.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.16.0-cp313-cp313-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

pysplishsplash-2.16.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.16.0-cp312-cp312-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pysplishsplash-2.16.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

pysplishsplash-2.16.0-cp311-cp311-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pysplishsplash-2.16.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

pysplishsplash-2.16.0-cp310-cp310-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

pysplishsplash-2.16.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

pysplishsplash-2.16.0-cp39-cp39-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

pysplishsplash-2.16.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.3 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.16.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d07c33b4a03663d2dc6a878837de8b8bd5bef229a702cbb2df82acf52656e4f8
MD5 74ccbd083fea099eaf36e4e8ed7b0b2b
BLAKE2b-256 0750be4d649d8e155834724865a6e0d8db2adbdad8a02fd29da1dd732f547494

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cfb825dd38fae1c14e4416c84094de55657735a1b60d84bba22a05e04207d76c
MD5 1e6064b50b53f70f95b52db99d609ee8
BLAKE2b-256 fba77f02950219f2cd0f07b2d20e03ed908e7260410b17434a327f793cbccfb9

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.16.0-cp313-cp313-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e52300041820e8dd570f2b3b4a854f68c6da3a617fac4372645399192fa497e5
MD5 b981c954f1331f9fab169fac4e7b1978
BLAKE2b-256 641f9de7c093d1dc8473e6fb84aae2e9a04e346068bfa6b104e0b10389f201d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a74b0d05cd198f6adfb950e46dddca57ad2f2030b07f7451baeaf98094f62e9c
MD5 942dc3c670e31641b74783846a27f5a9
BLAKE2b-256 239d28c5f0102f2566e9533a1761f546057752b03aed7767cdf30b706d2afc57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e028fc5d29ca83c44cfde1840900f0050ba824111019feb822e5c6584c3bb4dd
MD5 8004314f1bc528a68729dbf32cdc6a66
BLAKE2b-256 607953fdbfa845ae777f9473c570587bebc4543c965325bed2e4678e25fa82a8

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.16.0-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0c573cc5bb6c669f3611dc17d36aa4caecb61add5bd1bf5f5f532f426c64d0f0
MD5 cfae366d853edb2db09c8019d86f961f
BLAKE2b-256 9fe7c9bae1704884438e9ac979edced642b04d64708497b62d66b36857888aa3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a162c5e08fe0a65055713499e9c3b150951c69c6a58cd529940a643e2b1a734b
MD5 4c18c96ce50dbc38c84087f883ee53ed
BLAKE2b-256 647c957223a70623906775eb7e82582ab3ff730517cee0072c6fbca9aab56b64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4616311d64382c6f5e4ca6d47b2b70b1a96a667c9592013b2bbc38acb623ae7
MD5 2ad38c209f8a57e502fb5852f280f129
BLAKE2b-256 99cfa9be0a66b055a8916a28d9f7210649dede3c75c2318ed1736fa4c23caafb

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.16.0-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a3bb0d13feba78a1001376681bd9ca55a0f141912a864857e415cac42c38c532
MD5 b2db817136b6ce043280095565fa9457
BLAKE2b-256 37a70b4f62e8b22cd19468e7aecc95a8e4d4b6887562b5e5749b757cccaa1dc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 bfb4e41d17bb9ca6f11d235ebbbe370adb4f728b8f3ac930611a0b5164273764
MD5 7a9d0922004e9809cde76f888664f28f
BLAKE2b-256 8391df7f1d95c0f881624213b190e5d19b9e8b73efd754d4e82618c9382ae120

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 715ffa364ade85cd5dc52de089cd3ea7506c18be723c3fc3d658916b2d8ab563
MD5 a87ad5b30e17b0068f1a8d5c0a0d06bc
BLAKE2b-256 e3aa04cb83679344f51efec210a2a586362993dd1547e02c879976ac3f6b76c5

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.16.0-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 493936f85e45329232ab897f2e5e2ba6a0f8ca09b828fab16b0888c477c01599
MD5 12f9eedb4e9e7be5fd112e04a1ada756
BLAKE2b-256 5e2998c681b66cb809b751e8fd00ffa87220159e78f2f98a020230be30bcc589

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 be4d8041b418b55beb5a39d37aa224fa9b94f6e6deb0e0fd9406c7c80d6bbf8e
MD5 1ba50808bca2f402d0a4d2bad20f89c2
BLAKE2b-256 a8bb4e4952afccaf6d0729616411059654e81207312435e1670a1b7558b9ca92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 72887e3b5eb303d0e89c66de0a3d093c21ff93612b09491bbd2e2b850c65b837
MD5 2b88af196eedc04f4c4d36258ff41af9
BLAKE2b-256 a08cde97206e16f810604fb2ce6f0b05794dbe3040e30bfcecd817b10be6dae4

See more details on using hashes here.

File details

Details for the file pysplishsplash-2.16.0-cp39-cp39-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6f423e781d016d5f0415745936ae5ce5df653cb9e4bddb7337302bc508aad466
MD5 69c54f89a774ed6e5ee46f5c1153aa71
BLAKE2b-256 7a932679f473c9b096e306e3228e61408567ca4b1c5f20a5318bf537b622b191

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 894c05dc56b27b20dbc04a3df4a3d56f0f9348b69fdc6770fac0e1be7053b7b1
MD5 4ac759a50062ccd9c37de340c4d1c95c
BLAKE2b-256 04e79e6272abaf4a89957db6177b94a5f4041e2a44310c2c2c4590ae8696d21c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91f2ff922942acb9019cbf74618fe28d50fcda8d9293821f3590939cd2c300bd
MD5 40db57bbb9caf14f66c8931309cf2c34
BLAKE2b-256 084b001e23b24882b06a3c29ea7e6de05d52300df9bc5aea814056e8410c2706

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