Skip to main content

Implementation of 'Lifted Surfacing of Generalized Sweep Volumes'

Project description

Lifted Surfacing of Generalized Sweep Volumes

This code implements the ACM SIGGRAPH ASIA 2025 paper: Lifted Surfacing of Generalized Sweep Volumes

ball-rolling

Top: A wire-like ball rolls forward while offsetting, changing its genus from 41 to 29. Bottom: The time-colored sweep boundary and sharp creases (2nd row), in transparency (3rd row, creases hidden for clarity), and a cut-away view (bottom row).

Given any sweep represented as a smooth time-varying implicit function satisfying a genericity assumption, this algorithm produces a watertight and intersection-free surface that faithfully approximates the geometric and topological features.

Build

Dependencies

All third-party libraries are open-source and automatically fetched using CMake.

C++ Build

Use the following command to build:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
make

The C++ library libsweep and the command line tool generalized_sweep will be generated in the build directory.

Python Bindings

We also provide a Python binding for easy integration with Python workflows:

# Install the Python package
pip install .

Usage

C++ API

The C++ API consists of two simple functions, generalized_sweep and generalized_sweep_from_config defined in include/sweep/generalized_sweep.h. For complete API documentation, please see generalized_sweep.h.

generalized_sweep

The generalized_sweep function provides the most general API. It takes the following inputs:

  • a user-provided space-time function for pointwise function and gradient evaluation,
  • (optional) a simple initial grid specification (doc), and
  • (optional) customized sweep parameters (doc)

and generates the following outputs:

  • Sweep surface (final output)
  • Sweep envelope
  • Envelope arrangement

In addition to the sweep surface, our code also provides the sweep envelope and envelope arrangement for advanced users. Please see our paper for their definitions.

Here is a simple example:

#include <sweep/generalized_sweep.h>
#include <lagrange/io/save_mesh.h> // For IO only

// Define implicit space-time function
// Sweeping a ball of radius `r` along the X axis by a distance `d`.
sweep::SpaceTimeFunc f = [](EigenRowVector4d p) {
    constexpr double r = 0.2;
    constexpr double d = 0.5;

    double x = p[0];
    double y = p[1];
    double z = p[2];
    double t = p[3];

    double val = (x + d * t) * (x + d * t) + y * y + z * z - r * r;
    Eigen::RowVector4d grad {
        2 * (x + d * t),
        2 * y,
        2 * z,
        2 * d * (x + d * t)
    };
    return {val, grad};
};

// Define an initial coarse grid
sweep::GridSpec grid;
grid.bbox_min = {-0.3, -0.3, -0.3};
grid.bbox_max = {0.8, 0.8, 0.8};

// Compute the sweep surface
auto r = sweep::generalized_sweep(f, grid);
lagrange::io::save_mesh("sweep_surface.obj", r.sweep_surface);

generalized_sweep_from_config

The generalized_sweep_from_config function loads two configuration files:

  • function_file defines the space-time function
  • config_file defines the initial grid spec and sweep parameters

It outputs the same set of meshes as generalized_sweep. Both function_file and config_file are in YAML format.

The function file is a YAML file that defines a space-time function supported by the space-time-functions library. Here is a simple function file that sweeps a ball along the X axis. Please see the spec for a complete set of supported transforms and shapes.

type: sweep
dimension: 3

# The base shape
primitive:
  type: ball
  center: [0.0, 0.0, 0.0]
  radius: 0.2
  degree: 2

# Sweeping trajectory
transform:
  type: polyline
  points:
  - [-0.5, 0.0, 0.0]
  - [0.5, 0.0, 0.0]

The config_file is used to specify the initial grid and the sweep options. Here is an example:

grid:
  resolution: [4, 4, 4]
  bbox_min: [-1, -1, -1]
  bbox_max: [1, 1, 1]

parameters:
  epsilon_env: 5e-4
  epsilon_sil: 5e-4
  with_snapping: false
  with_insideness_check: true

The parameters section will be used to construct the sweep::SweepOptions.

Here is an example:

#include <sweep/generalized_sweep.h>
#include <lagrange/io/save_mesh.h> // For IO only

