Fast, robust isosurface extraction from arbitrary implicit functions using adaptive octree and Manifold Dual Contouring
Project description
isomesh
Fast, robust isosurface extraction from arbitrary implicit functions using adaptive octree and Dual Contouring.
Features
- Sharp feature preservation via QEF (Quadric Error Function) vertex placement -- corners and edges are captured exactly, not rounded like Marching Cubes
- Manifold, watertight output guaranteed for closed surfaces
- Adaptive refinement -- concentrates cells at feature boundaries, smooth regions stay coarse
- Rust core with Python bindings (PyO3 + maturin) -- zero-copy numpy array exchange
- Batch evaluation -- the user's implicit function is called with
(N, 3)arrays, not point-by-point - Newton surface projection -- all vertices lie exactly on the isosurface (machine precision)
Quick Start
import isomesh
import numpy as np
def sdf_sphere(pos: np.ndarray):
norms = np.linalg.norm(pos, axis=1)
values = norms - 1.0
gradients = pos / np.linalg.norm(pos, axis=1, keepdims=True)
return values, gradients
vertices, faces = isomesh.extract(
func=sdf_sphere,
bbox_min=(-2, -2, -2),
bbox_max=(2, 2, 2),
min_depth=4,
max_depth=7,
angle_threshold=30.0, # degrees -- sharp feature detection
iso_value=0.0,
)
# vertices: (V, 3) float64 -- all on the isosurface
# faces: (F, 3) int64 -- consistently oriented triangles
Installation
Pre-built wheels are available for Linux (x86_64, aarch64), macOS (Apple Silicon), and Windows:
pip install isomesh
From source
Requires a Rust toolchain (for building the native extension):
git clone https://github.com/narnia-ai-mason/isomesh.git && cd isomesh
pip install maturin
maturin develop --release
How It Works
isomesh uses Dual Contouring on an adaptive octree:
- Adaptive octree construction -- uniform grid at
min_depth, then feature-sensitive refinement tomax_depthbased on normal angle spread and gradient variation - QEF vertex placement -- one vertex per cell via Jacobi SVD eigendecomposition with mass-point bias for rank-deficient cases
- Newton surface projection -- one Newton step projects each vertex exactly onto the zero-isosurface
- Quad generation -- canonical-edge iteration with flatness-based triangulation
- All surface leaves forced to
max_depth-- eliminates T-junction holes, guarantees watertight output
Function Interface
The implicit function must be vectorized:
def f(positions: np.ndarray) -> tuple[np.ndarray, np.ndarray | None]:
"""
Args:
positions: (N, 3) float64 array of query points
Returns:
values: (N,) float64 -- implicit function values
gradients: (N, 3) float64 or None -- if None, estimated via finite differences
"""
Dual Contouring vs Marching Cubes
Comprehensive comparison across 10 benchmark shapes using isomesh (Dual Contouring) and PyMCubes (Marching Cubes) at equivalent resolution (depth 6 = 64 cells/axis).
Summary
| Metric | MC (res=65) | DC Uniform (d=6) | DC Adaptive (4->6) | DC Adaptive (4->7) |
|---|---|---|---|---|
| Manifold | 10/10 | 10/10 | 10/10 | 10/10 |
| Watertight | 10/10 | 10/10 | 10/10 | 10/10 |
| Total vertices | 81,112 | 80,693 | 72,629 | 270,770 |
| Total time | 0.75s | 7.69s | 6.86s | 15.25s |
| Avg SDF error | 3.10e-04 | 5.74e-05 | 5.75e-05 | 2.17e-05 |
| Avg min angle | 34.7 | 39.8 | 39.6 | 40.0 |
Surface Accuracy
Newton projection places DC vertices nearly exactly on the isosurface:
| Shape | MC mean |SDF| | DC mean |SDF| | Improvement |
|---|---|---|---|
| sphere | 9.63e-05 | 1.21e-18 | ~10^13x |
| thin_shell_hemi | 6.86e-05 | 1.17e-11 | ~10^6x |
| chamfered_sphere | 2.58e-04 | 5.12e-07 | ~500x |
| mechanical_part | 3.25e-04 | 4.05e-05 | ~8x |
| bunny | 4.38e-04 | 4.38e-04 | ~1x |
| simjeb_148 | 1.35e-03 | 8.95e-05 | ~15x |
Triangle Quality
DC consistently produces better-shaped triangles (higher minimum angle = less degenerate):
| Shape | MC min angle (avg) | DC min angle (avg) |
|---|---|---|
| sphere | 31.6 | 43.7 |
| thin_shell_hemi | 31.4 | 43.1 |
| chamfered_sphere | 35.5 | 43.4 |
| box | 44.1 | 44.5 |
| mechanical_part | 40.3 | 41.0 |
| bunny | 32.3 | 30.9 |
| simjeb_148 | 34.6 | 33.2 |
Sharp Feature Comparison
DC (Dual Contouring) preserves sharp edges and corners via QEF vertex placement. MC (Marching Cubes) rounds them by linear interpolation.
Thin Feature & Complex Geometry
Adaptive Refinement
Adaptive mode concentrates resolution where needed:
| Shape | Adaptive (4->6) V | Uniform (d=6) V | Ratio |
|---|---|---|---|
| sphere | 536 | 8,600 | 16x fewer |
| chamfered_sphere | 7,064 | 7,064 | 1x |
| cylinder | 4,328 | 4,328 | 1x |
For smooth shapes like sphere, adaptive refinement skips unnecessary subdivision, reducing vertex count by 16x with comparable accuracy.
Usage with Neural SDF Models
isomesh is designed for extracting meshes from SDF-based 3D generative models (e.g., DeepSDF, SDF-Diffusion) trained on mechanical parts like SimJEB.
Recommended Configuration
import isomesh
import numpy as np
import torch
def make_sdf_func(model, device='cuda'):
"""Wrap a neural SDF model for isomesh.
Always provide autodiff gradients -- finite difference gradients
are unreliable on neural SDFs.
"""
@torch.no_grad()
def func(points: np.ndarray):
pts = torch.from_numpy(points).float().to(device)
pts.requires_grad_(True)
with torch.enable_grad():
values = model(pts) # (N,)
grads = torch.autograd.grad(
values.sum(), pts, create_graph=False
)[0] # (N, 3)
return values.cpu().numpy(), grads.cpu().numpy()
return func
vertices, faces = isomesh.extract(
make_sdf_func(model),
bbox_min=(-1.0, -1.0, -1.0),
bbox_max=(1.0, 1.0, 1.0),
min_depth=4, # 16³ base grid
max_depth=7, # 128³ effective resolution
adaptive=True, # essential for mechanical parts
angle_threshold=30.0, # detects 90° edges reliably
iso_value=0.0,
)
Why These Settings
| Parameter | Value | Rationale |
|---|---|---|
adaptive |
True |
Mechanical parts have large flat surfaces + sharp edges/holes. Adaptive refinement concentrates resolution at feature boundaries, keeping flat regions coarse. |
min_depth |
4 |
16³ = 4,096 initial corners -- a good first GPU batch. Lower risks missing thin features at the base grid; higher diminishes the benefit of adaptive refinement. |
max_depth |
7 |
128³ effective resolution captures fillets, hole edges, and fine details. |
angle_threshold |
30.0 |
Mechanical edges are typically 90°, well above this threshold. Lowering it risks false-positive refinement from noisy neural gradients on flat surfaces. |
Quality Presets
# Batch generation (speed-oriented, hundreds of shapes)
min_depth=4, max_depth=7, adaptive=True
# Single shape, final output (quality-oriented)
min_depth=5, max_depth=8, adaptive=True
Tips
- Always provide autodiff gradients. Neural SDF + finite differences = poor accuracy. The wrapper above uses
torch.autograd.gradto get exact gradients while keeping the outer scope inno_gradmode. - Don't lower
angle_thresholdbelow 25°. Neural gradients are noisier than analytic ones. A lower threshold causes over-refinement on surfaces that are actually flat. - Thin features are handled automatically. The Lipschitz guard detects thin walls even in cells without sign changes.
- Output is manifold and watertight. Manifold Dual Contouring guarantees this -- no post-processing needed for downstream simulation or 3D printing.
- QEF preserves sharp edges exactly. Unlike Marching Cubes, which places vertices on grid edges (chamfering corners), QEF vertex placement captures true edge and corner geometry.
API Reference
isomesh.extract(
func, # vectorized SDF: (N,3) -> ((N,), (N,3)|None)
*,
bbox_min=(-1, -1, -1), # bounding box (expanded to cube if non-cubic)
bbox_max=(1, 1, 1),
min_depth=3, # uniform base resolution (2^min_depth cells/axis)
max_depth=7, # max adaptive refinement depth
angle_threshold=30.0, # degrees -- feature detection sensitivity
iso_value=0.0, # isosurface level
fd_step=1e-5, # finite difference step (if gradients not provided)
adaptive=False, # enable adaptive refinement
) -> (vertices, faces)
Architecture
src/ # Rust core
lib.rs # PyO3 module entry
bbox.rs # Bounding box, expand-to-cubic
octree/ # Adaptive octree
build.rs # Construction + feature-sensitive refinement
cell.rs, types.rs # Data structures
morton.rs # Morton code spatial indexing
eval/ # Function evaluation bridge
bridge.rs # Batch Python<->Rust with GIL management
cache.rs # Corner value/gradient cache
dc/extract.rs # Dual Contouring mesh extraction
qef/quadric.rs # QEF solver (Jacobi SVD, mass-point bias)
util/math.rs # 3x3 eigendecomposition
python/isomesh/ # Python API
_core.py # extract() wrapper + validation
_validation.py # Input checking with clear error messages
Testing
maturin develop --release
pytest tests/ -v
Benchmarks
The benchmark suite compares isomesh against PyMCubes across 10 shapes in 4 categories:
| Category | Shapes | What it tests |
|---|---|---|
| Basic | Sphere, Torus | Smooth surfaces, analytic ground truth |
| Sharp features | Box, Rotated box, Chamfered sphere, Cylinder, Mechanical part | Sharp edges, corners, non-axis-aligned edges, CSG operations |
| Thin features | Hemisphere shell (wall=0.08) | Thin walls, open boundaries |
| Complex geometry | Bunny, SimJEB 148 (mesh-based SDF) | Real CAD parts, complex topology |
# Full benchmark (all shapes, all methods, with rendering)
uv run python benchmarks/run_benchmark.py
# Selective
uv run python benchmarks/run_benchmark.py --shapes sphere box chamfered_sphere
uv run python benchmarks/run_benchmark.py --methods uniform adaptive
uv run python benchmarks/run_benchmark.py --no-render --no-stl
References
- Ju, Losasso, Schaefer, Warren. "Dual Contouring of Hermite Data." SIGGRAPH 2002.
- Schaefer, Ju, Warren. "Manifold Dual Contouring." IEEE TVCG 13(3), 2007.
- Garland, Heckbert. "Surface Simplification Using Quadric Error Metrics." SIGGRAPH 1997.
- Lindstrom. "Out-of-Core Simplification of Large Polygonal Models." SIGGRAPH 2000.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file isomesh-0.1.1.tar.gz.
File metadata
- Download URL: isomesh-0.1.1.tar.gz
- Upload date:
- Size: 4.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d5a6aff6c954e7120747b8d7d08ddced3c9b65d61cc7511e9f4cd98c8742862
|
|
| MD5 |
9d3cb158951e6b655e7554c7c158b2af
|
|
| BLAKE2b-256 |
46c14fb1e7f86f9e3b85e13803d620495d23ce00ff31a735f8f2a613b5e4c3ea
|
Provenance
The following attestation bundles were made for isomesh-0.1.1.tar.gz:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1.tar.gz -
Subject digest:
4d5a6aff6c954e7120747b8d7d08ddced3c9b65d61cc7511e9f4cd98c8742862 - Sigstore transparency entry: 1359992850
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 262.2 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ab0689554b8c149aecfcf67331b1aaa916838f4bf95a7c76db8330f4f629dd3
|
|
| MD5 |
50d996e086e7d3d04d7d8b2e66bb2ad3
|
|
| BLAKE2b-256 |
ed90faccf0acf2a6fedae6dd9dd7d4df95f217daccae411eefbc947c149cbb60
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp313-cp313-win_amd64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp313-cp313-win_amd64.whl -
Subject digest:
4ab0689554b8c149aecfcf67331b1aaa916838f4bf95a7c76db8330f4f629dd3 - Sigstore transparency entry: 1359992953
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 348.5 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd7efec8725ebb16619e95c16261f7ca9e7f53bd5c1fdfc8cd674764d792b078
|
|
| MD5 |
fe67fa9dc558f981341aab56b62876b8
|
|
| BLAKE2b-256 |
e33546df19793a95fd6b44c789529d17109be9cd6965b090c97cef3797860078
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
fd7efec8725ebb16619e95c16261f7ca9e7f53bd5c1fdfc8cd674764d792b078 - Sigstore transparency entry: 1359992988
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 330.4 kB
- Tags: CPython 3.13, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81e89ab12f028c547aca5b172f7b1648774b45198ff651b235d7ec2bdc2ca1f8
|
|
| MD5 |
a0d219cac4d4c4c34b66af1759f1db0b
|
|
| BLAKE2b-256 |
eaa89acb840ffbd491c31d0a29c4b184ac879b29e227dbe6c8eccca8d461358b
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
81e89ab12f028c547aca5b172f7b1648774b45198ff651b235d7ec2bdc2ca1f8 - Sigstore transparency entry: 1359992895
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 310.6 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62fc4df7a06df2dd2c1230b65cca348ec8e66448eb05626736322b2853893c17
|
|
| MD5 |
01744c17e518d94504a501bf0837524f
|
|
| BLAKE2b-256 |
70776031ccbc10dc7456f2373aa057f6346380a2b6ffdd975f6aa87b2e025274
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp313-cp313-macosx_11_0_arm64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp313-cp313-macosx_11_0_arm64.whl -
Subject digest:
62fc4df7a06df2dd2c1230b65cca348ec8e66448eb05626736322b2853893c17 - Sigstore transparency entry: 1359993018
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 262.6 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c770cf8e642f4738c79a1df380534a991ce25a77ff4de02f0fa298d95af0bc3b
|
|
| MD5 |
fdf708f3c6ae97da73ad780e98c3e052
|
|
| BLAKE2b-256 |
9b4acdf5a2eb4fd0bf9dd24c417827816fbb61f561086da608f8619c22ccb612
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp312-cp312-win_amd64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp312-cp312-win_amd64.whl -
Subject digest:
c770cf8e642f4738c79a1df380534a991ce25a77ff4de02f0fa298d95af0bc3b - Sigstore transparency entry: 1359992923
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 349.1 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa3bcef560c69201a6aba03cb82670162f3d1d649101a943dbc2a2ff31becc34
|
|
| MD5 |
b85f549a92f946b78c319c22acc8e26d
|
|
| BLAKE2b-256 |
ba5adc1e9fdbf5363e73629e52941824576c136181a5ed2eb65370084ccf6e78
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
aa3bcef560c69201a6aba03cb82670162f3d1d649101a943dbc2a2ff31becc34 - Sigstore transparency entry: 1359992909
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 330.7 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ee34ab568aeee43d557c6c99764ff59aec3d5aeeb2e831aa0adb8b5f5488a20
|
|
| MD5 |
106e293fc3dd2fa52980a8d306dbd9e2
|
|
| BLAKE2b-256 |
fa0cc3d57ebeea4c96b2d8c32035970aedc66eb20bde0cdc207cc71bf0609265
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
0ee34ab568aeee43d557c6c99764ff59aec3d5aeeb2e831aa0adb8b5f5488a20 - Sigstore transparency entry: 1359993003
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 311.0 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69f669db70c859c66efad034e7401fe8da4eae8a715c9ae8c5a6089ce0f2d67a
|
|
| MD5 |
070e537d86015f0ae1350c789e71f280
|
|
| BLAKE2b-256 |
2d2e82b654df83f62031ac83f01c9e07ee23782dfdc53c4def18e2250b3a7750
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp312-cp312-macosx_11_0_arm64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp312-cp312-macosx_11_0_arm64.whl -
Subject digest:
69f669db70c859c66efad034e7401fe8da4eae8a715c9ae8c5a6089ce0f2d67a - Sigstore transparency entry: 1359992870
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 262.2 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
97d54fdfc0febe4cd850a0c0b1e8d3bc85e6df15d5104dc494153c04f9f8f176
|
|
| MD5 |
ea1e22aedbf3f795cb2b0893eb8092a3
|
|
| BLAKE2b-256 |
a006fede8ef439ebb807e541494b0102f5dee2c0f57c8a8be7b35385d48b6205
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp311-cp311-win_amd64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp311-cp311-win_amd64.whl -
Subject digest:
97d54fdfc0febe4cd850a0c0b1e8d3bc85e6df15d5104dc494153c04f9f8f176 - Sigstore transparency entry: 1359992856
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 350.7 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e47078cc817c50fc500c74f4cdf32247e9123aa5e575621bdc995849b5509014
|
|
| MD5 |
b9bf1344b98bfb767e085bf2fc78a3fd
|
|
| BLAKE2b-256 |
fb8c944d70a08154311136a8ad9df068d43cc073715fa0aad25eb6eb6d387482
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl -
Subject digest:
e47078cc817c50fc500c74f4cdf32247e9123aa5e575621bdc995849b5509014 - Sigstore transparency entry: 1359992928
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- Upload date:
- Size: 332.4 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f65981d54aa69443e74730a508f2b80efa3b72c40deacce7d1c37589e5107c22
|
|
| MD5 |
9ff39d122099f91d27c5a5f7123acf3d
|
|
| BLAKE2b-256 |
ff1d37626f72b5cefd30f18af714230bee685ed174b71b5c54422fdd6df839b7
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl -
Subject digest:
f65981d54aa69443e74730a508f2b80efa3b72c40deacce7d1c37589e5107c22 - Sigstore transparency entry: 1359992968
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file isomesh-0.1.1-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: isomesh-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 311.3 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fb04758532b19777feab0cc30bc8edf9b184e5a354cc517067c10fa971fdd1d1
|
|
| MD5 |
06ef7faa2466bf60e6ce046fd83c63ae
|
|
| BLAKE2b-256 |
3184317989fe3f956f932e4ba8a74599e6ab4e1284384e994337c0a7dec7ecfd
|
Provenance
The following attestation bundles were made for isomesh-0.1.1-cp311-cp311-macosx_11_0_arm64.whl:
Publisher:
publish.yml on narnia-ai-mason/isomesh
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
isomesh-0.1.1-cp311-cp311-macosx_11_0_arm64.whl -
Subject digest:
fb04758532b19777feab0cc30bc8edf9b184e5a354cc517067c10fa971fdd1d1 - Sigstore transparency entry: 1359992915
- Sigstore integration time:
-
Permalink:
narnia-ai-mason/isomesh@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/narnia-ai-mason
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@13f5a29cfefe8ab642975d0b08a263f0aad3c1f5 -
Trigger Event:
push
-
Statement type: