pysplashsurf
Python bindings for splashsurf, a surface reconstruction library for SPH simulations.
What it is and what it does
pySplashsurf wraps the Rust-based splashsurf library to reconstruct 3D surfaces from particle data generated by SPH simulations. It takes a point cloud of particles and produces a mesh using marching cubes and related algorithms, with optional post-processing like smoothing and normal computation. The package works both as a Python library for programmatic use and as a command-line tool that mirrors the original splashsurf CLI.
The library depends only on numpy at runtime and optionally on meshio for file I/O beyond VTK format. It supports both single and double precision floats, and the prebuilt wheels cover most modern platforms. The reconstruction pipeline exposes parameters for particle radius, smoothing length, cube size, iso-surface threshold, and mesh cleanup options, making it suitable for scientific visualization and analysis of fluid dynamics simulations.
Use it for:
- Visualize fluid surfaces from SPH particle simulations by converting point clouds to renderable meshes
- Post-process particle data from computational fluid dynamics to extract surface geometry for further analysis
- Generate mesh representations of multiphase flow interfaces in scientific research workflows
- Batch-process simulation output files via the CLI to produce surface meshes with consistent parameters
- Integrate surface reconstruction into Python-based simulation pipelines for real-time or offline mesh generation
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
pySplashsurf provides Python bindings for surface reconstruction from particle data in SPH (smoothed particle hydrodynamics) simulations, available as both a library and command-line tool.
Yes, if you work with SPH simulations or particle-based fluid data and need surface reconstruction. The package is actively maintained, has no known vulnerabilities, uses a permissive license, and covers common platforms with prebuilt wheels. The medium install friction is reasonable for a compiled extension. Install with caution only if you are constrained to Python versions below 3.10.
Install
pysplashsurf on PyPI
pip
pip install pysplashsurfuv
uv add pysplashsurfpoetry
poetry add pysplashsurfInstalling pysplashsurf
Before you install
Medium install friction due to compiled Rust bindings, but prebuilt wheels cover common platforms (x86_64, ARM, Windows). Active maintenance with recent commits and no known vulnerabilities. Requires Python 3.10+.
License in practice
MIT license is permissive; you can use this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install pysplashsurf
import pysplashsurf
import numpy as np
particles = np.array([[0, 0, 0], [1, 1, 1]], dtype=np.float64)
mesh, reconstruction = pysplashsurf.reconstruction_pipeline(particles, particle_radius=0.025)
Requires Python 3.10 or later. Optional meshio dependency needed for write_to_file() and .bgeo file support.
Verify before relying
- Performance characteristics (runtime, memory) for typical particle counts and grid resolutions
- Detailed comparison of reconstruction quality vs. other surface reconstruction libraries
- Stability and accuracy across different SPH simulation types and parameters
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 1 — numpy |
| Maintenance | actively maintained — 146 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 86,432/month — #13,864 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pysplashsurf-0.14.1.0-cp310-abi3-macosx_14_0_arm64.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl; pysplashsurf-0.14.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pysplashsurf-0.14.1.0-cp310-abi3-win32.whl; pysplashsurf-0.14.1.0-cp310-abi3-win_amd64.whl; pysplashsurf-0.14.1.0-cp310-abi3-win_arm64.whl
Keywords: surface reconstruction, marching cubes, sph, fluid, particles, mesh, splashsurf, splishsplash
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pygmshpygmsh provides a Python interface to Gmsh, a…
copyleft · top 15,000 on PyPI
particleProvides a pythonic interface to Particle Data…
permissive · top 15,000 on PyPI
meshioReads and writes mesh files in dozens of…
permissive · top 5,000 on PyPI
pymeshfixPyMeshFix repairs triangular meshes by removing…
agpl · top 15,000 on PyPI
pytetwildpytetwild converts surface meshes into…
copyleft · top 15,000 on PyPI
meshioplusplusmeshioplusplus reads and writes mesh files in…
permissive · top 15,000 on PyPI
PyGEL3DPyGEL3D provides Python bindings for a C++…
permissive · top 15,000 on PyPI
pyvistaPyVista provides a NumPy-native API for 3D…
permissive · top 5,000 on PyPI