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.14.0.tar.gz (304.5 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.14.0-cp314-cp314t-win_amd64.whl (358.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

zmesh-1.14.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.14.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.14.0-cp314-cp314-win_amd64.whl (349.1 kB view details)

Uploaded CPython 3.14Windows x86-64

zmesh-1.14.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

zmesh-1.14.0-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.14.0-cp314-cp314-macosx_11_0_arm64.whl (391.6 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

zmesh-1.14.0-cp314-cp314-macosx_10_9_x86_64.whl (436.4 kB view details)

Uploaded CPython 3.14macOS 10.9+ x86-64

zmesh-1.14.0-cp313-cp313-win_amd64.whl (338.9 kB view details)

Uploaded CPython 3.13Windows x86-64

zmesh-1.14.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.0 MB view details)

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

zmesh-1.14.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.14.0-cp313-cp313-macosx_11_0_arm64.whl (377.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

zmesh-1.14.0-cp313-cp313-macosx_10_9_x86_64.whl (436.2 kB view details)

Uploaded CPython 3.13macOS 10.9+ x86-64

zmesh-1.14.0-cp312-cp312-win_amd64.whl (338.8 kB view details)

Uploaded CPython 3.12Windows x86-64

zmesh-1.14.0-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.14.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.14.0-cp312-cp312-macosx_11_0_arm64.whl (378.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

zmesh-1.14.0-cp312-cp312-macosx_10_9_x86_64.whl (436.9 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

zmesh-1.14.0-cp311-cp311-win_amd64.whl (342.8 kB view details)

Uploaded CPython 3.11Windows x86-64

zmesh-1.14.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

zmesh-1.14.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.14.0-cp311-cp311-macosx_11_0_arm64.whl (358.8 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

zmesh-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl (434.6 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

zmesh-1.14.0-cp310-cp310-win_amd64.whl (342.8 kB view details)

Uploaded CPython 3.10Windows x86-64

zmesh-1.14.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.14.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.14.0-cp310-cp310-macosx_11_0_arm64.whl (360.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

zmesh-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl (436.0 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

zmesh-1.14.0-cp39-cp39-win_amd64.whl (343.1 kB view details)

Uploaded CPython 3.9Windows x86-64

zmesh-1.14.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.14.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.14.0-cp39-cp39-macosx_11_0_arm64.whl (360.3 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

zmesh-1.14.0-cp39-cp39-macosx_10_9_x86_64.whl (436.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

zmesh-1.14.0-cp38-cp38-win_amd64.whl (346.1 kB view details)

Uploaded CPython 3.8Windows x86-64

zmesh-1.14.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (4.1 MB view details)

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

zmesh-1.14.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.14.0.tar.gz.

File metadata

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

File hashes

Hashes for zmesh-1.14.0.tar.gz
Algorithm Hash digest
SHA256 6ca630c2566e69fd7533defbf1f6e9bac5936b16d7449cfcab39d518addc1e1c
MD5 7f3c32a28ce52474dc2ab344f37aee39
BLAKE2b-256 4825487500589e1410cbe1b77ac9ace88606e8f9624d0eb38928cd62640ad954

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 358.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.14.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 72a1e32bdacc3cf353f4af9af66c9e576f4ad8b8f8ebb4f38e507335e741c2c9
MD5 d2c28dd8a0e2becefab8516ee0949646
BLAKE2b-256 8e75ddb7f924f3e7b37c417ca2656e4e1f6ae6efaa4299f8f585fab359a802fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 06568520fa630208d4a1c62eb4ba6b3ad2655140c79d082ba38589c59f33d7da
MD5 a4528c1698c9f2d25e8fa2a3a7825c93
BLAKE2b-256 d66d4c7d48cdbda282f7ce6de3f4f64a3012de42de65804a1fad7f52d4913762

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ca43d339a00a9007363474a9e7234896fffaeedde137d0ad5ca6210af85d1498
MD5 fddfd893ca60e76218a17092b3d62376
BLAKE2b-256 9f3b105b6bbf2390389643c05ace4be1d34f62e7b1e2c1e345c3010615f4fc24

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 349.1 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.14.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4588aca28acea596ed63b3aff52463b75a55880689f0f09f3b0af3cb1079fbc2
MD5 18496c75e5b58aa1b4d17dbe78f4dbfc
BLAKE2b-256 1eec9c60a6238baa0c3eba5c4e8b8a138045e492955c610c6df81a5e66c8a173

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 45decbec7ba0147fe46d0fc98693c58ba0924d53895b1b351a35818da98305ca
MD5 086c4a2d0494dc354fcc71eb3c2bc3ae
BLAKE2b-256 8379fe6ac064c0ac4d411b1edcb1c6e45d4983fc977b362d8a60d75efc598cbf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8161258fefc648168e10eea093a3edd05072279340140328ca891d3634473918
MD5 7d62778f39af8ee138a80c6f415610b7
BLAKE2b-256 db0934f0c7ef7f0768de26787f2a7e60ebc27b06230f5da73ce1ae4c9515bde3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 281f35d7884b6293f0fcfe30c09e417f6e8a87da8e4a194338b460548c8bddf6
MD5 957b5a09fa514864216ab7ede2592d38
BLAKE2b-256 806d9e7db0c727a7506c7ccaeb352dc22aceb84710c15a717847e7ec20424e3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp314-cp314-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 67b15e302715140447a7b126f1e9cbfdc63d4e94569a71f4ddefa258abf5bfde
MD5 8a5697c6add263f0ff8c78f166ebd445
BLAKE2b-256 33dbe44c8066e51598f8e5ea9dd969ccbdf0a13085cf835b22dccaedc5a13a77

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 338.9 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.14.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d5a23513f4dcfad90c5324b512ba361faaed4d6fab63bcae776fa6e457e29888
MD5 9d35ad31287c033a465018b500b525b9
BLAKE2b-256 9e8668eb56f9565f0c793ac5966e451e47e4b7bf55b068a382fadb989f84997b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 99306664301a1b02c0804da7e47ca1d2bdb3efc4a2791c0cee56062fa66f9c68
MD5 f6f1f3d721c148e42dba3014965510ac
BLAKE2b-256 acc5f102d8b370f1447b12685d0ddae5c865614b5523e00f45cd8e929f91b1b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e7a2e2ee48c8e3c24b97a30a85da9ffdcf9f4ccb2dbafe264eca9a621d2b4683
MD5 0649cbb6326f2e1c014997c626cb5ceb
BLAKE2b-256 d2e3b0e58999823102e212ec8860d5685a07b4348035edbb6640a62716d6b315

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 65627ac045de5ac531ddce9a89182fc8b2fb0f082bb55b8f19cc000dc5d7a57a
MD5 cc3f98795be1ab43786f1162d5a284e4
BLAKE2b-256 ccc9f54d9cd56383413bfd00ade51da20b92e12eefbe3e29928515337654c07b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp313-cp313-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1aa52c6b20d24e5b3f0e92911853733806bdba145d6a3a565cac9548f1166335
MD5 48f9ab4a40133c20f40f447dd186cea6
BLAKE2b-256 6872d474f6ee96d782233fb9e90ab6e98540f3613925f753c29d41f15ea5a9c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 338.8 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.14.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 cd88004624c2dd257d164e0503d51a27a9e1d8a28db1e69189d86078083445de
MD5 10c7b261baec3e7c967a5344e0dabf67
BLAKE2b-256 d341935730fabb2ac5cf20704d55c249dcd6eeb5e792cf70fcf6bd8e11760d6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c36c319b8aa2bb952f55b99d5897589aa74359243db87a699701aba14792e6c
MD5 a37b446a4f3300f1e715c58667979bfa
BLAKE2b-256 cafe3ce83c78888663cfb50de45627bd04a4556339770e3f4b2c44f4726ea155

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b2610d29b2c2a6ad495370cf4c34e7f95eb2c62d83af512e600e86dc6147b0c7
MD5 f11ddb1c975c4b6f462231c8352dc483
BLAKE2b-256 d2e32a777b0b393457dc2824003dd0e283b2c2f488e0819847b43c460901ba59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c50ff1ad39700a10642beb4471e4153a7d5e6d388db43f7da41c3610ff048b35
MD5 85e09db26f2d569755291cfcf85164ac
BLAKE2b-256 afc143355a927b78f4c698c68f23e8f211d891b56330b93c20fd5bf0e36bb599

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 eb88209bb06d4878fd8ba320535ac4e0c5776846715c0e49cee81e5c7b678b93
MD5 53c26620292f5710a70813cad2cac3c8
BLAKE2b-256 1a49c8a866c69af935d3564628b351c7a1bc713b674d545f72817c91d39e8fd9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 342.8 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.14.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 90934929967014bc09918dfdfb72759e08834c55e01fd28b069ace5dad2bf589
MD5 ef7224b145074c94a72faedad57928c0
BLAKE2b-256 94a7347276b49bf2edb9e342b29d76ec7054e3a189c9a66847ecf3c8f53a130b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b9f25d9520f3f8a63f308f4413eb897ba3ec7af38c4e24658ccce7a12c05d6e7
MD5 f590002fcf378836e0de771bd48576ba
BLAKE2b-256 5837d1737968dcf72c88904114d748df70ccdfa8ac3bef8b836821ca3e592206

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b50bcc36c3fe693a4185d4b3ba44fe95290685000942be7e6612bf00379027d4
MD5 4ffddba4bae5d4678025a5592ba840a4
BLAKE2b-256 22e5c8307774d98cc26777f5801a1be84dd961709cac0e2c4e68fa38664ccd68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 140533094c83f345978314d93cec8465605e1fabaa70f685c83a17bed435af28
MD5 55fa282ef7c4a670a364b3e3fb9b3fc5
BLAKE2b-256 c0199cc8a552fb90825b1eeb15a1edb8399ba00df609ea8a2b96841bfae7fd2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1023287f8bf7f46036ee94e7173a83ee98f8eadf0d7666598cc2e8aa4e177a59
MD5 d9d5c846a59da689b6a5fae5b8dce1cb
BLAKE2b-256 2630718c5633425963e08fbdcd52992d322fc37a53972fe4763b8b6894976aab

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 342.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.14.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ea699debdf5079d5bc51884e30f2edc2434526ee129b377d70d5373191d6a40f
MD5 6587c29a76fcab58cc65feb766b98d19
BLAKE2b-256 62f11d1559629ae6b26f1ffde132a7ef8b854bb24473138fc800cc0b4bd06f47

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7cb5f5d9732ba35bd9e49e97a7a5f7644cb06358e6443bcbb6570a24de4002f
MD5 5cab9802ac8d4593dab0417bdd0d2b4e
BLAKE2b-256 d86022ddcadeadaf1642ad1eb135fdb953d1de177ed03cceb2760a30814fd248

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eddc0c1f5a1ec4dc542c8c4c75cd1907c74900f8e34d02f21bbbcf3f90bcdc9c
MD5 55837ec82729ca7fa42bbce37bffd692
BLAKE2b-256 80ac8dafa3c955eec41670f0637122acac3dc24af41e7e1f83dbfe97baacfb0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b3322c0074ae169ffecd789f3a1c373c85d7cf05e128be048e1f53830da17442
MD5 b4e6eb8bf786ef36d5241b4ff143b66b
BLAKE2b-256 ddd79dfa6f7b9829a4f9de592bbc54c8401dda890f5e22a004b1a69519a386da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fc58aeb1115e75c477d62dc89cdce3731106f7cfb8f112abfcfbffc5d947d154
MD5 9181a5948ff8dec4911c0b757221338d
BLAKE2b-256 c3c80f9d4b434ff1b99ae980f412b9689a4d377f3def6de617393f65d9dacd83

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 343.1 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.14.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d048749ec849410f7525b393e2804ae382d54910b945c510ece256a133b69af9
MD5 9d1fb62c9ba8ee765c48b3db62151b0c
BLAKE2b-256 625e8a9670d9ab8bef9dec643a71ec8ff538289d30a17a9bc04d00048d53ad7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 96307f384a232000b1366bc127659969f9ccdcac24b4945bfbb0b773bfcb2dc0
MD5 3133cb5b494174cbeddd41acdd7e5101
BLAKE2b-256 e94292b91e396b10c1daaf73485e4eecf1ae964abe37a26723b42277790250f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp39-cp39-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 05cad55c8ae2b7b6d70485f09622b96b054a1a60bb43087c53bdae9add550684
MD5 d7eeb1473534e3486b9b30708d5559e2
BLAKE2b-256 120ac09645299f5ccf18f1bf919b29ff701a91e9ec85644db07d034930ff5706

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 00519805e25f785fbd1d3537c417a93133eac2caa3402894b809953c8601b4a7
MD5 202f8d6a6cd4be452c52b0ff8f728180
BLAKE2b-256 f497cf16eb15609367eea011b2a3f991dceddb33affd7b6d12f06e76a2308a7a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 302c10286ff7c2cb56ee0eb9e41c0a6ad554d9cb1520262fe3448e8acb9e325e
MD5 758a6c94f555c53f65aad3b1e499778b
BLAKE2b-256 dcb3880d75313c64ea1c260aae19b7d8a29b231684df702b9af53e4af4347e95

See more details on using hashes here.

File details

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

File metadata

  • Download URL: zmesh-1.14.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 346.1 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.14.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a172a00c1ec37b6c4fa17c82263c64a489eef0bec56b28881ab352d6bf9cde81
MD5 fdb52f38f2815b53e36f1ca6c207a85f
BLAKE2b-256 f607ebbfc069f24598c28453e65f0823c6baee059f63b75b58dae1fce8ffb935

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 885360246530e2bb5bbc7cb22c467292295df4c87fdc1d7e38d559f7225077c8
MD5 c2c3b606f77307a75b02c943cf1769d5
BLAKE2b-256 8d1e1faf1bb53c3c67718231c875a3f929dc170e800803e4f7b9af1a74e3e1ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for zmesh-1.14.0-cp38-cp38-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 57ae8bf31de04ae19bcded78a2155161ffbfdc5d0b3f8bdc6e2491c54c416782
MD5 7590edcac7e3d3abeadc9e2838aa5f1a
BLAKE2b-256 97df01fbbcd210d57bd8a7003020690f9b22c7892df979d670b1bc5483c0f260

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