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

Uploaded CPython 3.13Windows x86-64

pysplishsplash-2.14.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.14.0-cp312-cp312-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.12Windows x86-64

pysplishsplash-2.14.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.14.0-cp311-cp311-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.11Windows x86-64

pysplishsplash-2.14.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.14.0-cp310-cp310-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.10Windows x86-64

pysplishsplash-2.14.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.14.0-cp39-cp39-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.9Windows x86-64

pysplishsplash-2.14.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.14.0-cp38-cp38-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.8Windows x86-64

pysplishsplash-2.14.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

pySPlisHSPlasH-2.14.0-cp37-cp37m-win_amd64.whl (4.0 MB view details)

Uploaded CPython 3.7mWindows x86-64

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 fb06e6da3d8526cc0ca9e22ce6a127c9262fa17e36ad9c116df43c068cb27a71
MD5 39db0e46111431d81da7a017d2c8e578
BLAKE2b-256 af88695fe5845c74c5935562eae1efe208dcd123b6155a26cd8f18b2fa13e2a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ad53cb0f18e3b5c4c60af3c8c244b3554f6262248380c091a5468c1388d0e0e3
MD5 3791c1cb10f1074c030363ee92f7f9c5
BLAKE2b-256 c49a59753a21932f1fd7b8345ca361585bc88b721b00bcbced19e6a450fa82e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 eeaac5987a8390a1dddc151d7f6e05052bac7eab84fe3364ea0a307243201285
MD5 f1c7b51d068301a65bd11969cf67bea2
BLAKE2b-256 cac3ac9e4a5de5ff3153ccbb2059e35eb13f597010adcc1d1531b7273ff26771

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 593e759ec54d339866f18b224f2f39654fa19a923a2719b55c9daf66bbdbec87
MD5 ef63c60e1031192529b555a01ac667c4
BLAKE2b-256 099156635c0521b077f8bcd5a0cb61bdaf6101506a5b1e86a4ae1d1d0ad9a94e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 dc9b4f7549863b2a741835b532c9cd4658bbf63faf8275d17d1a6b309d72605c
MD5 be78c4a920c41569019efb829e7a66f7
BLAKE2b-256 49727f5b4ff9ba5da876666c717fbde851e6f695fe2d0fba26667af185be1689

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f900581df762381454c035112639a791aa654480ddaed920a42cbecf67a2261
MD5 ec6a79fce2d903ea5b08e95faf64ec1a
BLAKE2b-256 3d463a2a5a58ae5b01c59aad85be24b433e47d25cbf9a53a116e5a3a72226f0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3f7c8b1dfc0160ddb37b33ec7a4e94be67189abaa7ca49b3075a370060b24ab0
MD5 001563a33cb12ea7ac13ea94ff12555b
BLAKE2b-256 edea6817476c3d2c1c032f23baa90b0c4b195526ca7690a90f296b28036d704d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 56492deb227b08e8de48dbf3309fb22596b214943f277a661688df80af9d279b
MD5 d931555efede961a62f83b0006e5c634
BLAKE2b-256 4475b78645c07857b70b8dad46615e09164148ecc641f5449a45f6d89d8c042b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a98aa91c1978f3370eed389c92ed10797b946014f1a84915196a138fced1eca0
MD5 e9cfafbe91a8aad63ce5d7c722c8da76
BLAKE2b-256 6e9de79b840fc32114798b8fb02fa7dc20c616fb2340ff9c916c7def66506896

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f06121673e83b2db4474736f4134b35d4533a8110ef4d024f0392e47ebcb469d
MD5 8d6ed91207fd5d960217d5dd4ce82a38
BLAKE2b-256 5a496e411ed00eb587f03413a64000c7c876016dbfca901c90d98d10a5e11c25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1a17c930ba0511b6ee334d9c9d55e6c24edc414d086f23124d998d5875503bd9
MD5 cb875bb993d677ffbf3400807c720b33
BLAKE2b-256 02e974270a2fd7904241d42deb6f17ff5ee16c3d6c154468d8c3b47b32581aea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.14.0-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 51ae58a1c5efe2a2c5bac085f094a5a0f062103479c8c47b7376d1918cf21f69
MD5 8d5fc8093f9e683d58b107edaeee3d1d
BLAKE2b-256 e63cb52761af6650d7a6ec93a2a60255fd372ad4002637a89a3b71a4df3ee5f3

See more details on using hashes here.

File details

Details for the file pySPlisHSPlasH-2.14.0-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for pySPlisHSPlasH-2.14.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 948c28bad4cd4166488b4b04815ee75f332f6f0f6a6869f665da3033920be4cf
MD5 e6e35b0834576e4919c16e975f905325
BLAKE2b-256 b7e08f81ff5caee5d6cae92ea67463ed5b0bbc23286d4325c237e0b2b42066f0

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