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

Uploaded CPython 3.13Windows x86-64

pysplishsplash-2.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.3 MB view details)

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

pysplishsplash-2.17.0-cp313-cp313-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.13macOS 15.0+ ARM64

pysplishsplash-2.17.0-cp312-cp312-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pysplishsplash-2.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

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

pysplishsplash-2.17.0-cp312-cp312-macosx_15_0_arm64.whl (4.2 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

pysplishsplash-2.17.0-cp311-cp311-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.11Windows x86-64

pysplishsplash-2.17.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (5.4 MB view details)

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

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

Uploaded CPython 3.11macOS 15.0+ ARM64

pysplishsplash-2.17.0-cp310-cp310-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 15.0+ ARM64

pysplishsplash-2.17.0-cp39-cp39-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 15.0+ ARM64

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 14002db14f96541068b6332e50218dfeab4a37d056f75a87b1853367772e7a38
MD5 8a2b7fcab3010ee50565655b05b30b2c
BLAKE2b-256 3d6bb1712bbefce32ddd41ed46b9717398ee62992740b8c3b6d3cd8c917804ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 602bab39ea30176dff3610ae8f6399279076485e096fc92e92dcad50d2092411
MD5 80e4ab092b019243e24d4c60135d5715
BLAKE2b-256 4f7f761a280fd55eb8f61ef2d1174f1ea4903755b63dbf1935b3f26bcb993a40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp313-cp313-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 2552c1515ece9912fc7af40e34e66fe6210b619d6be687fe0015398cea01f5af
MD5 a8ca2f1092203a7974b270777a70ba81
BLAKE2b-256 0bd4adb13751248c285794c35dfe59fade4c31f6cdb011ef425ef5eb256b0b11

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f7ee68cf188d5a3988551a71d78113e2e622f52dd9db7d82a21743ff6009fa32
MD5 d90d6a41333ddd424dab25e09a90d285
BLAKE2b-256 2e2c7efd4c37996d80c060598feffccc60668f9a278542a49c3fd102bd787dd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74bdb95a408449b4a9de718eca4f758f8c002dd3535a2000adb6818e1ca124bb
MD5 ce692daa40ec5cb17ed6604ce15b8543
BLAKE2b-256 7623a1a8c4713ab7b4ef92c877ed6585cbd70df9abc07478211530b09e586762

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 d1aaa06c45924fac71b3e2b86fed804e7f84415d502e3863760d46526851baec
MD5 7e786e14370087bb59b8f5386dcb968e
BLAKE2b-256 1cf3d56f4cabef7dfb7c68fa2ee5697ecb38daae997b3e2d47de9dae13f478be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0f18d865df2c477e731f9f86d4f0e7a32f6d35bfd9089b4edbe9f3c69d948af3
MD5 82e09a07f552f8cac34df155cacf342a
BLAKE2b-256 66e9edd76952e72543953b2d5f4fe737929a4511e77969499d9028cb010d5a9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a5fc94e7a115a985e4e44fadfb00ebdc62e95feffb055e7795674a70c7b51b94
MD5 2bdb15174205f5e5e3945068642a3f55
BLAKE2b-256 e5a9c1e0523d5ec0219dc53fc0954f029b569cdeb853bdff8302512dfba40b16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 44180e152dbf93628a6c24da600fe6356b42be6ff1a1c3f528d3d73665ec853e
MD5 6c51b5f7b008cb9fabdb3b8fd569c117
BLAKE2b-256 942c0e01ca31bcef8d3770965c22b205eb7bdd9baabe98defe9c3c14a48a9495

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d35c43d1f3ad516ac23d5826e621d110c1796bc1c98ce9f2e701ea976a699c56
MD5 fc159d63d28b4a8fba51cb239ecec755
BLAKE2b-256 bddccf51f10e86116ec9c2d6d38cc720c63a24f3770e099a69cc4505985fc5d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16d1f692c16207f892e4e218eaec3eaefc3817c468729b10fc94513eb0b81146
MD5 4513802a777df8f2bcee553ddd3892a1
BLAKE2b-256 0a9bd6ed3f6d26e13f801bb9bd245aaa3bf5614f9e3561860f32a63dead6f462

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 958ed38c5e2d2d99c57fd48a8ec8aa1d52aef2f501023e92a8fcd0a3195bb8cc
MD5 e51c4a25c1f8202c66f27dd100cdcb5c
BLAKE2b-256 3ea9be81ee60301090146928bbeb3d2fc58a4009c1f880ae162ce42991edef58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 e7458ac9e363fba3da4080ef0ddce4e2090f9354d66a6077a8a2d2bd6bb1a5eb
MD5 6f2f49fbbb51c67d837b6cd24d392df4
BLAKE2b-256 6cf56f45f594c7f4c644c94bfa9e3f042d9b2bc2196cf1eed0dbb8dac4092353

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ec7fced093086ed99d8e47ea40d9d60ef95821541ddeb494fe83f2c40ab19adf
MD5 41573d7133a02098ffeff851337f85da
BLAKE2b-256 1536411fe878c574150ee4bb9f71720658904e6340b6823a8dc1ca90a562ac9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.17.0-cp39-cp39-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 902461aa709ce8fbef5b8260b13facc756e2bd6b2ec7dba8b285ed82cfc6a17a
MD5 296678aaf143f6a8a48b5df1a649b76d
BLAKE2b-256 993db28683dafc3ff82306bf2982b017d3f1d992bc88fea3441740d2c909b364

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