auto r = sweep::generalized_sweep_from_config(
    "example/simple/sweep.yaml",
    "example/simple/config.yaml"
);
lagrange::io::save_mesh("sweep_surface.obj", r.sweep_surface);

Please see more config-files-based examples in the example folder.

Python API

import numpy as np
import sweep3d
import lagrange # For IO only

# Space-time function
def my_space_time_function(point_4d):
    """Space-time implicit function.
    
    :param point_4d: 4D point [x, y, z, t] where t ∈ [0, 1]
    :type point_4d: numpy.ndarray
    :return: Tuple of (value, gradient)
    :rtype: tuple(float, numpy.ndarray)
    """
    x, y, z, t = point_4d
    r = 0.2
    d = 0.5
    value = (x - t * d)**2 + y**2 + z**2 - r**2
    gradient = np.array([2 * (x - t * d), 2 * y, 2 * z, -2 * d * (x - t * d)])
    return (value, gradient)

# Initial grid
grid_spec = sweep3d.GridSpec()
grid_spec.bbox_min = [-0.3, -0.3, -0.3]
grid_spec.bbox_max = [0.8, 0.8, 0.8]

# Compute sweep surface
result = sweep3d.generalized_sweep(my_space_time_function, grid_spec)

# Extract mesh data
V = result.sweep_surface.vertices
F = result.sweep_surface.facets
print(f"#Vertices: {len(V)}, #Faces: {len(F)}")

# Save mesh
lagrange.io.save_mesh("out.msh", result.sweep_surface)

Please see help(sweep3d) for more details.

Grid Parameters

The GridSpec struct defines the initial spatial grid used for sweep computation. The grid represents the 3D spatial domain (the time dimension is handled separately).

Parameters

Parameter Type Default Description
resolution [int, int, int] [4, 4, 4] Number of grid cells in the x, y, z directions. Higher resolution provides better initial sampling but increases computation time.
bbox_min [float, float, float] [-0.2, -0.2, -0.2] Minimum corner of the axis-aligned bounding box that encloses the sweep volume.
bbox_max [float, float, float] [1.2, 1.2, 1.2] Maximum corner of the axis-aligned bounding box that encloses the sweep volume.

Note: The bounding box should be large enough to fully enclose the swept volume throughout the entire trajectory (t ∈ [0, 1]).

Sweep Options

The SweepOptions struct provides fine-grained control over the sweep computation. All parameters are optional and have sensible defaults.

Refinement Parameters

Parameter Type Default Description
epsilon_env double 5e-4 Tolerance for envelope approximation.
epsilon_sil double 5e-3 Tolerance for silhouette set approximation.
max_split int unlimited Maximum number of splits allowed during grid refinement.
with_adaptive_refinement bool true Enable/disable adaptive grid refinement.
initial_time_samples size_t 8 Number of initial uniform time samples per spatial grid vertex.

Quality Control Parameters

Parameter Type Default Description
min_tet_radius_ratio double 1e-5 Minimum acceptable tetrahedron in-radius to circum-radius ratio during grid refinement. Tets below this threshold will not be refined further.
min_tet_edge_length double 2e-5 Minimum acceptable tetrahedron edge length during grid refinement. Tets with longest edge below this threshold will not be refined further.

Surface Extraction Parameters

Parameter Type Default Description
with_insideness_check bool true Whether to perform insideness checks during grid refinement. If true, the algorithm will stop refinement early once it detects a cell is inside the swept volume.
with_snapping bool true Whether to enable vertex snapping during isocontouring. Improves the quality of the extracted mesh.
volume_threshold double 1e-5 Minimum volume threshold for arrangement cell filtering. Cells below this volume will be merged into adjacent cells.
face_count_threshold size_t 200 Minimum face count threshold for arrangement cell filtering. Cells below this face count will be merged into adjacent cells.

Advanced Parameters

Parameter Type Default Description
cyclic bool false Whether the trajectory is cyclic. ⚠️ This feature is experimental and not fully supported.

Configuration Examples

The following examples show how to configure both grid parameters and sweep options together:

C++ Example
#include <sweep/generalized_sweep.h>

// Configure grid
sweep::GridSpec grid;
grid.resolution = {8, 8, 8};
grid.bbox_min = {-0.5, -0.5, -0.5};
grid.bbox_max = {1.5, 1.5, 1.5};

