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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.13macOS 15.0+ ARM64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 15.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 15.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

pysplishsplash-2.16.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 ef21f324b0dbbcd390077a6bde4b86c04e93245d0f8bcacf18db74cd7cc4c7eb
MD5 7a4507e838f6bf358aff87205eac22bc
BLAKE2b-256 3d16374b1cde83c2ab43f1b40d5f5c2509642742fb88e7dc5587f22a999c7dfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 63fa521ccd453aad92d0034d064f081a25e8220bff581ed1a5f3b6956466cbb4
MD5 ebc60edf726eee412693566f23393496
BLAKE2b-256 e9cf88d87350a6a94b2de3a8c2c0dc78d6ebe9009837b5a79cd6970264bf5dcd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 3b6acc554c5d8d4c889aaa3398cd405042dd4f1d13b8410643d156606d689742
MD5 d948b1218ae53b2546bbe56d9dc2932c
BLAKE2b-256 7e369c0bc45e68ca2f22127becea897208d2510efc3f2838b367602566e91191

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ba6b58fc488480be3a0cf3c69d1f1dca8648479867d94397267ae5a2414b49ee
MD5 1eadc70186095f61526cce3721775dc8
BLAKE2b-256 d4ddbc80cb9b83900fa894f3cb1f31ea5ae7255ca4afb2f73afc62c37c13cd2d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0aaa00ece67ccfbf663432bd1af1d6cbe96c3bf1629898a1c0693c49c7506915
MD5 9a4771a970149f028c9ccdafd307ade8
BLAKE2b-256 e1d24744e6925c6a390d6d45b7c72cf52a8d58c6b215a7de13a75cb356d45837

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 e4f96cd8c5a379aa79bf852f1cc12512884981c9ca75a5a84c9f5957193002a7
MD5 d352a06170e5df496854728ebb2c5d56
BLAKE2b-256 742d4e56cfb67e5a41712a14286b436680f5b565619e7fb55538970dcc1439b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b5f264872fcf537348e40b0bf012393a8e351b1dbf31003318ae4b12d60ec77d
MD5 5a6b779eff8cbc396510ac71168b635c
BLAKE2b-256 093346a0b5ce78d27317913d8679df39d61f607b9b5529fd36cf3e63af9a74c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c6925f77dc02d5bfb1afdc24a1056ccc555ab981dfe54f0b2e2770dd50969e3f
MD5 765b41c410c438540183082007e0b71b
BLAKE2b-256 ffe2b7352c9ff81789b89bbdc048d594f6db13e7d8e2f344209e9c983dcb4d21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d8bc18e74b1bf6a83c1b9a450225b526534edf00264f908658f34e4a6effc798
MD5 c95ac24f3c8791991e947aaa716f115c
BLAKE2b-256 dbe41104f4aec7359ab5c04ac0aef9440e7ba12ea1a9f496ab57a80669d41885

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2ac154eff47b1fd4dc79a671d93310ca9b4ce0e2fcc0e42dacd3ae0b476fd7aa
MD5 314475f476e9c40bd712af21cb9396f6
BLAKE2b-256 98c667653a9f2479ccf6eeda71a062d495592fe14d8c0e418edc701a67f5b575

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 25839dc375f14c2d5100643d67fca923cbd020fb7c425f1b5d734c2f2ae6274d
MD5 503c6764faac1cbb5f01fb7cb403c408
BLAKE2b-256 e7caed03f7abf039dc3267d3d8d9879b1c2e375d4dbc387d01ab2cc92438d495

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 96c5fcec217217d27699730e1bcb1a5573c76a74573ab52c9aa4573f12f12c83
MD5 d1b0007ca0fec3a975df5c93ecfa36bd
BLAKE2b-256 acb38a7779e85ff881db2aa719ea52126bf77e010dd962bd5f29573f4f215b18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 aa9de555dc668b4d2b304bf411a060fcd4386e63c34f6c30330ddef829991b64
MD5 448012e95f444c639c0f9c18b09e37e2
BLAKE2b-256 017bdbd4cd8f7c0135c47096fd447f2591226aea21a4090c2709ebbba01799c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 85131da78f1145bb467cb58df6095e8a43c2ee820b78f77bee4868228d44877d
MD5 d41e147815f4151dd18cdde54d9ca6e4
BLAKE2b-256 9382b8b625a4ec80661e8b4a8b68f959a8ae0ad42bf44b8234b2e29ffd51e8f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 c8fe21ccaee2d51f6f10f3bca7fb3e902b63ad2419c4e57fca048ada6651b436
MD5 e0f9ae8d43e6a46aa86059e26282638f
BLAKE2b-256 162795cab3994989b756c67c9e7441fcfc562017e9a15bbeea4a613096d2f784

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 aa9ebf60c5e884cc21ef7dcde9957ccad568bf8c2d989a3b19ef4021c4769148
MD5 75202a60e882cb7e18ddb333fe26f51f
BLAKE2b-256 07cf15d1784b2cad42c5ae14634e48d9ba9ae0d6a75bd72d30f87c65909af34e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.16.1-cp38-cp38-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 791bedb92f7b37a44a23bcbca7ad7d671bdc9e5df6e76d39b3e4f07cd8d2c912
MD5 be4c18510277f95a817e426e821a8c50
BLAKE2b-256 810e3f357825feaa988aa4d106cf39f32718e5e2c3ad6e4201b94ac0b1a3f6bc

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