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

pysplishsplash-2.13.2-cp310-cp310-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.10Windows x86-64

pysplishsplash-2.13.2-cp39-cp39-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.9Windows x86-64

pysplishsplash-2.13.2-cp38-cp38-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.8Windows x86-64

pySPlisHSPlasH-2.13.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64

pySPlisHSPlasH-2.13.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.12+ x86-64

pySPlisHSPlasH-2.13.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

pySPlisHSPlasH-2.13.2-cp37-cp37m-win_amd64.whl (3.9 MB view details)

Uploaded CPython 3.7mWindows x86-64

pySPlisHSPlasH-2.13.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.6 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.13.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ba686865c23c5affb080647d53b8724dbd439e7b23449dc20be4918d096110e4
MD5 ab413138549d95d79dd9bfecdeca5ccb
BLAKE2b-256 7aa5357365ac7826c37d9938b178a0faa9110d329fd2753aaa12d61363f0b480

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.13.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 499aea6f8d3ea75462bc729d83eb16e706212936ac075d1ec784458414f887e5
MD5 7c4fe05b88b4202647ec7ced729365a1
BLAKE2b-256 2814854abe350b95e2355baa725db638bce7640cd3913a7392d9ea437ff206c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pysplishsplash-2.13.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f8a77e409847cf214fbb3a206e40499c5f1ad67275fa612259a6a6b996713445
MD5 b91ae5dfda84cf3d2ff7a55cb7689470
BLAKE2b-256 0d71206c9c072bf7c558302f55e704381e8706110cd4b7979c28882024bc4535

See more details on using hashes here.

File details

Details for the file pySPlisHSPlasH-2.13.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pySPlisHSPlasH-2.13.2-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e3ebd2ed866193fcf441c06522c69c28173b79471d15dfe3901e2b73f53b0007
MD5 8a661cc6d0739529cbf22f296801cd1a
BLAKE2b-256 e97dd0d2fc168ee6005d5f2a2ae122ad9a5af9e0009ce0303a81755fd200b035

See more details on using hashes here.

File details

Details for the file pySPlisHSPlasH-2.13.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pySPlisHSPlasH-2.13.2-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 18f3cf2f6418c14a0a89550c322ece0b7eba7973e388ba4f20636df05f12832a
MD5 44859c364ec2df863d81195475f8c3b8
BLAKE2b-256 283cd595b2f38a6740981654957036f5b2274a4d9a51af4e6b3251f890efa65c

See more details on using hashes here.

File details

Details for the file pySPlisHSPlasH-2.13.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pySPlisHSPlasH-2.13.2-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 8a8e38cce95ee3ff5dd9b3dd4ca6605a7e86526b80433fc922a0c7c8745e4dea
MD5 a3c72ef1f9c8f3207336193ccc0a403d
BLAKE2b-256 63cdfbdecb2c59af4cb4dbfb92479b7dbaf9c09dad72be9b6d66150140644203

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pySPlisHSPlasH-2.13.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f9cc06c57f9822ef8c198ef6e697e9c193709a59467abc98a88090653c563569
MD5 276593938dbae5d9dd5ee0ecb8883282
BLAKE2b-256 e31692b1c19b9e257e7c43a25593577847922d8c1ba38c7fe264362c99fa8726

See more details on using hashes here.

File details

Details for the file pySPlisHSPlasH-2.13.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pySPlisHSPlasH-2.13.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 7058148fc037ab190f3a150ee4c2672e10a5494bb39889c35801af616c8d3aef
MD5 9480e96529bbc3e23dcf55032d69833a
BLAKE2b-256 01f1e95052ea00f74de15db8c4493103f2110bfd7c667f169e1dceceea31501d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page