News
2025-12-17: We published a Blender add-on “Splashsurf Studio” for on-the-fly surface reconstruction during rendering using splashsurf in Blender. You can find it on the official extension repository.
2025-06-25: We published Python bindings for the CLI of splashsurf and most library features 🐍! Pre-built wheels can be installed using PIP: pip install pysplashsurf. See the PyPI entry of pySplashsurf for more information.
2023-09-25: The project now implements the paper “Weighted Laplacian Smoothing for Surface Reconstruction of Particle-based Fluids” (Löschner, Böttcher, Jeske, Bender; 2023). It proposes a fast smoothing approach to avoid the typical bumpiness of the surfaces reconstructed from SPH simulations while preventing loss of volume for splashes and droplets that occurs with simple, non-specialized smoothing methods. The images below show a rendering of a typical surface reconstruction (on the left) with visible bumps due to the SPH particles compared to the same surface reconstruction with weighted smoothing applied (on the right):
You can see this rendering in motion in this video. For more details see the paper and the readme in the repository.
About
This project consists of the following components:
- 🛠️
splashsurf: Binary crate with a CLI (command line interface) to quickly run surface reconstructions of SPH particle data files from the terminal. Install withcargo install splashsurf. - 🧰
splashsurf_lib: Rust library that implements the reconstruction method used by the CLI. Allows integrating the reconstruction procedure directly into other Rust applications. Furthermore, it resembles a framework providing access to individual building blocks to create your own surface reconstruction pipeline. - 🐍
pysplashsurf: Bindings to the CLI and library for Python. Install withpip install splashsurfand see theREADMEfor more details. - 🎬
splashsurf_studio: Blender add-on built on top of the Python bindings for on-the-fly surface reconstruction. Available from the official Blender extension repository.
splashsurf is a tool designed to reconstruct surface meshes from SPH particle data.
The first image illustrates the visualization of a set of particles from an SPH fluid simulation made using SPlisHSPlasH.
The particle radius is 0.025.
To ensure that the rendering of a fluid does not resemble a ball pit, a surface mesh must be reconstructed from this particle data.
The second image displays a reconstructed surface mesh of the fluid produced by splashsurf, utilizing a “smoothing length” of 2.2 times the particle radius and a cell size of 1.1 times the particle radius.
The third image showcases a finer reconstruction with a cell size of 0.45 times the particle radius.
These surface meshes can then be imported into 3D rendering software such as Blender to create stunning water animations.
The result may resemble the following:
For more information please refer to the GitHub repository of splashsurf.
Acknowledgements
This project contains notable contributions from the following people:
- Timna Böttcher (@timnaboettcher): co-developed the weighted smoothing approach
- Felix Kern (@Fek04): implemented the Python bindings for
splashsurf - Fabian Löschner (@w1th0utnam3): implemented most of the surface reconstruction library and CLI including the domain decomposition