# pySplashsurf



pySplashsurf provides Python bindings for `splashsurf`, an open source surface reconstruction library for particle data from SPH simulations.
Detailed information on the surface reconstruction and library itself and its API can be found on the [project website (splashsurf.physics-simulation.org)](https://splashsurf.physics-simulation.org/) or the [main repository](https://github.com/InteractiveComputerGraphics/splashsurf).
## Installation
Requires Python version 3.10+
```
pip install pysplashsurf
```
To install pysplashsurf with meshio support (which adds some additional IO functionality), use
```
pip install pysplashsurf[meshio]
```
This will add support for the `.bgeo` file extension to meshio, so that particle data in the `BGEOV` format can be read using meshio.
Meshio is also required for the `write_to_file` method from the bindings to work.
The rest of the package, including the CLI, will still work even if meshio is not installed.
## Usage
pySplashsurf can either be used as a library in Python scripts or as a command line tool that provides the same interface as the original Rust [`splashsurf`](https://github.com/InteractiveComputerGraphics/splashsurf) CLI itself.
### CLI
To use the CLI, you can use the `pysplashsurf` command after installing the package:
```bash
pysplashsurf --help
```
For example, to reconstruct a surface from particle data in a VTK file with some smoothing:
```bash
splashsurf reconstruct particles.vtk -r=0.025 -l=2.0 -c=0.5 -t=0.6 --mesh-smoothing-weights=on --mesh-smoothing-iters=15 --normals=on --normals-smoothing-iters=10
```
For more information on the CLI and its arguments, refer to the [splashsurf documentation](https://github.com/InteractiveComputerGraphics/splashsurf).
### Library
Example to reconstruct the surface from an input file, apply some post-processing methods and write the data back to a file:
```python
import meshio
import numpy as np
import pysplashsurf
# Load particles from mesh file
mesh = meshio.read("input.vtk")
particles = np.array(mesh.points, dtype=np.float64)
# Reconstruct the points/particles with some post-processing
mesh_with_data, reconstruction = pysplashsurf.reconstruction_pipeline(
particles,
particle_radius=0.025,
rest_density=1000.0,
smoothing_length=2.0,
cube_size=0.5,
iso_surface_threshold=0.6,
mesh_smoothing_weights=True,
mesh_smoothing_weights_normalization=13.0,
mesh_smoothing_iters=25,
normals_smoothing_iters=10,
mesh_cleanup=True,
compute_normals=True,
subdomain_grid=True,
subdomain_num_cubes_per_dim=64,
output_mesh_smoothing_weights=True
)
# Write the mesh with attributes to file using meshio
mesh_with_data.write_to_file("surface.vtk")
```
The `reconstruction_pipeline` method provides (mostly) the same arguments as the splashsurf binary CLI.
It may be necessary to specify the `dtype` of a function input (as done for `particles` in the example) so that the bindings know what data type to use internally.
The extension supports single (`np.float32`) and double precision floats (`np.float64`).
## Build instructions
You can also manually build the package from the source code:
1. Clone the repository
2. cd to the `pysplashsurf` directory
3. Create an environment from `python_environment.yaml` and activate it
- I recommend creating it in a subfolder, e.g.
```conda env create --prefix ./env -f python_environment.yaml```
- Then activate it using `conda activate ./env`
4. Now, to build the project, use maturin: `maturin develop`
- Maturin automatically installs the resulting binary in your python environment
- Set the release flag `-r` or `--release` to build an optimized binary, however, compilation time will be slightly longer
### Documentation Build
To generate the Sphinx documentation, make sure that the package is installed through, e.g., maturin, and then run `make html` in the `pysplashsurf/pysplashsurf/docs` directory.
The resulting HTML files will be in `pysplashsurf/pysplashsurf/docs/build/html`.
### Stub File Generation
To automatically generate a stub file for the package, run `cargo run --bin stub_gen --no-default-features` from the root project folder (from `pysplashsurf/`).
Raw data
{
"_id": null,
"home_page": null,
"name": "pysplashsurf",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "surface reconstruction, marching cubes, sph, fluid, particles, mesh, splashsurf, splishsplash",
"author": "Interactive Computer Graphics, Fabian L\u00f6schner",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/8e/a5/c365e1090d0244a5e01ddd4063237d4a79a78d3f46cba6d0c52df98eeb52/pysplashsurf-0.13.0.0.tar.gz",
"platform": null,
"description": "# pySplashsurf\n\n\n\n \n\n\n\npySplashsurf provides Python bindings for `splashsurf`, an open source surface reconstruction library for particle data from SPH simulations.\nDetailed information on the surface reconstruction and library itself and its API can be found on the [project website (splashsurf.physics-simulation.org)](https://splashsurf.physics-simulation.org/) or the [main repository](https://github.com/InteractiveComputerGraphics/splashsurf).\n\n## Installation\nRequires Python version 3.10+\n```\npip install pysplashsurf\n```\n\nTo install pysplashsurf with meshio support (which adds some additional IO functionality), use\n```\npip install pysplashsurf[meshio]\n```\nThis will add support for the `.bgeo` file extension to meshio, so that particle data in the `BGEOV` format can be read using meshio.\nMeshio is also required for the `write_to_file` method from the bindings to work.\nThe rest of the package, including the CLI, will still work even if meshio is not installed.\n\n## Usage\npySplashsurf can either be used as a library in Python scripts or as a command line tool that provides the same interface as the original Rust [`splashsurf`](https://github.com/InteractiveComputerGraphics/splashsurf) CLI itself.\n\n### CLI\nTo use the CLI, you can use the `pysplashsurf` command after installing the package:\n```bash\npysplashsurf --help\n```\nFor example, to reconstruct a surface from particle data in a VTK file with some smoothing:\n```bash\nsplashsurf reconstruct particles.vtk -r=0.025 -l=2.0 -c=0.5 -t=0.6 --mesh-smoothing-weights=on --mesh-smoothing-iters=15 --normals=on --normals-smoothing-iters=10\n```\n\nFor more information on the CLI and its arguments, refer to the [splashsurf documentation](https://github.com/InteractiveComputerGraphics/splashsurf).\n\n### Library\nExample to reconstruct the surface from an input file, apply some post-processing methods and write the data back to a file:\n```python\nimport meshio\nimport numpy as np\nimport pysplashsurf\n\n# Load particles from mesh file\nmesh = meshio.read(\"input.vtk\")\nparticles = np.array(mesh.points, dtype=np.float64)\n\n# Reconstruct the points/particles with some post-processing\nmesh_with_data, reconstruction = pysplashsurf.reconstruction_pipeline(\n particles,\n particle_radius=0.025,\n rest_density=1000.0,\n smoothing_length=2.0,\n cube_size=0.5,\n iso_surface_threshold=0.6,\n mesh_smoothing_weights=True,\n mesh_smoothing_weights_normalization=13.0,\n mesh_smoothing_iters=25,\n normals_smoothing_iters=10,\n mesh_cleanup=True,\n compute_normals=True,\n subdomain_grid=True,\n subdomain_num_cubes_per_dim=64,\n output_mesh_smoothing_weights=True\n)\n\n# Write the mesh with attributes to file using meshio\nmesh_with_data.write_to_file(\"surface.vtk\")\n```\nThe `reconstruction_pipeline` method provides (mostly) the same arguments as the splashsurf binary CLI.\nIt may be necessary to specify the `dtype` of a function input (as done for `particles` in the example) so that the bindings know what data type to use internally.\nThe extension supports single (`np.float32`) and double precision floats (`np.float64`).\n\n## Build instructions\nYou can also manually build the package from the source code:\n1. Clone the repository\n2. cd to the `pysplashsurf` directory\n3. Create an environment from `python_environment.yaml` and activate it\n - I recommend creating it in a subfolder, e.g.\n ```conda env create --prefix ./env -f python_environment.yaml```\n - Then activate it using `conda activate ./env`\n4. Now, to build the project, use maturin: `maturin develop`\n - Maturin automatically installs the resulting binary in your python environment\n - Set the release flag `-r` or `--release` to build an optimized binary, however, compilation time will be slightly longer\n\n### Documentation Build\nTo generate the Sphinx documentation, make sure that the package is installed through, e.g., maturin, and then run `make html` in the `pysplashsurf/pysplashsurf/docs` directory.\nThe resulting HTML files will be in `pysplashsurf/pysplashsurf/docs/build/html`.\n\n### Stub File Generation\nTo automatically generate a stub file for the package, run `cargo run --bin stub_gen --no-default-features` from the root project folder (from `pysplashsurf/`).\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Python bindings for splashsurf, a surface reconstruction library for SPH simulations.",
"version": "0.13.0.0",
"project_urls": {
"Documentation": "https://pysplashsurf.readthedocs.io/",
"Homepage": "https://splashsurf.physics-simulation.org/",
"Repository": "https://github.com/InteractiveComputerGraphics/splashsurf.git"
},
"split_keywords": [
"surface reconstruction",
" marching cubes",
" sph",
" fluid",
" particles",
" mesh",
" splashsurf",
" splishsplash"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "aef7ff129213cc90683ed3e8b27f18bc60ea2b58cf0ce84a99f5387d6c0a000e",
"md5": "9c0374ee26268441745e66e16dbf1702",
"sha256": "221339b38cf92c13f260fb6122d22b5cfc0700bc067ef12decc4870a995d5530"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-macosx_13_0_x86_64.whl",
"has_sig": false,
"md5_digest": "9c0374ee26268441745e66e16dbf1702",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2854861,
"upload_time": "2025-09-02T21:47:28",
"upload_time_iso_8601": "2025-09-02T21:47:28.068598Z",
"url": "https://files.pythonhosted.org/packages/ae/f7/ff129213cc90683ed3e8b27f18bc60ea2b58cf0ce84a99f5387d6c0a000e/pysplashsurf-0.13.0.0-cp310-abi3-macosx_13_0_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6e1a7980a2387ff8a99032db40de8e901c400882aac25927a01e4e35ad743257",
"md5": "43cdcf4b138733649675c4f89b3a5af5",
"sha256": "20dd52a61c5497e46db8e341b232704bc997ff91d3fde8ec6c98baf3c482a727"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-macosx_14_0_arm64.whl",
"has_sig": false,
"md5_digest": "43cdcf4b138733649675c4f89b3a5af5",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2608216,
"upload_time": "2025-09-02T21:47:29",
"upload_time_iso_8601": "2025-09-02T21:47:29.708337Z",
"url": "https://files.pythonhosted.org/packages/6e/1a/7980a2387ff8a99032db40de8e901c400882aac25927a01e4e35ad743257/pysplashsurf-0.13.0.0-cp310-abi3-macosx_14_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "2a2872e5ec32f29c974e319befef85ed05c64b1bd5579e71da620a7d7030314f",
"md5": "9d09590949b5a654c694e6053ebc544f",
"sha256": "93f2c7ad290578a34d16b3a054ec9582d8c71791f5c5e4553a7be396ee6ab174"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl",
"has_sig": false,
"md5_digest": "9d09590949b5a654c694e6053ebc544f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2924080,
"upload_time": "2025-09-02T21:47:30",
"upload_time_iso_8601": "2025-09-02T21:47:30.995649Z",
"url": "https://files.pythonhosted.org/packages/2a/28/72e5ec32f29c974e319befef85ed05c64b1bd5579e71da620a7d7030314f/pysplashsurf-0.13.0.0-cp310-abi3-manylinux2010_i686.manylinux2014_i686.manylinux_2_12_i686.manylinux_2_17_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "17c31ce4484af3713b5c44643ed81a815995b974b5e687974fd5590809a67c81",
"md5": "d32b70090ed190cd87752c6931f071f1",
"sha256": "ff79199c7de80acb238ea8a01528f3b92935a0234c52acd265bf6def836e6fd6"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
"has_sig": false,
"md5_digest": "d32b70090ed190cd87752c6931f071f1",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2663186,
"upload_time": "2025-09-02T21:47:32",
"upload_time_iso_8601": "2025-09-02T21:47:32.600419Z",
"url": "https://files.pythonhosted.org/packages/17/c3/1ce4484af3713b5c44643ed81a815995b974b5e687974fd5590809a67c81/pysplashsurf-0.13.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "845004156074e2c220971bb909a4b4924c117d0b319afd187eb880a3742f1e7f",
"md5": "583fe5b1488dcf9f59dff1df4a595616",
"sha256": "e67081d5429963a89cd3ecbaafeaf1cd78b380856a5a3844f9c0caf7627213c8"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.whl",
"has_sig": false,
"md5_digest": "583fe5b1488dcf9f59dff1df4a595616",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2728477,
"upload_time": "2025-09-02T21:47:33",
"upload_time_iso_8601": "2025-09-02T21:47:33.973214Z",
"url": "https://files.pythonhosted.org/packages/84/50/04156074e2c220971bb909a4b4924c117d0b319afd187eb880a3742f1e7f/pysplashsurf-0.13.0.0-cp310-abi3-manylinux2014_armv7l.manylinux_2_17_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9ed793d70830daf654267104e2db86e2a8e0d7ad25d3306d5fdc8dc88e888885",
"md5": "01cfd5c9bc06c3458dcdf67c57c765df",
"sha256": "2e90fc8253185e0783a97422055a2b8c2f82c553c950a8eb0bd911d724f833ee"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"has_sig": false,
"md5_digest": "01cfd5c9bc06c3458dcdf67c57c765df",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2895090,
"upload_time": "2025-09-02T21:47:35",
"upload_time_iso_8601": "2025-09-02T21:47:35.959843Z",
"url": "https://files.pythonhosted.org/packages/9e/d7/93d70830daf654267104e2db86e2a8e0d7ad25d3306d5fdc8dc88e888885/pysplashsurf-0.13.0.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "3f91e045b74f60f5138b38e66c353fc4c2726d84a32f32d67f20e9f697f40475",
"md5": "08b61020c1e0a6ecab033f77df2b07dc",
"sha256": "272ef534394ad3672ba28e864ab790dc608c76bdfefcb2ebf8dc5bb145ca1c65"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "08b61020c1e0a6ecab033f77df2b07dc",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2665531,
"upload_time": "2025-09-02T21:47:39",
"upload_time_iso_8601": "2025-09-02T21:47:39.127802Z",
"url": "https://files.pythonhosted.org/packages/3f/91/e045b74f60f5138b38e66c353fc4c2726d84a32f32d67f20e9f697f40475/pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "61f531435491bba6a845617cabe17f9ccf0d71499c34c8599225adde4f541b90",
"md5": "05ea77129b51448c7fa7f8239b08f137",
"sha256": "0596b8f1c6ec2bfe6f1ba4761a9975fea125c9c6b219ae50df242102fd280d00"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"has_sig": false,
"md5_digest": "05ea77129b51448c7fa7f8239b08f137",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2726911,
"upload_time": "2025-09-02T21:47:40",
"upload_time_iso_8601": "2025-09-02T21:47:40.596683Z",
"url": "https://files.pythonhosted.org/packages/61/f5/31435491bba6a845617cabe17f9ccf0d71499c34c8599225adde4f541b90/pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "be56876a080e9238e18db8e1f20c0f869295923ba5a6d9fd355463bce527c44e",
"md5": "6bb88437ee9313fbf32f2297ac1ec350",
"sha256": "3f28f9b9f843a151494e75741f907783a536c0ea98c7d7db2abe915e3e5c66d0"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "6bb88437ee9313fbf32f2297ac1ec350",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2922095,
"upload_time": "2025-09-02T21:47:41",
"upload_time_iso_8601": "2025-09-02T21:47:41.852575Z",
"url": "https://files.pythonhosted.org/packages/be/56/876a080e9238e18db8e1f20c0f869295923ba5a6d9fd355463bce527c44e/pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "417f54af73e83ceadbaf72ca053e6709865b52e3616e42740d190dc634812cab",
"md5": "cba7278da16ca9c416c861ef92e54201",
"sha256": "d09a7b82d2d9222811c2a966ffbb4b285d6b1d525751df79af2b91c3aa4d0d0f"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "cba7278da16ca9c416c861ef92e54201",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2899260,
"upload_time": "2025-09-02T21:47:43",
"upload_time_iso_8601": "2025-09-02T21:47:43.041230Z",
"url": "https://files.pythonhosted.org/packages/41/7f/54af73e83ceadbaf72ca053e6709865b52e3616e42740d190dc634812cab/pysplashsurf-0.13.0.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "72eac09e330666ce53b4c85e064c2fef07034a3c96a43390a97af581ad172fea",
"md5": "8caf14cc5d7bb5e9f94c006aa4b69b0e",
"sha256": "e2bd7126618405be8508e0ebf0cbcb87e3931096451b48dc92765703dfc53af1"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-win32.whl",
"has_sig": false,
"md5_digest": "8caf14cc5d7bb5e9f94c006aa4b69b0e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2473164,
"upload_time": "2025-09-02T21:47:44",
"upload_time_iso_8601": "2025-09-02T21:47:44.194800Z",
"url": "https://files.pythonhosted.org/packages/72/ea/c09e330666ce53b4c85e064c2fef07034a3c96a43390a97af581ad172fea/pysplashsurf-0.13.0.0-cp310-abi3-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "61370db465df983d77bdabe32ec28c5b615157cccca0c3617e8c76d39ae4d6bf",
"md5": "786702dd4ea7d8f39e212a1714bd565b",
"sha256": "7b303c1f25604a0c69980578d4362de8a77418be08d533dc14af8c1613539bdd"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-win_amd64.whl",
"has_sig": false,
"md5_digest": "786702dd4ea7d8f39e212a1714bd565b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2718704,
"upload_time": "2025-09-02T21:47:45",
"upload_time_iso_8601": "2025-09-02T21:47:45.596378Z",
"url": "https://files.pythonhosted.org/packages/61/37/0db465df983d77bdabe32ec28c5b615157cccca0c3617e8c76d39ae4d6bf/pysplashsurf-0.13.0.0-cp310-abi3-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6968e8d3329c2856d31a3d27a754f5c78b021c67747568aee7cc3a8f8f22dfd5",
"md5": "bbb8dff74ec61aac32b52f4e2a9f0c93",
"sha256": "0e050984aec35f564fba9b8169ea3bb82aa5cf042d13559b42f9f16eae59b3b1"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0-cp310-abi3-win_arm64.whl",
"has_sig": false,
"md5_digest": "bbb8dff74ec61aac32b52f4e2a9f0c93",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.10",
"size": 2453041,
"upload_time": "2025-09-02T21:47:46",
"upload_time_iso_8601": "2025-09-02T21:47:46.743960Z",
"url": "https://files.pythonhosted.org/packages/69/68/e8d3329c2856d31a3d27a754f5c78b021c67747568aee7cc3a8f8f22dfd5/pysplashsurf-0.13.0.0-cp310-abi3-win_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "8ea5c365e1090d0244a5e01ddd4063237d4a79a78d3f46cba6d0c52df98eeb52",
"md5": "a102e95d1c6c98e2e8a214626fcae1f2",
"sha256": "fa0b20272a0f136112fdb0f0f36072d2d25b853edef9631cd13dcf9b8d2db230"
},
"downloads": -1,
"filename": "pysplashsurf-0.13.0.0.tar.gz",
"has_sig": false,
"md5_digest": "a102e95d1c6c98e2e8a214626fcae1f2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 482028,
"upload_time": "2025-09-02T21:47:48",
"upload_time_iso_8601": "2025-09-02T21:47:48.007552Z",
"url": "https://files.pythonhosted.org/packages/8e/a5/c365e1090d0244a5e01ddd4063237d4a79a78d3f46cba6d0c52df98eeb52/pysplashsurf-0.13.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-02 21:47:48",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "InteractiveComputerGraphics",
"github_project": "splashsurf",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pysplashsurf"
}