Skip to main content

Multilabel marching cubes and simplification of volumetric data.

Project description

zmesh: Multi-Label Marching Cubes & Mesh Simplification

Tests PyPI version

from zmesh import Mesher

labels = ... # some dense volumetric labeled image
mesher = Mesher( (4,4,40) ) # anisotropy of image

# initial marching cubes pass
# close controls whether meshes touching
# the image boundary are left open or closed
mesher.mesh(labels, close=False)

# If you don't mind shuffling the vertices and faces
# from older versions of zmesh, this option unlocks
# some performance optimizations.
mesher.mesh(labels, preserve_order=False) 

meshes = []
for obj_id in mesher.ids():
  meshes.append(
    mesher.get(
      obj_id, 
      normals=False, # whether to calculate normals or not

      # tries to reduce triangles by this factor
      # 0 disables simplification
      reduction_factor=100, 

      # Max tolerable error in physical distance
      # note: if max_error is not set, the max error
      # will be set equivalent to one voxel along the 
      # smallest dimension.
      max_error=8,
      # whether meshes should be centered in the voxel
      # on (0,0,0) [False] or (0.5,0.5,0.5) [True]
      voxel_centered=False, 
    )
  )
  mesher.erase(obj_id) # delete high res mesh

mesher.clear() # clear memory retained by mesher

mesh = meshes[0]
mesh = mesher.simplify(
  mesh, 
  # same as reduction_factor in get
  reduction_factor=100, 
  # same as max_error in get
  max_error=40, 
  compute_normals=False, # whether to also compute face normals
) # apply simplifier to a pre-existing mesh

# use an fqmr derived non-topology preserving algorithm
# this useful particularly for multi-resolution meshes
# where visual appearence is more important than connectivity
# This function has many parameters, see help(zmesh.simplify_fqmr)
mesh = zmesh.simplify_fqmr(
  mesh, 
  triangle_count=(mesh.faces.shape[0] // 10),
)

# compute normals on a pre-existing mesh
mesh = zmesh.compute_normals(mesh) 

# run face based connected components
ccls = zmesh.face_connected_components(mesh)
# run vertex based connected components
ccls = zmesh.vertex_connected_components(mesh)

# remove small components based on vertices or faces
mesh = zmesh.dust(mesh, threshold=100, metric="vertices")
# remove components bigger than the threshold using invert
mesh = zmesh.dust(mesh, threshold=100, metric="vertices", invert=True)
# retain only the largest k connected components
mesh = zmesh.largest_k(mesh, k=1, metric="vertices")
# retain only the smallest k connected components
mesh = zmesh.largest_k(mesh, k=1, metric="vertices", invert=True)

mesh.vertices
mesh.faces 
mesh.normals
mesh.triangles() # compute triangles from vertices and faces

# Extremely common obj format
with open('iconic_doge.obj', 'wb') as f:
  f.write(mesh.to_obj())

# Common binary format
with open('iconic_doge.ply', 'wb') as f:
  f.write(mesh.to_ply())

# Neuroglancer Precomputed format
with open('10001001:0', 'wb') as f:
  f.write(mesh.to_precomputed())

Note: mesher.get_mesh has been deprecated in favor of mesher.get which fixed a long standing bug where you needed to transpose your data in order to get a mesh in the correct orientation.

Installation

If binaries are not available for your system, ensure you have a C++ compiler installed.

pip install zmesh

Performance Tuning & Notes

  • The mesher will consume about double memory in 64 bit mode if the size of the object exceeds <1023, 1023, 511> on the x, y, or z axes. This is due to a limitation of the 32-bit format.
  • The mesher is ambidextrous, it can handle C or Fortran order arrays.
  • The maximum vertex range supported .simplify after converting to voxel space is 220 (appx. 1M) due to the packed 64-bit vertex format.

Related Projects

  • zi_lib - zmesh makes heavy use of Aleks' C++ library.
  • Igneous - Visualization of connectomics data using cloud computing.

Example Performance

This was a limited experiment conducted on a Macbook Pro M3 comparing Zmesh 1.12.0 and scikit-image==0.26.0. The volume is a 512^3 uint32 segmentation of a mouse visual cortex containing 2523 shapes of various sizes including parts of dendrites, a nucleus, and a glia.

Note that this is not really an apples-to-apples comparison because scikit-image is specialized for continuous value images like CT scans not segmentation, and so the resulting meshes are very different.

This is mesher.mesh(image).

Marching Cubes Data ZMESH Time (s) ZMESH MVx/sec SKIMAGE Time (s) SKIMAGE MVx/sec N
Black 0.891 451.35 NOT HANDLED 3
Filled 0.961 418.12 NOT HANDLED 3
connectomics.npy 4.107 97.89 9.861 40.77 3
random 6.950 12.81 40.509 2.20 1

The meshes can then be extracted (mesher.get):

Simplification Factor Max Error Labels per Second N
0 N/A 478.2 3
100 40 14.7 3

Credits

Thanks to Aleks Zlateski for creating and sharing this beautiful mesher.

Later changes by Will Silversmith, Nico Kemnitz, and Jingpeng Wu.

Thank you to Sven Forstmann, Kristof S., Brénainn Woodsend, and others for pyfqmr which we have adapted here for non-topology preserving simplification and fast OBJ reading. See https://github.com/Kramer84/pyfqmr-Fast-Quadric-Mesh-Reduction/

References

  1. W. Lorensen and H. Cline. "Marching Cubes: A High Resolution 3D Surface Construction Algorithm". pp 163-169. Computer Graphics, Volume 21, Number 4, July 1987. (link)
  2. M. Garland and P. Heckbert. "Surface simplification using quadric error metrics". SIGGRAPH '97: Proceedings of the 24th annual conference on Computer graphics and interactive techniques. Pages 209–216. August 1997. doi: 10.1145/258734.258849 (link)
  3. H. Hoppe. "New Quadric Metric for Simplifying Meshes with Appearance Attributes". IEEE Visualization 1999 Conference. pp. 59-66. doi: 10.1109/VISUAL.1999.809869 (link)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zmesh-1.13.0.tar.gz (303.6 kB view details)

Uploaded Source

Built Distributions

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

zmesh-1.13.0-cp314-cp314t-win_amd64.whl (329.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

zmesh-1.13.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.8 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

zmesh-1.13.0-cp314-cp314-win_amd64.whl (299.2 kB view details)

Uploaded CPython 3.14Windows x86-64

zmesh-1.13.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.7 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

zmesh-1.13.0-cp314-cp314-macosx_11_0_arm64.whl (339.8 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

zmesh-1.13.0-cp314-cp314-macosx_10_9_x86_64.whl (385.0 kB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

zmesh-1.13.0-cp313-cp313-win_amd64.whl (292.0 kB view details)

Uploaded CPython 3.13Windows x86-64

zmesh-1.13.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

zmesh-1.13.0-cp313-cp313-macosx_11_0_arm64.whl (338.6 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zmesh-1.13.0-cp313-cp313-macosx_10_9_x86_64.whl (383.6 kB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

zmesh-1.13.0-cp312-cp312-win_amd64.whl (291.6 kB view details)

Uploaded CPython 3.12Windows x86-64

zmesh-1.13.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (3.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

zmesh-1.13.0-cp312-cp312-macosx_11_0_arm64.whl (339.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zmesh-1.13.0-cp312-cp312-macosx_10_9_x86_64.whl (384.4 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

zmesh-1.13.0-cp311-cp311-win_amd64.whl (295.0 kB view details)

Uploaded CPython 3.11Windows x86-64

zmesh-1.13.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

zmesh-1.13.0-cp311-cp311-macosx_11_0_arm64.whl (341.4 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zmesh-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl (385.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zmesh-1.13.0-cp310-cp310-win_amd64.whl (295.1 kB view details)

Uploaded CPython 3.10Windows x86-64

zmesh-1.13.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

zmesh-1.13.0-cp310-cp310-macosx_11_0_arm64.whl (338.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zmesh-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl (385.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zmesh-1.13.0-cp39-cp39-win_amd64.whl (295.4 kB view details)

Uploaded CPython 3.9Windows x86-64

zmesh-1.13.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

zmesh-1.13.0-cp39-cp39-macosx_11_0_arm64.whl (339.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zmesh-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl (385.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

zmesh-1.13.0-cp38-cp38-win_amd64.whl (297.8 kB view details)

Uploaded CPython 3.8Windows x86-64

zmesh-1.13.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

zmesh-1.13.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file zmesh-1.13.0.tar.gz.

File metadata

  • Download URL: zmesh-1.13.0.tar.gz
  • Upload date:
  • Size: 303.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0.tar.gz
Algorithm Hash digest
SHA256 0bc0d8958ffb6edb2dfa3e597cac260a7cb64b0fb694c862ab139c635754b1ae
MD5 adc5458b5c251a939bd6b44cb726bfbf
BLAKE2b-256 81795a2fc64c31657643ce4bbaaaa9bfa7c072ed54748b1cc298d3fec7ee9ef4

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 329.0 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 8d649877faa0c6b2eee975883b8c1a2a2d33a6331f0c227a8f7795bcacc33862
MD5 ad19e97bb9fab91ec3ee92e72a997c45
BLAKE2b-256 1b6385cc34bf17f516292a86539199b4b969899550908527a893a3dc55383ed9

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f89b10e72e1b12a1444488d4ffa7c112159e92b53fa094826b79f848a3038799
MD5 08b405b00594a804f41648a397bc1e1b
BLAKE2b-256 4d4b3ad5dc9930bf392731d8c1afeab94d78d146859d504a9af83b47dae4162e

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3e213e21b447c4ff04b3815e1ce123e72c6d474162ae5cea3b4d0e951069bff5
MD5 7de37e5e76c21c04e17c887eae7a36ed
BLAKE2b-256 50049148efec91ae6ca7782c33e49ccf2bacacf10b5894a954b9fafd2545ae36

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 299.2 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 26464ccf51199afe78308fb580e6b39f7d670c6bb7aa2baee857be6d0dfdcb28
MD5 e3f0ba34da4f4e603d5803fa2b195cc5
BLAKE2b-256 0d7ac8e4c168dd79894ce5de68bdf98420f55179d7e23aa59754089de6df9701

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c67eee118d66c8b4e7cef9b4721deeb35d8a092ad09aeb165245f0c5254cbdd8
MD5 d84eff30725b2a73bfbbeaecf3e94e66
BLAKE2b-256 42b060ff8dee9153726fac5501312514d4d2dc10b22c3526477ed104ef4c2a2e

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c72912d73ea27f9143ab4c1c1a9f42a9ba82e7b0fb238a24bab4cb49072e35cc
MD5 ee041c99c8c7d5c203ba09493e0dc8c5
BLAKE2b-256 815f96b735a403fac5134e04d930e398fe3f6b798f3ccbac4d6d2e36fb456e08

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 447e90223712062a9cdbb13036823b5cf2821439211027747bff4686bfe95af8
MD5 9a0ec07ae8fbb886ea4ca91de64fdf87
BLAKE2b-256 b7f3b16198928c90930ec9e63b1270d868cd223644906902890c065dcbe4edd3

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp314-cp314-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6cd55400aa94cfff9147c198d9d57aa0526cfbc6086772a7e52fd4325419382e
MD5 d80efb001bd828228f01ff35b61df3f3
BLAKE2b-256 9b7cb99ea74a20ee355ba28005de8393fb801236f5f3efa03608538609b380a9

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 292.0 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 4c9b8852459fb2aeb7d0faa9be1951cc927218d144431cafa147267186b66584
MD5 ec7987959042bd0e62c9d0d558d46cde
BLAKE2b-256 991a2d322b997f72388c584297ce092fda87a1a8ca087bedde5fbdadc1ffc5e6

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e3fd76ff85fc5038f4713aa9a1ff1e81287641b57033340a160a060c24fad4c
MD5 70c436f23b12f1f977e7e0a1a7a13a57
BLAKE2b-256 0a7b7842e1eedf3c8d3b90b1272f48ac1642dd8669d528b63c2fe2ac8c4b6e65

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 72cff49dd5deb04edb6c73b3f301b950ddc61b10823b7b3b34b927a854e2a315
MD5 aed66fa44c2e7c64734c2c3742876247
BLAKE2b-256 f2086db91951518179344f93acfbe838da2676200953a5b06b9c4424c8a6c8ac

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d5c8f058ed277169bfb869585c2febe7d02fd9348574c6d1b59fb153986e48b1
MD5 96c1c699734f6b6cf6b8ae2c20880b51
BLAKE2b-256 a33b510a712f039a1820cdaa5bd5fe8d4174a66751561b8073de39504cb75612

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp313-cp313-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4935c3ce24dad3ad5b1b21bfb18aab8f98a4d433aa0839e2bd338d53e5238e65
MD5 f721c9a878db96f20d63d4b1ce021871
BLAKE2b-256 1f48e27a8154b3f37c5ec3739fddf1256958cfa3c35b907b3bf550e3d21f413e

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 291.6 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 213fc8ac1a90fd8949dd9c245c538499ff6aedbc5767dbd2b18bbfa18630503f
MD5 2b6cc1f272f7aeeddda4d8c17b9b4ea4
BLAKE2b-256 2afce9850beb8c0d692fc7dfa9bf44670f1ccfbb13988a995922a68ba88105f3

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d910df2d09aad449fcd9d7209180c83af046e448fea81e4c5008e06804c3f02
MD5 9f624023e7fa263d73ab90d89eba256d
BLAKE2b-256 dc2facc822450697e25d7a7a16c55380ec20cd9bf791229f914c1b1814ee07d0

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1c8588e4766cec7539804155b16f40a84793e9eb8b48b18ca149fe4269ea7324
MD5 b1503509297378d9cfe534e489705782
BLAKE2b-256 a309db1ac0f952191ba0a2e4ef1589a8e85afe9e6bf76ed250acb1b61dd602e0

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d06c472c83fa7dec8b2b46af84ce04952d770d8b9f2b36338fc0d71ab62282f
MD5 611180bf89a911ce3eadcba4ea271667
BLAKE2b-256 93dbf44fea9d05baf569d2e119ef23bab884d6a107389cb4466ae7b771d2ad2b

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 26ecf049eb1bbd6c3ea66d51cbb3763943462961c27f47a4937d21f444613150
MD5 3702f1816317635281d8efa71b8cd2ed
BLAKE2b-256 7dc8b658294b3d69b000d64140ded20d34b58ea00bc3865a97b100b7bd7ab2a2

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 295.0 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8643b3a76f40e388961c592b6b4c8c5b22f81ab4b50aec36f12fe6c6cbb3d40b
MD5 f44108154319edc4d47d3468f29b5ee1
BLAKE2b-256 b620279628e8144f7f4c61b3ac9c81edabce04683923c86aa9d17c0ff4d1e7c5

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 676827c55e8f1965f1966329dc35be5c7e9c6a5a73f415c7da32bc817fe8a1b5
MD5 c58ccc1394c327efc9eb09a5615931d3
BLAKE2b-256 c16ed449d7b9213988552ab562fa187559492432da97e006a0cdbb5f6c4921c6

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e843d7964594d0c7666e9d1284e5549ff43309576d248b7a4a434d3e19cbefd2
MD5 c16b0b478aad97e660ee24b2a69c71e1
BLAKE2b-256 71af6cd29939f3e75691abdccfa3cfe3a613acf049f372eb1397bdea5d2faad3

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 99514c0b0d7592a668161d4883136ad02de04f77b150517cde6145621495b183
MD5 a80d9e2d619d6d3846375ccb95fa262e
BLAKE2b-256 2c0c59485d093a6fa2fa494c96700646c98bf1b43f5b97e7a0bdeed3f2a2ae34

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9a7bcd16e424bedef93cdfcae46fa8ccac28cda1b1d2a4d0a5ca374eb4ec94ea
MD5 c194f8233591d601c792b0c83c9d2f28
BLAKE2b-256 172538d4b9a21672c25a8010acb1187e35c5e9a3ccc6e0ea2333be32a09c6b4a

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 295.1 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 89b9e025a9a3610cfb94454460c936fb59e17e4f4aeebdd7cb068f3cddd1d448
MD5 d175a1cac397ebebf70f6e4c3095dd93
BLAKE2b-256 4bdfc3a32f814c700f8c68641417a983ab69970a1f0d9687cc3fc36bab3b7066

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1e392e3d1917f41aad8c122c3c8790d91879634a457c098f00f3cbd33299580
MD5 bf292e74c643119afa7ebf4a474cd4b4
BLAKE2b-256 0e8544216d40c7228547e596a40f4ce81e27f4ddd03ac73747de21a7e467c4b3

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2a28af6f742fc21785ff1aa40d7c1f1737fcd380802b2c4978bdd8f51155bbff
MD5 88ead0cc1c31ec8fbf2b7fafcdd46c0f
BLAKE2b-256 0c1c95fd3ff655306afc402e1f9f3694f705904aae6f3ca930fb35540313dd73

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fcd1069419bfefdbce1f3dfafa0fab72d3becfd4d660fb27b323d4231c4fc8b6
MD5 4886218f643c96279b7ae19c02ccc463
BLAKE2b-256 3a837d75a6db859cd512d04ea239af0b5c580a0cc8f7f18f76613cdb3abf82e5

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6f2f2463e27f2b8c1bd8b4ff66bb2de3e7ea3699d19640f042e24dc23a2ecbfe
MD5 9fb3aabde23f3706261aa1348022540c
BLAKE2b-256 33d2378e864396ecc6325e29b2188232a678ebf9924afe4accc7bb3dd08093fa

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 295.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 57cf96c9ec04d3d1af4292391b0ec58068d8e9e67b696bee112f861c01a048ac
MD5 a91063b9689a4e0690d47ea1f0c5a8ce
BLAKE2b-256 4c4b58a76d40b26d713fc64562125c4f54692e605fe55d4da2ad162210dd3efb

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75b0aaab061a049d6284ddf05391981bb25467e603c436fa68c100485934e7b8
MD5 96bcf15f8bedc90f3f2764d5a590ca2f
BLAKE2b-256 3af195d275f17a4358bbb91084cd471a014319788891f7d1ba47a159739ba48b

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 134647ead1d3013d2d10afddd79ff6fa39a8a1cd459835aa44c4f2e1c01a00c5
MD5 092bd2c3161b27586184649b76ae8987
BLAKE2b-256 0964a88597eefb3113615e51a9b8a29173cc68e82b4570d786c01394059251e5

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49289e8fa9dbfbf47be93df24799fa4444a97b56f555eeb7f4a30bf258fe50b8
MD5 4c0c6a615301609c501e12fdb56dc5dd
BLAKE2b-256 ca0a88014e48245caf905ad5c882c33888aeebd8e566a6d4feb6a4000a1c94e5

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 36fb1b74f1b0d370129b096ed91549b51535b27b6488532e0fc81ecdb4f1317f
MD5 34b95736a58b9000d8120a0684a1dac3
BLAKE2b-256 cb07eadd834ee40b3b50eca68c9478f4e0caac17b587f97e7dd909da2b439a17

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: zmesh-1.13.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 297.8 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for zmesh-1.13.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 e443689ba075b66705af82810e9cd08f3482702d9f9ce0769e47897ac6283bf3
MD5 0a6e263a5cd7d5d99b795fe24018db17
BLAKE2b-256 c0115443c8ee3b7e1062b57ec004dca0172a940f880bb89c2194827acb3ddb9a

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dfc74dfac829960c6cec0f5bcaba1460d39bd61078c94033ba81d74a020271d5
MD5 374c913818521c1fc6c185f96f880669
BLAKE2b-256 7c11bd42eebb0ca20298fca15301fc0b27b55a087b55b93a6bf1c8f4f8d1394d

See more details on using hashes here.

File details

Details for the file zmesh-1.13.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zmesh-1.13.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9872a205bccbf2158b379b99427ad281fd909d6117b19ccd53c9dc318e2ac86f
MD5 13e249b76099bd4523c5a070e3011b49
BLAKE2b-256 1a4d1991baad14bde26116c643ff2163d1bd3fa81ba6b80dcd381e751ef86f83

See more details on using hashes here.

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