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.2.tar.gz (304.1 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.2-cp314-cp314t-win_amd64.whl (356.7 kB view details)

Uploaded CPython 3.14tWindows x86-64

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

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

zmesh-1.13.2-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.2-cp314-cp314-win_amd64.whl (347.7 kB view details)

Uploaded CPython 3.14Windows x86-64

zmesh-1.13.2-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.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (3.8 MB view details)

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

zmesh-1.13.2-cp314-cp314-macosx_11_0_arm64.whl (377.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

zmesh-1.13.2-cp314-cp314-macosx_10_9_x86_64.whl (434.3 kB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

zmesh-1.13.2-cp313-cp313-win_amd64.whl (337.5 kB view details)

Uploaded CPython 3.13Windows x86-64

zmesh-1.13.2-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.2-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.2-cp313-cp313-macosx_11_0_arm64.whl (360.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zmesh-1.13.2-cp313-cp313-macosx_10_9_x86_64.whl (433.7 kB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

zmesh-1.13.2-cp312-cp312-win_amd64.whl (337.2 kB view details)

Uploaded CPython 3.12Windows x86-64

zmesh-1.13.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

zmesh-1.13.2-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.2-cp312-cp312-macosx_11_0_arm64.whl (361.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zmesh-1.13.2-cp312-cp312-macosx_10_9_x86_64.whl (434.6 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

zmesh-1.13.2-cp311-cp311-win_amd64.whl (341.1 kB view details)

Uploaded CPython 3.11Windows x86-64

zmesh-1.13.2-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.2-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.2-cp311-cp311-macosx_11_0_arm64.whl (356.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zmesh-1.13.2-cp311-cp311-macosx_10_9_x86_64.whl (431.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zmesh-1.13.2-cp310-cp310-win_amd64.whl (341.2 kB view details)

Uploaded CPython 3.10Windows x86-64

zmesh-1.13.2-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.2-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.2-cp310-cp310-macosx_11_0_arm64.whl (357.7 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zmesh-1.13.2-cp310-cp310-macosx_10_9_x86_64.whl (433.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zmesh-1.13.2-cp39-cp39-win_amd64.whl (341.5 kB view details)

Uploaded CPython 3.9Windows x86-64

zmesh-1.13.2-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.2-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.2-cp39-cp39-macosx_11_0_arm64.whl (358.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zmesh-1.13.2-cp39-cp39-macosx_10_9_x86_64.whl (434.1 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

zmesh-1.13.2-cp38-cp38-win_amd64.whl (344.6 kB view details)

Uploaded CPython 3.8Windows x86-64

zmesh-1.13.2-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.2-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.2.tar.gz.

File metadata

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

File hashes

Hashes for zmesh-1.13.2.tar.gz
Algorithm Hash digest
SHA256 6f1ccbc004169010d3409c450cd1a0ddb75290c7b04673ee35f01781057d9716
MD5 72aa173cdbac1f1811136140fbcd96ef
BLAKE2b-256 d9e47861b9c1b0a353e4ec701ceda35d12a75df152dad924ff6dbda76fb8e530

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 6bd431fdf9593bf40345c9868bfc5097e4b721914af6f740a647bba4727c59c0
MD5 6399623a38c69ac0e4ef09f1fe959c68
BLAKE2b-256 f3d95a41347454feeeeef5fcc9dfc38a55809ddec95049fd04cbc34e35d1948d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d817f21b28e467b906fa679ce966312e14b29de10f32fb21cc52ccbe707f56b
MD5 44ccfec8507c656bc4c1cbe47655ea09
BLAKE2b-256 26da9b188b52d7c730ee1932b57c49808def54fe8be668906cd65548d41924c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 01fde15e7dccb6df5f9894c4209eafa2b7b49120b9af8da4ad9e84e4161cd2a1
MD5 9c1b0dc55ec886870a7bad98b4c883b8
BLAKE2b-256 8f3b77f61cc4910ed62dc7b6ee226cfb2b80a22b008ee9652fa2570211a3c7e8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 3f34dd6c09b116599e4d1381cd304a637d06769f756bdf9c54065905ae139a24
MD5 0644bd8026c9ac1ba116201f2cd8d45a
BLAKE2b-256 caeae6134e7c56162ac356596fc6e317108b9dca8946eef7c3efde8a073b962f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 09c3ff8b49974b9ffce1abfd8bf4fbc8e4d33c3d458684394d7f7c073d0df13d
MD5 b3f48e2462bfc0446014b527920f1f58
BLAKE2b-256 cbfff4a2e85b019ade66a159402e116795bdf5749f229733062556fbfe8b8fbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 21ae4485a3f6edfa0cc11e22791d8a14a9ad419c042d96541188ae152e432ea5
MD5 532e4c3986543e80fc30a94867b1e2cb
BLAKE2b-256 d85f145cfcd76db0a9fa78c6b59af61854a68ace54f30ece6e9cd97185c4e5f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1969ed446e1c053f8502ac4400956f477ef949f38035a89a3bab7daad2df8a10
MD5 099a5aae7514fd3492ea00ae8a8b5fb2
BLAKE2b-256 7c4d16823c004466b8e477dd4de3f1be575ed0cb73ac7845ce31a557fe1df72c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1e4c69a7888b3fa5f628b3e105e2d869c32612fb97f861187c07656ca38bd5d0
MD5 a94bc5bdf009324c8149adbf82a035cd
BLAKE2b-256 585a8d89de895aa18d8a137b8c7126cc2695c28d48c0f6eae0276cd807592afa

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a5f87c0a8433fc3f83f9195f74c3118d1e6a34aa4f7938f5398ff0b447617dc1
MD5 ab34331f30001fbd8e3294620b20fe3f
BLAKE2b-256 16d7b45e47077663ec92f315aa22263b3c522fd139510f4fcf0eeff2db15bb80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f10b2ea73ec17a5348490534d9b7535828434605822b1e7232b28e80d8502b19
MD5 501d53eafe2d60d3719fadd7dc9c7161
BLAKE2b-256 eaf144b8c44ba094894af782aa6c6106080fa802c304f9979512437458eb59c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 02afd548b9defbce47bd01278973a969a925823ac51db62a711491050e998612
MD5 00510fe218cc592a8e8ee54d6cdbb74e
BLAKE2b-256 2a62c9cd9dceb9847e8ead1472c8bbca11b10316a24c0197ed3f4caca328fe29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b733127eeaac39b8e016a2e1eb34f7a679b423a847825277ee9b127c264711b9
MD5 f7ae66008eb1fd915c4cae63a51c4bba
BLAKE2b-256 f0eabd9fec7931e7026e3a3b1abe40cab1c3a253678971bfd7e9382b83d3a9e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c6df1c59ac2a4b0d2966b96df40e882d8c5c1d94b6af982621f77d144e2d387
MD5 f61909e9e92e940bbb5366c920ab0279
BLAKE2b-256 eaa7bc1bb5d6bcd56e1eb22f79ef015bc21354cb23570c24b54104ba45bb9b50

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b894a659cc0f8053505f95b65a1169e0bf3e70755f4b8b9fad550b47c799648b
MD5 e1df91ceb6b43e442ecb56f0dfaf8c19
BLAKE2b-256 9b667224087f4aa9966b4392e1d2cff267c4fa89fb9d3e19d2ff210faced213f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d590f84120202031896545514098a6fc7dc50f30be212bf390a3a802897bb25a
MD5 05e97c0b5dafebde08d53e0a47c25418
BLAKE2b-256 3e4167ac89d5c5cd8658850dc2b444df50939590b6a61705c49f74ad2cf9a5c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b195e60b4d3d2068e4a462a617ec5cc65db9a21a9b6d48ef91ad05d312a4281e
MD5 9daab65748676decad18916b527fd3b7
BLAKE2b-256 4efeb7d2cd5611f1c2bdc28bbacd9aedc8a466cf3924baebaf2f5201c10118a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0674738194f81b67fbbb721529533fd4574db6ff7ed86dd357b8ca16bcf78f1e
MD5 bd4678fe5424990755879beca05056b8
BLAKE2b-256 874e13769311d79c8534af98a28721ed8239e1acb6d62df1bd044b585332bf35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 820833acb5959300503bde4bf8957b0f21afd5123398df4362017a7b04434557
MD5 203725af4185584f1dff81512c1ea7bc
BLAKE2b-256 194d352e7e99384edb6f2312477b556daa14bf17d72b75c29f12ad7cd4476e75

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b191c3d608169a0ce0356f55070b10c6156053788fd4294e9255f4b87ec8280d
MD5 0d216d16eba47e760896d692f5afa08d
BLAKE2b-256 11db0b03259c07d9c3d7426700d5914eaec211e627ca1630ab73fa26a294db5e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74a2f1bb2cb9dd7e4511ef5a76874a4eb9a5a8c7ab16d5b359a1046e42213a19
MD5 3e59c6e4e6a5208f33c863c172b5d0ff
BLAKE2b-256 ebf2dad727e7f61330b16b45680957d8fa389070572d6f72108a0d6057e13c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2ee15ef3b0268e09ba8a7058cf428ceac3bf384947d319c1b11e24db992b19fa
MD5 9d3397bfe461b1f534d9df3f3202f744
BLAKE2b-256 f553f3225b55076a5b797ffc9559209bad56cf927d0f5bf000e87b3d1d6ed5f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed91dc270a2e3f141b72e13f7c53ea45d74b2fed70e8737a8f874ab33c8542f8
MD5 5c5e3bf86e70b68f886c8c2f5822703e
BLAKE2b-256 6c1643a8ee6d036e61b392ba2ee87b167e23435779482908971f1e4fe45d6d16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4adbdee14f2db7b1c8eda675a00314e08f937f02d6307df1a1f354df8263e267
MD5 835f7f49a5866b78fb34f68233e603a9
BLAKE2b-256 47c835490a5325cb9e91d2606083a1cbd5ca412be2db46f89e0f4df19ba24470

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 359ccf37f918567996244aebff2b0853ac14de3ad0abc9369a2f49479a686235
MD5 ce8c0642acb47599b847931d8bf1672c
BLAKE2b-256 c525069c01c93ea81c6dd0fa912764ffe3c307af08ed315e2ea67d8124a9ed16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fc2f7b914b728a1f4d07f4a9338876394d7bc427a31b2257ab5bd058ce4f3828
MD5 7eddee6fdbfa352c342e6c3eeaf204a5
BLAKE2b-256 4d18d6ff79d9cfa6db93eaca5616b49fdb63cd5d9bfba69078c871f6e80d3f44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3183690a3051a1dcc8d47c9293b4c09467cfcfbeef3ed0fe89d1d67c0b5986d7
MD5 f5288faa6dcf6e556f6e5b229e172845
BLAKE2b-256 77fbf0004ad3d733adc816a6374c49bba116285aa51f04a378adbd771bb14675

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a307c056a941f249a77b798fb35b1ba236cf76b6c2d7597a1f9ed2c0e378180
MD5 1efd228b9637d236c1876ce89b07a40e
BLAKE2b-256 c4e188d52f9d37296f1dd71d7e3a4c16de565f881454e361c1e77e779a091beb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3e508ce1365e20c66e5ab8c8840422bef15a79d07d59498f6f532d994e1be341
MD5 18eef09bb8181fb952d9e6a225aa86b8
BLAKE2b-256 c694de65e0e1d923a4df473c7783a438467e263f40cfe2e93c03077bd70bbb22

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0aa107d506a5b0f44ababc0aec7bfc8671a982349aca4f0e538fb368c980cbd4
MD5 ad9073ded1a8d7999b6e8530c6f28e1a
BLAKE2b-256 8c5f4d99dd91c9bb20e589b75f92310f036a3beb5f0c0b324e9cdad78b9642ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4986aea39e7314aa0287d61c66569d3595fbd5fc58c2fced6903de4399989924
MD5 8628318396a738f9974ad61630308c44
BLAKE2b-256 e4744fb6f863bbfd7e2b941f7ceac4b86cc4bda676e5dd4751a6099553eabd94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ae11be6a1ec1491147ca0bab36aeee35ad3401a74990e19ae238ed0640aa2c93
MD5 be8acc0794e284deb471066ae85ac2f9
BLAKE2b-256 8eb39f993b6acf38718c9e327045042f59a5bdcefa038f8537184748281dca41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbf2f980d50f8cc445aca75e2a643684c43540e537af2229ca5b751bde551278
MD5 eb5b072a64503569d4f3f69b33675450
BLAKE2b-256 9ad82ec61a004037c2d66f4b3c78d1531460ff569b5caa1da22131f1d99e9429

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ec0fe85e66bbe60c8675bc54c28779bef4c375723f28f63e7a64177388348d88
MD5 9ff81c339891646972208a08ab136fc5
BLAKE2b-256 1b4b5b61afec695b60762eff6129682e02cc9f742c6f5c76179732ba3ae8b56a

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for zmesh-1.13.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 38af11f68575a17171a6661a5432b211114ef17528e3dd6c9a44f28fe80e67d9
MD5 a7b4cb5e7342e977937cf1e9c395634f
BLAKE2b-256 19e658c8a5069d155b96f0a9ad3d139e45ef3340897b755b988ce8ae208c829d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2344799c71464ff89ea249e4709d792777adc3e3d99c8f970a0e9ff4fce1a04e
MD5 cc036dadb11b9f8cc8af2c2812067afe
BLAKE2b-256 60179d7c91d900b01642fcc1eed06f54f7b5757d31e74a18405e4713d5625581

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.13.2-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8b9670bbed3979ac96f2f7ffaa96072e7fa8d326a6a7f99f1a0efc89d443df8d
MD5 ec98fe9bdf3f6f23958f27725c949934
BLAKE2b-256 ba8f3c4feb0ac3abac03a618341fe626837893fb4be6768fb79da1c3a68e8161

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