// Configure sweep options
sweep::SweepOptions options;
options.epsilon_env = 1e-3;
options.epsilon_sil = 1e-3;
options.with_insideness_check = false;
options.max_split = 1000000;

// Compute sweep
auto result = sweep::generalized_sweep(f, grid, options);
Python Example
import sweep3d

# Configure grid
grid_spec = sweep3d.GridSpec()
grid_spec.resolution = [8, 8, 8]
grid_spec.bbox_min = [-0.5, -0.5, -0.5]
grid_spec.bbox_max = [1.5, 1.5, 1.5]

# Configure sweep options
options = sweep3d.SweepOptions()
options.epsilon_env = 1e-3
options.epsilon_sil = 1e-3
options.with_insideness_check = False
options.max_split = 1000000

# Compute sweep
result = sweep3d.generalized_sweep(my_function, grid_spec, options)
YAML Example
grid:
    resolution: [8, 8, 8]
    bbox_min: [-0.5, -0.5, -0.5]
    bbox_max: [1.5, 1.5, 1.5]

parameters:
    epsilon_env: 1e-3
    epsilon_sil: 1e-3
    with_insideness_check: false
    max_split: 1000000

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

If you're not sure about the file name format, learn more about wheel file names.

sweep3d-0.1.0-cp313-cp313-win_amd64.whl (989.3 kB view details)

Uploaded CPython 3.13Windows x86-64

sweep3d-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

sweep3d-0.1.0-cp313-cp313-macosx_13_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

sweep3d-0.1.0-cp313-cp313-macosx_13_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

sweep3d-0.1.0-cp312-cp312-win_amd64.whl (989.6 kB view details)

Uploaded CPython 3.12Windows x86-64

sweep3d-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

sweep3d-0.1.0-cp312-cp312-macosx_13_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

sweep3d-0.1.0-cp312-cp312-macosx_13_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

sweep3d-0.1.0-cp311-cp311-win_amd64.whl (990.1 kB view details)

Uploaded CPython 3.11Windows x86-64

sweep3d-0.1.0-cp311-cp311-manylinux_2_28_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

sweep3d-0.1.0-cp311-cp311-macosx_13_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

sweep3d-0.1.0-cp311-cp311-macosx_13_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

sweep3d-0.1.0-cp310-cp310-win_amd64.whl (990.3 kB view details)

Uploaded CPython 3.10Windows x86-64

sweep3d-0.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

sweep3d-0.1.0-cp310-cp310-macosx_13_0_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

