skillfed

pysplashsurf

Python bindings for splashsurf, a surface reconstruction library for SPH simulations.

pysplashsurf v0.14.1.0 86.4K downloads/30d#13,864 on PyPI303
Permissive license MIT Active released

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 pysplashsurf

uv

uv add pysplashsurf

poetry

poetry add pysplashsurf

Installing 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

Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: Implementation :: CPythonProgramming Language :: Python :: Implementation :: PyPyProgramming Language :: RustTopic :: Scientific/EngineeringTopic :: Scientific/Engineering :: PhysicsTopic :: Scientific/Engineering :: VisualizationTopic :: Utilities

Tags

surface reconstruction SPH particlesmarching cubes mesh generationfluid simulation particle meshsplashsurf python bindingsparticle to mesh conversionscientific mesh processingphysics simulation visualization
mesh-generationsph-simulationscientific-computing

More Scientific/Engineering packages