Skip to main content

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)

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.15.0.tar.gz (331.2 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.15.0-cp314-cp314t-win_amd64.whl (364.2 kB view details)

Uploaded CPython 3.14tWindows x86-64

zmesh-1.15.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.2 MB view details)

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

zmesh-1.15.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.1 MB view details)

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

zmesh-1.15.0-cp314-cp314-win_amd64.whl (355.0 kB view details)

Uploaded CPython 3.14Windows x86-64

zmesh-1.15.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

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

zmesh-1.15.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

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

zmesh-1.15.0-cp314-cp314-macosx_11_0_arm64.whl (466.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

zmesh-1.15.0-cp314-cp314-macosx_10_9_x86_64.whl (505.6 kB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

zmesh-1.15.0-cp313-cp313-win_amd64.whl (345.6 kB view details)

Uploaded CPython 3.13Windows x86-64

zmesh-1.15.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

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

zmesh-1.15.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

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

zmesh-1.15.0-cp313-cp313-macosx_11_0_arm64.whl (459.7 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zmesh-1.15.0-cp313-cp313-macosx_10_9_x86_64.whl (505.0 kB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

zmesh-1.15.0-cp312-cp312-win_amd64.whl (346.6 kB view details)

Uploaded CPython 3.12Windows x86-64

zmesh-1.15.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

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

zmesh-1.15.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

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

zmesh-1.15.0-cp312-cp312-macosx_11_0_arm64.whl (461.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zmesh-1.15.0-cp312-cp312-macosx_10_9_x86_64.whl (505.8 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

zmesh-1.15.0-cp311-cp311-win_amd64.whl (349.9 kB view details)

Uploaded CPython 3.11Windows x86-64

zmesh-1.15.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.4 MB view details)

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

zmesh-1.15.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.3 MB view details)

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

zmesh-1.15.0-cp311-cp311-macosx_11_0_arm64.whl (435.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zmesh-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl (504.1 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zmesh-1.15.0-cp310-cp310-win_amd64.whl (349.8 kB view details)

Uploaded CPython 3.10Windows x86-64

zmesh-1.15.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

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

zmesh-1.15.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

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

zmesh-1.15.0-cp310-cp310-macosx_11_0_arm64.whl (454.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zmesh-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl (503.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zmesh-1.15.0-cp39-cp39-win_amd64.whl (350.2 kB view details)

Uploaded CPython 3.9Windows x86-64

zmesh-1.15.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

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

zmesh-1.15.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

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

zmesh-1.15.0-cp39-cp39-macosx_11_0_arm64.whl (454.5 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zmesh-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl (504.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

zmesh-1.15.0-cp38-cp38-win_amd64.whl (352.7 kB view details)

Uploaded CPython 3.8Windows x86-64

zmesh-1.15.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.4 MB view details)

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

zmesh-1.15.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

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

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.15.0.tar.gz
Algorithm Hash digest
SHA256 463bf7bbe24e8d8a65cada1245397595d30dfc546ec0545b61467622286b834e
MD5 053e87ec8fd6bb862cd6d03a7e03db5e
BLAKE2b-256 4162055153904eabc6358c49a16d4b1c61415cb0ddbb0d49ed247868a5cc0334

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 364.2 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.15.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 a73445410b8499e6f002b374117f622933ac796518a36f4f70e69f61352e8be2
MD5 7e536b4c3317c037869fb45bec8f061d
BLAKE2b-256 48faf30e645f4832e79c1ea263a5abd4b7fe9376e571f9e73c422f4007cc49c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cbb20925b4a2f8b2c1bdfc542ae2af41b38d9bde22bfba2296633992d38e8841
MD5 7146ed6ea67335887e3ea380d89934cc
BLAKE2b-256 720f1832051dd2efe4d52138450f94a1582f17188d4e6209be89613d9368c994

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6ba38b26c673265e4810136e9193fee4289883a5a006c3292d9c5545a5fbe361
MD5 6bbdc82ec79c95bedb4ca8dbf9d767be
BLAKE2b-256 73d476ecb3298b56f4224e4dd2e60bb244de6a064d4752b0e5a6ed25b9d2727c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 355.0 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.15.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 a32e11167a0aac50efb7f8212c4ffb79644adab050185360b4cd92627a9ebaa8
MD5 1548a2bed3f7056c56cea39e529abcf8
BLAKE2b-256 60b8d549158d37ae2182a7d00038ca9a417105803e3ab566bd370bd77ec4858b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f4259e225dd5b10b8f6419666daf118e5fb279378609a312c3e7d04835a21fa7
MD5 d1fbe145ef857fba4d9b9cabacdbb723
BLAKE2b-256 a0c237927e1e29f44a88cdaed53cd2e4bc6becfb1cf0e7c7540245a303f572d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ed2ddce062f311b69e7175822b62925a30cf343f5eeb9a2915edc5a26ad70bb
MD5 1ac3c6a06f7f3fc2b8a2c44eab7e2dc3
BLAKE2b-256 ca831a940ce61fe2ee2ddb69834186371945ec47e2763e78fa98f650746e255c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f127200a1c90ad78bb36bb5ba1054ad423d0c5eb9138da6aee5f1528c5856a4
MD5 f704c71bd83217f687e830f9c3542893
BLAKE2b-256 df8128e71c04fb7ca96d123b30319c215a7cab8bc9699ac4ad905fca2fa53032

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 99b861d9eb04324b1de859225bba044d0aaeb50256c3026ed18ac6503efe8af3
MD5 ca650de096768d25b58e74c29556e47c
BLAKE2b-256 9d15f226a3999bb87e0bf9764850fac48545a5bf343eb141f71178942861f30a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 345.6 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.15.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 5758f1b8af5b552e7759215c694b9df60c6e9f2dbefa21e58a586e4422ab3886
MD5 1c9f7a6dbb08cbbb0cbb5315c1f5cabe
BLAKE2b-256 d44e8e37f09d5c127ddd48547b9b56e2087a6453ae314574ef392a2a8be52af4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc5bc008d7346f2f0d7a7fea253167b415d6622be969a4a0951f4cda43418f38
MD5 c720103e0090a59afc527546b834a090
BLAKE2b-256 3e54593bc15f415f7eca8f636e3e305b01db45700e928623b6266267d59fcbf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6803bd8f1e2b4deb0505540734c104de668df959bc7f1fbd12133e732784f985
MD5 d79947749cc49c8a4aaa9f476f5d022b
BLAKE2b-256 3c7dcacdac2a0041e4632dd739e80f59f1466b46db7ed69ed693dcb06d0dfc40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 32f1f8a66479c1190b457608e00ee44470025a8b1fbaea4122010676903dd3d0
MD5 9d48217db26e9da9b5127586f28d4b87
BLAKE2b-256 9dae2f6eaff90f5607ed3b7fa1c362569cdb6b88674312b47a25f506fd2afcbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3f565ffa3f400b4186566559c2723b777a02fff6b40c6cbac290f70496f1f584
MD5 1c416998331aafe34d5670e5ae8d8739
BLAKE2b-256 4510291b26c6e7536862644a3eb1b0bbe82f7f935c7cea1d31b573cc73d48c7a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 346.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.15.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 546dae6c55820c23027f133d8dda0ba13da7d409b181d3764ae220bab16f2dcd
MD5 bc182e7ed1714999edfcb1761b0944ee
BLAKE2b-256 2be1c18772095691744ca7e83cb08a8a3991d88ef2be74351686e86c065407ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aaeb1f35dce77d90e178130564638333a5405ff8c073444213bb587ae3759046
MD5 91985d09c18669f90004526c4be78d29
BLAKE2b-256 d3520165cc7a8346bc59901d8c6c35f32d33bf65dac3d333e16c9f3cf42e8028

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 62614fd19c209d333ac4ffe0f81f9f524bb7def8f545e57ae6acd3cf85fdb7b0
MD5 0cbfe58e1fd160542cc9f8e24a4f9ba8
BLAKE2b-256 87e730c0936ce38ccd4f0ef8846997f2968deccbadc43293a5767bc520b2a62e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cdc1dc77f22d35c278a2c01d8cf117eaa213993dd67138aabbca5eb750f309eb
MD5 108fa9bd01ff21f9ae98532b8aab98e3
BLAKE2b-256 853543bcea25ce5287bf355c2ce0864bc5fa79e409a78ab23c1224a86b676c14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1f4e610d78c4540a9eb816f8adabb849f5b6420f6655d1572d04e2766c37d099
MD5 56e58d509cea16ba6854ac438da19ca2
BLAKE2b-256 3526ccbb6b35fc93503ceced1dfa4d26b0f9288a745cf7f530e850538bea5026

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 349.9 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.15.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a791c52efbafced850d64ad7d2d9213a7283d118060800a39c189244878a096b
MD5 02419afe8301fa39d3bdf42598b875db
BLAKE2b-256 a12f7aaf88218b56143dfe4b77e38c10aab10437721f238b882ff5b4f5d19981

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6bf6eef04257aa9b921ba4ee6e323b2d12e9d275d90066be4a3b0e15db078183
MD5 4c53ef3f48e509578c8eb2bda60f10b8
BLAKE2b-256 b757c7a77ca692ca011832a3ddddae829301ad7e0ee89daff414074a09adc6d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 75274f439e2e00c44c4b271aaf05bc8f519399176b4899deb0452e245fc98e65
MD5 4780ca540367e49a060401149bb6dccf
BLAKE2b-256 29c4005cbab9d6fe87a3ab9c13ea8758672801d422b58c493288c9c83caaa8ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 662449bdbb21f1f485f318c8c224a560083e1c9962285206a79d78cf95130cb7
MD5 562eb5adaa6dd7fb96530365ed63c1f1
BLAKE2b-256 27e66a8ab7e3e13e29fa8e8633f88abd13cc6fe70239b4b411b14ba2a8e51bb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 de8aafa77cc6c80453373002dfd6a430d5b305942a95121e933c0da096c949f0
MD5 d0c230a8c3f05d01aa3d8934e0f23448
BLAKE2b-256 fa4dca9fd7ea8abed0586997875435a29f63bd9fac98e8979b8dc645c047ca14

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 349.8 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.15.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4dc860890b77eba668abe4b9754c28e98122d5f1e20ab99a67ffb3cfbdf7c932
MD5 af084c93b67d7d0c29a1efc62529d355
BLAKE2b-256 4da4f6040e6e25a4bedee3c75121c2896bcd5d975d2e8faa207c7f7a9e32c5ce

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7b285ad366fa16906c9a3cb1b0df4c37152c050492252e8f5396d4707e0388eb
MD5 b135102aa41384bac4d647dcf9b72cc8
BLAKE2b-256 81f61aad139bbb63346f9100e60f3aeff05432dc4f1d56247bb917fae52976e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ebf1103f11496482f1a94fb64fa79af88ed755aad051c371eae6c457896ad7ab
MD5 671e17dcf8b14a9665949f47fd54bdaf
BLAKE2b-256 f1afff7ea5d40e00dd758a09af5b1166de3ecf7fdfcb2d32488da14ce66419a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bd1fa1d66d8358f234e9b5341d42a5be0f2867ac561779e39fceb22c5d073b26
MD5 46f679b6d86353dac8a91c26a1bc199e
BLAKE2b-256 5938a4ce1729a553fc8bf7c67e6cad46a21fa3c3894220a2027c16e4f5b26d4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b4ee2a51bd744435670c38312e277a7d71ec349a818ad1aa4b86e19fbec3e575
MD5 e20a42ed5a933f23dfe5db7346efb1ee
BLAKE2b-256 00b628eee28863f027234cc26f093f6cc67e773d0d0ef12d260feda8f0931525

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 350.2 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.15.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 253e567498bfac8ced7a99787766dbe9b77e7b234c6dde183757e50b85ee862f
MD5 ad2a13eab5c16c199d57e9deb0bb3ab4
BLAKE2b-256 0073ffb1db66f8bc7f9afcdae761d52f8fc584b43b4b6a0d649d4ab7f0753edc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e1f2c66938f89558267bd35b4cf5fb00b3b6d4b175c926ea82c02f99ee4ef5c9
MD5 3d64a940fdaef7137491fc8738577e59
BLAKE2b-256 3abf5d693f3907f5dc5db2659e6b4cc7a590be47c415d9176ae7bafb28019597

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e1af85c26501063e264dba9a4cf01de688e3cf408143a9dafae7c5c70ada20d8
MD5 d99466e4439bb0177aad25c36ed47484
BLAKE2b-256 d2f3706061d6a20917c5fe3449af0d0c1c72c354fa78794aa8eb269f8b94d1c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b47003f3a30954c5081889b39e1da642d6bfee4164875ec151db518dbd1511bc
MD5 321c8a56edcb7804499ff8672457fb03
BLAKE2b-256 4322d97c9b970624ce47570154dd74d11c9d6b884ad59e3d8a6a776af66b5fc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8e598483ff799ac98a7526f68d5f1e791b937ac1c7e10c6e65decb807f88790d
MD5 47afec59c6aa6bc7b9cccb1b7b8440f1
BLAKE2b-256 f2ea309af2f4fc1d3cfe9497b369bb862d7dc295ac8a83d7fadeb94f2ec2ac5e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.15.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 352.7 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.15.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 941d7211febb50654755bbf339d1a80c441d7c3901eeec47affd34e7c752d485
MD5 dcbdfe0f1c776f4f93477fac153ca52e
BLAKE2b-256 28215d60ab8729fd3143daa80bdd48995471a11c390282c849e0e6aff3b26b83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d38681d20ed555768a9ca1012dd94c73795af0fb02ff1c8ffa68852ff1e76c57
MD5 ae0ca477e0fd7e76871cff90aac60625
BLAKE2b-256 7ea9868cd0c21cd0e6a129e8a6f462cf43f528551670db1aee3e763f53ce0f72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.15.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8abe2e74b9288e419292027858e3516e45e84c2c29eee224af677f8a99262d9e
MD5 c4735431b1776aa9f0e337168199ae25
BLAKE2b-256 7d3e408f65caa8cee3b8d02ad26fa3508cf823782eb54d66d60aeb859002b67c

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