sweep3d-0.1.0-cp310-cp310-macosx_13_0_arm64.whl (1.5 MB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file sweep3d-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: sweep3d-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 989.3 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sweep3d-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 f255d659726b61d731aecc6bbd1bb0d47177b8cbe37ca7b10a9be8ce4803cc92
MD5 a2c5a132582fc8372af14f83c9a34e61
BLAKE2b-256 bf86f0414eaee215bc6f1c8d5f675264fe71f018aff0fc9ee759fbbadb43276e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8ce6e6040e39e2c963c069376092b812b2590bc1921d5a07c3eb8bea5e677fb1
MD5 b2514650ad92354124858424341ec9e9
BLAKE2b-256 a02fbc466c31e7fe432893d7bf5c116f19af3efc9ab0241dea861f3dd6031fca

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp313-cp313-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 c170da7956499ff96cebc937460d747adc7ca264d55ca0d439177cf7dadef2b9
MD5 3eefab73c639b2e403641bf6997b3d8b
BLAKE2b-256 ea727b4f6c5892d6b7e06e5dbf68941773dbdcf6b8d7f94314dc255f39cba482

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp313-cp313-macosx_13_0_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 eb12314cc36d3c5b6cd74f6936dc13f0de19dd7ed0785039ba4af310a05863c3
MD5 27d3de43c149a59ba9c17648a7ba3ea0
BLAKE2b-256 2c4550d000a4a60e9227be426ec82cc29d4bf224abb063c9d17e42d91d6fc960

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp313-cp313-macosx_13_0_arm64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: sweep3d-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 989.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sweep3d-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 020d0d5438ef365f665821b2a366fe8eae723959989242185653e5e0818d2cbf
MD5 7ad34c9fe5e31a79dd399077713a882b
BLAKE2b-256 a908ed2c64a49b61caf7ff048d4afc6dc839c29b1843fe63dc72521661a9453f

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 87fbd5cdef29c5cabfd9e96ca5b0ce2f76dc15951f02d7740f7b9230de8aa39f
MD5 fc3df9c79e09148c7e4b16ed44d9d9cd
BLAKE2b-256 54fd06e2b1425ff77057bbc12f02a293d350382e94ac895b6fdf8309166b968b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp312-cp312-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 fefc6ddbe7f0fe7e8362c608f8fe9e1643ffcd8a2627e08fbb7214f6594af511
MD5 1994bb0283899ca34f0321ed56ebb731
BLAKE2b-256 840b1ce1171ad21beb5edf5972d1121ef21609753a4f2ec2392ef111788bbf8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp312-cp312-macosx_13_0_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 f8acd738e1fa53d435a9157888639eef1aa972972a87f822643688fca1138bd9
MD5 b147b4105259fc1b8f762ac7eca3a0d7
BLAKE2b-256 53242e65d7b0f5d27e1d7893405a89111596245f8bd475e436566105163b2182

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp312-cp312-macosx_13_0_arm64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: sweep3d-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 990.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sweep3d-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0b8970b23ea7be12d951eae10fc6bea2cf3c69ffea5f3a16800b35fe243bf42d
MD5 8bf2107da293c5cd94e8c27be1bab8e9
BLAKE2b-256 f1700ed277961a43d2ff3a8a1ad51953a127b70d423515cb055bb7e70a474f9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a36364dd27358ca192ff92a787eceb357414f93d479fb212e933324aa100151f
MD5 3d488e7ba9522aff410a023032d0c12b
BLAKE2b-256 806579337ec2cf22f987551d5f81dd9f6f762285b089c3f67202841f949b0f3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp311-cp311-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 478478d2e372ca8f7ea3f06761d67a06b838e3719c2e000726296ddbc35c621f
MD5 7aa004c31c76413406c2cdd064861218
BLAKE2b-256 db79cd87eef85e16f9436133854ad1ded1999ceb56fff1d5004c10f15fb0402b

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp311-cp311-macosx_13_0_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 70c42c6d54423896bc26dc2423da80f6e66b924a9fbd68c2520fafe07db3668f
MD5 a81efbb8512ebae14382c816f6b5776b
BLAKE2b-256 d8a75a6123d46e6b7ed8eb1de2fda937170dadd25247f47933d9b199b2e989bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp311-cp311-macosx_13_0_arm64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: sweep3d-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 990.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for sweep3d-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7e3770336dac75b332f25941d113b92ad3d92790bded932eba8a5542b0130c1c
MD5 73d18cda4a495bcdc50629c79612a943
BLAKE2b-256 e8ed5ea34b6757e58f4a1e8316616f2e87ea3cff763e577f26b8c2cd8e906d01

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 12b4b13eb6cb8b7b44ce91666bb6f34de34d72632ebfb7c5161be46d37e80ca2
MD5 2e9e6a2fa00669d23bbb059659be038a
BLAKE2b-256 1ae54a2974e9dfaf58b8952b50b9a35c426b3fe6bd7df269d3800474224de576

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp310-cp310-manylinux_2_28_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 eaddbf6e80ec76200e14b68e41c3ab11763d739fe1b8eb767112b4bc8e85430d
MD5 b4717ebf08a1c8254b68362f2905ca7f
BLAKE2b-256 5acb4db4e433cdef02be9e667fd585baf6e582d53b9f8e79795a686f5bbbcda7

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp310-cp310-macosx_13_0_x86_64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sweep3d-0.1.0-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for sweep3d-0.1.0-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 5a83507324a0620240d21af1e17f6030ae85934e8e0e01ee8b62eda601630586
MD5 055a559f6eaa53b5730780c66a86d4aa
BLAKE2b-256 1ef86501d79e8af4f14e2f42d25c60cff947dc0a1d23b53c416a63d8c2a6ef62

See more details on using hashes here.

Provenance

The following attestation bundles were made for sweep3d-0.1.0-cp310-cp310-macosx_13_0_arm64.whl:

Publisher: deploy.yml on qnzhou/Swept-Volume

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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