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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

pysplishsplash-2.15.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.15.1-cp311-cp311-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

pysplishsplash-2.15.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.15.1-cp310-cp310-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

pysplishsplash-2.15.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.15.1-cp39-cp39-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.9macOS 15.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

pysplishsplash-2.15.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.15.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 7c10051da3986c2964da37a9c9eed3baec183414153f104fbff71641fc1b3e7c
MD5 aa0669e5aa39e201efb1e22f0e37039a
BLAKE2b-256 727cb2bf7155ecba7f37e33d49411a73b4fe266abd788b2d7bb3aa30cfb8b74b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9832ffc46b17dae153eb382a0c93fd26f05ade646c8b77d50551701c9ea23e07
MD5 f454a12346a99a72b68e7aaf32212fdb
BLAKE2b-256 b6ff2b71ba9412f0905b1fbbe97cbb0228844e5862797a6269c31e8b219174d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 be1fbb2e5fce594b7daec034c328846ff8f5238853e084e54e0ce2132deedd5e
MD5 2dfcc040517c7a6f80ae8f988db50d83
BLAKE2b-256 285f67d0a7997b66be3b79b42ea0c38ceb6c4487bb9951fa6b11e41243c61d9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f76d55fff099d4d26bc11e19b46c8ddb7c594867597b6e0d79a9ed593d6ffef8
MD5 30b1bd76fd3ae49a39f61e027f9980a3
BLAKE2b-256 bc3784cf6446b426a6774c0c018460aaabbd6a3ce2e231525e29ccbbdc871650

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bef92f85bda99667bb97c7ccb30ca8226495931710194d36d334aa2a422b3664
MD5 f4222f93fbec7f4bb65263641d7f2b32
BLAKE2b-256 7b3f7d5dd773c418396528421fa94cd35063d43a1bbb62490b21a71b8d1a217d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4ae0bb175a3437d9d8eddfb606ad87189bd7fa9f1424452c2a706017ed238023
MD5 25777fc7b1fafdc892640e006143c224
BLAKE2b-256 0cd39687998371c0107f7bbea2e39629eab3742cf2b401131aeadb7ae5ba9a56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 62718f83b5876b56f6a88c39b8620319ce31d5d562c5f21d6f3dab4923df4a2a
MD5 7e9b72ae8f5e8d50fa0d5613a3d31b3a
BLAKE2b-256 51334b436e69ef7ec2ac0eef99db6b4596579f9401606ca7e687270e0f0c3a90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 08b7c68a313bdff0659109ae8215b4822d1b73c5656e0a619c405a1d274499ff
MD5 9904e6fc3f68bbf0a85f9d9961eb1f3b
BLAKE2b-256 89f32d02ba5efcc896c427d653618681c9085d791fd175909cc3ade3f47893c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 1da4ab2bfc799d4b52f0769c86205ca8840c3bf90de4f55938436ae05822bd3b
MD5 ff25e90138412d3ef2ddd80e31746818
BLAKE2b-256 f5846b062e8d17e3f675857b8d41b6585f819800e8df7e6876e871e0ae2c871b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c9e49299c23133719387e6eb0778feb065c9eb0ce33d607e7f1e17b6608eb292
MD5 1038e367dd4ff80d1275424313010adf
BLAKE2b-256 978cb55e04df4fa3aee621622b5fbe9e1bcf85192985b0581a40677f4ec8bdf3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e8332b44287242983277d8b9d239f68d53008f532a7cabaaeb189016ef693f9
MD5 f63662918c93696e998eabd6ec51e19e
BLAKE2b-256 a9ce9cce12d0bd12b69b786e6dae32b745e449e17f7cf4449ace9de2650a064f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0b2cb93388d376de4639638449dbdce36782efca0a45d3223c3d77b8c2566727
MD5 786ff5deb8b8246cc97e007e73f06a3b
BLAKE2b-256 9e04b8ea5a73dfd7058507cf7764206db2115674e8ae033a032704b2d45a854e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5d8f832c39861d7d421aa6fee4485bb5f34383e9ca7ce544e26e2ea404435907
MD5 aca08fb5dc9081e7eb7f0ebfcf456032
BLAKE2b-256 c0006b5cf8ac938f2a0391cfc6036635f6eba8162f0efcf5b17909a2155c3c56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 91643897ac3949bc4ddc5645c385fc649be505edeee905cc1d626d079bd5f944
MD5 a4251c87e52773e39bde0a0f05a3d2ba
BLAKE2b-256 2b99668a762edcf1c5c3777791b518fd3a6393ef8f6435183785ebcbaef86ec8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 432d46ecd272f0f68dcf490c172a6ab04ccc32caa679ebb9ac9dbf35f34f1bc2
MD5 9f37550d5d4352dcb624529fbad7a20f
BLAKE2b-256 30d4ffb6dd000d33ce157498a979e8104b8d2dc934341de8080044b2282d61ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b8f77b0fa1bf5eeb4e511db9d00a67413b84040ca5cdab4755e45b0ea1ec5389
MD5 f1595edb2c61fd3e4997c7ba1a7fab45
BLAKE2b-256 5dea08a0c885e75a857f4dfbc63b6490de9a8204faf1ea067aeb39f2bcfdfc62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.15.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd7ec384f5518349bdbd89752c505d72a6d385abd67b77e263d77a1ecbfaaf8b
MD5 55bf9ed7a9fe1bc4f9c77c31f2cc0076
BLAKE2b-256 547a42de434bca55c8163ce5b3e9a86c1940a54971ef6b9e55a5e7dc9bc1f8da

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