zmesh


Namezmesh JSON
Version 1.8.0 PyPI version JSON
download
home_pagehttps://github.com/seung-lab/zmesh/
SummaryMultilabel marching cubes and simplification of volumetric data.
upload_time2024-09-19 22:44:18
maintainerNone
docs_urlNone
authorWilliam Silversmith (maintainer), Aleks Zlateski (original author)
requires_python>=3.8
licenseGPLv3+
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ## zmesh: Multi-Label Marching Cubes & Mesh Simplification
[![Tests](https://github.com/seung-lab/zmesh/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/seung-lab/zmesh/actions/workflows/test.yml) [![PyPI version](https://badge.fury.io/py/zmesh.svg)](https://badge.fury.io/py/zmesh)  

```python
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) 

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

# compute normals without simplifying
mesh = mesher.compute_normals(mesh) 

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: As of the latest version, `mesher.get_mesh` has been deprecated in favor of `mesher.get` which fixes 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.

```bash
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 2<sup>20</sup> (appx. 1M) due to the packed 64-bit vertex format.

## Related Projects 

- [zi_lib](https://github.com/zlateski/zi_lib) - zmesh makes heavy use of Aleks' C++ library.
- [Igneous](https://github.com/seung-lab/igneous) - Visualization of connectomics data using cloud computing.

## Credits

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

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

## 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](https://people.eecs.berkeley.edu/~jrs/meshpapers/LorensenCline.pdf))  
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](https://mgarland.org/files/papers/quadrics.pdf))  
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](http://hhoppe.com/newqem.pdf))


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/seung-lab/zmesh/",
    "name": "zmesh",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "William Silversmith (maintainer), Aleks Zlateski (original author)",
    "author_email": "ws9@princeton.edu",
    "download_url": "https://files.pythonhosted.org/packages/63/da/87d51faee9b9e3298cf78df843eee5fa8fb155c3e09edfaa167b439ec916/zmesh-1.8.0.tar.gz",
    "platform": null,
    "description": "## zmesh: Multi-Label Marching Cubes &amp; Mesh Simplification\n[![Tests](https://github.com/seung-lab/zmesh/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/seung-lab/zmesh/actions/workflows/test.yml) [![PyPI version](https://badge.fury.io/py/zmesh.svg)](https://badge.fury.io/py/zmesh)  \n\n```python\nfrom zmesh import Mesher\n\nlabels = ... # some dense volumetric labeled image\nmesher = Mesher( (4,4,40) ) # anisotropy of image\n\n# initial marching cubes pass\n# close controls whether meshes touching\n# the image boundary are left open or closed\nmesher.mesh(labels, close=False) \n\nmeshes = []\nfor obj_id in mesher.ids():\n  meshes.append(\n    mesher.get(\n      obj_id, \n      normals=False, # whether to calculate normals or not\n\n      # tries to reduce triangles by this factor\n      # 0 disables simplification\n      reduction_factor=100, \n\n      # Max tolerable error in physical distance\n      # note: if max_error is not set, the max error\n      # will be set equivalent to one voxel along the \n      # smallest dimension.\n      max_error=8,\n      # whether meshes should be centered in the voxel\n      # on (0,0,0) [False] or (0.5,0.5,0.5) [True]\n      voxel_centered=False, \n    )\n  )\n  mesher.erase(obj_id) # delete high res mesh\n\nmesher.clear() # clear memory retained by mesher\n\nmesh = meshes[0]\nmesh = mesher.simplify(\n  mesh, \n  # same as reduction_factor in get\n  reduction_factor=100, \n  # same as max_error in get\n  max_error=40, \n  compute_normals=False, # whether to also compute face normals\n) # apply simplifier to a pre-existing mesh\n\n# compute normals without simplifying\nmesh = mesher.compute_normals(mesh) \n\nmesh.vertices\nmesh.faces \nmesh.normals\nmesh.triangles() # compute triangles from vertices and faces\n\n# Extremely common obj format\nwith open('iconic_doge.obj', 'wb') as f:\n  f.write(mesh.to_obj())\n\n# Common binary format\nwith open('iconic_doge.ply', 'wb') as f:\n  f.write(mesh.to_ply())\n\n# Neuroglancer Precomputed format\nwith open('10001001:0', 'wb') as f:\n  f.write(mesh.to_precomputed())\n```\n\nNote: As of the latest version, `mesher.get_mesh` has been deprecated in favor of `mesher.get` which fixes a long standing bug where you needed to transpose your data in order to get a mesh in the correct orientation.\n\n## Installation \n\nIf binaries are not available for your system, ensure you have a C++ compiler installed.\n\n```bash\npip install zmesh\n```\n\n## Performance Tuning & Notes\n\n- The mesher will consume about double memory in 64 bit mode if the size of the \nobject exceeds <1023, 1023, 511> on the x, y, or z axes. This is due to a limitation \nof the 32-bit format. \n- The mesher is ambidextrous, it can handle C or Fortran order arrays.\n- The maximum vertex range supported `.simplify` after converting to voxel space is 2<sup>20</sup> (appx. 1M) due to the packed 64-bit vertex format.\n\n## Related Projects \n\n- [zi_lib](https://github.com/zlateski/zi_lib) - zmesh makes heavy use of Aleks' C++ library.\n- [Igneous](https://github.com/seung-lab/igneous) - Visualization of connectomics data using cloud computing.\n\n## Credits\n\nThanks to Aleks Zlateski for creating and sharing this beautiful mesher.  \n\nLater changes by Will Silversmith, Nico Kemnitz, and Jingpeng Wu. \n\n## References  \n\n1. 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](https://people.eecs.berkeley.edu/~jrs/meshpapers/LorensenCline.pdf))  \n2. 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\u2013216. August 1997. doi: 10.1145/258734.258849 ([link](https://mgarland.org/files/papers/quadrics.pdf))  \n3. 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](http://hhoppe.com/newqem.pdf))\n\n",
    "bugtrack_url": null,
    "license": "GPLv3+",
    "summary": "Multilabel marching cubes and simplification of volumetric data.",
    "version": "1.8.0",
    "project_urls": {
        "Homepage": "https://github.com/seung-lab/zmesh/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e90c507f91332d3d82cd4e10cc43b49d532f6d7a1cb0ec04f5837cd946423510",
                "md5": "c7c087d3146da36a1fb0e7fa3b1fbf2f",
                "sha256": "47021fb62281c0fa0eab1eebb48c3f4d940cb8fe6e6e38ef362e50acd51a4ceb"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "c7c087d3146da36a1fb0e7fa3b1fbf2f",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 375005,
            "upload_time": "2024-09-19T22:43:53",
            "upload_time_iso_8601": "2024-09-19T22:43:53.846565Z",
            "url": "https://files.pythonhosted.org/packages/e9/0c/507f91332d3d82cd4e10cc43b49d532f6d7a1cb0ec04f5837cd946423510/zmesh-1.8.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "be45bbd9a5770731f8644bdccd8c822b74ab1dc3c21cbe35d0e6ee24091b0605",
                "md5": "4828230f047bdd2134aad06d870f0dce",
                "sha256": "0e455aa2f5862957dd059fdf1ef0184ea65f93283a1b5750463c812ee5d02e78"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4828230f047bdd2134aad06d870f0dce",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 1794915,
            "upload_time": "2024-09-19T22:43:55",
            "upload_time_iso_8601": "2024-09-19T22:43:55.912990Z",
            "url": "https://files.pythonhosted.org/packages/be/45/bbd9a5770731f8644bdccd8c822b74ab1dc3c21cbe35d0e6ee24091b0605/zmesh-1.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b07ff034d91b55d8ef8a5a7e5f232a6a52fb2754a4189692bc641b86abe68f3f",
                "md5": "c2f5debb127705054978a9d83b007af7",
                "sha256": "cf841f2979e7384db2545d9c253a6976163d56813dbd15a7708cbb9dcc4eaf10"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "c2f5debb127705054978a9d83b007af7",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 159451,
            "upload_time": "2024-09-19T22:43:57",
            "upload_time_iso_8601": "2024-09-19T22:43:57.607886Z",
            "url": "https://files.pythonhosted.org/packages/b0/7f/f034d91b55d8ef8a5a7e5f232a6a52fb2754a4189692bc641b86abe68f3f/zmesh-1.8.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "328be89afd49db02df0c3915f6608e1fd192c3d5941ad830c039ddc0b38cf9ac",
                "md5": "e83c416c76d45e52f461e85794a0c8c7",
                "sha256": "c3cf177bf21b5f328b8388907cf082d30bb338e74cdf9310ef2e8f0358fb1faf"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "e83c416c76d45e52f461e85794a0c8c7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 377999,
            "upload_time": "2024-09-19T22:43:59",
            "upload_time_iso_8601": "2024-09-19T22:43:59.082773Z",
            "url": "https://files.pythonhosted.org/packages/32/8b/e89afd49db02df0c3915f6608e1fd192c3d5941ad830c039ddc0b38cf9ac/zmesh-1.8.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "79378316f20907ebd930ac126db1f46f3ad979c709ca16258ac0966b595a820e",
                "md5": "778236f1918cdc12dafbb2ae651798c1",
                "sha256": "6f563a3a215a3d71912c7a00abc376b3606240c8b23411301db0a123b1acf6ef"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "778236f1918cdc12dafbb2ae651798c1",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 1846856,
            "upload_time": "2024-09-19T22:44:00",
            "upload_time_iso_8601": "2024-09-19T22:44:00.450800Z",
            "url": "https://files.pythonhosted.org/packages/79/37/8316f20907ebd930ac126db1f46f3ad979c709ca16258ac0966b595a820e/zmesh-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "47e48370628019c94a38f20cdb812fca52dabaccb0c434e2be939624c58feb75",
                "md5": "499ff313a569931eb0109dd969d07d31",
                "sha256": "2abe1bf663ce8d0fcbd45e3f5085be2585cee20932469037e7dcc16e878ccf58"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "499ff313a569931eb0109dd969d07d31",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 159607,
            "upload_time": "2024-09-19T22:44:02",
            "upload_time_iso_8601": "2024-09-19T22:44:02.384189Z",
            "url": "https://files.pythonhosted.org/packages/47/e4/8370628019c94a38f20cdb812fca52dabaccb0c434e2be939624c58feb75/zmesh-1.8.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fd46549083ef39f15ad4dd9fc7e01f298b37b9113504b2adefbbf3f0466c5c76",
                "md5": "743cd9d75baa04ef4c7bd462ef6ea3c2",
                "sha256": "d55196ce8a3b52071222701236e2f4ba483262876c94df1c9e5cae123264c4f9"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp312-cp312-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "743cd9d75baa04ef4c7bd462ef6ea3c2",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 372029,
            "upload_time": "2024-09-19T22:44:03",
            "upload_time_iso_8601": "2024-09-19T22:44:03.701171Z",
            "url": "https://files.pythonhosted.org/packages/fd/46/549083ef39f15ad4dd9fc7e01f298b37b9113504b2adefbbf3f0466c5c76/zmesh-1.8.0-cp312-cp312-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0c4786755361ba0c7b83aed2cdbe6e2d221479da2c6c4fcf61da036633da04ce",
                "md5": "db2ff39735557570a2ebe2613a8e7298",
                "sha256": "1a8b69f854f083b235508e989476bb42e1cc5f37515f748cc8a9afd2991e0368"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "db2ff39735557570a2ebe2613a8e7298",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 1826894,
            "upload_time": "2024-09-19T22:44:06",
            "upload_time_iso_8601": "2024-09-19T22:44:06.036288Z",
            "url": "https://files.pythonhosted.org/packages/0c/47/86755361ba0c7b83aed2cdbe6e2d221479da2c6c4fcf61da036633da04ce/zmesh-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "42a22f4628621060cbc79a14b5ea987e0e91a8a1a54d0ab587330029f5561932",
                "md5": "93d809f261d74dda8862cd388364f932",
                "sha256": "f0bee3c29718a8e4d1a6cfba9cfc37913349946ce12ea456b78e34013782501c"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "93d809f261d74dda8862cd388364f932",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 157321,
            "upload_time": "2024-09-19T22:44:07",
            "upload_time_iso_8601": "2024-09-19T22:44:07.633972Z",
            "url": "https://files.pythonhosted.org/packages/42/a2/2f4628621060cbc79a14b5ea987e0e91a8a1a54d0ab587330029f5561932/zmesh-1.8.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4eab47cb9817c040b0089ed2cb75ae66588d645b35ae2d5685add44397788d91",
                "md5": "e26396dc127c51f6a7643de4c2700d77",
                "sha256": "c948938fa47ed1e0a807120b9ca63ce17fd1404a85c445d293ea1fd61124bb16"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp38-cp38-macosx_11_0_universal2.whl",
            "has_sig": false,
            "md5_digest": "e26396dc127c51f6a7643de4c2700d77",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 331275,
            "upload_time": "2024-09-19T22:44:08",
            "upload_time_iso_8601": "2024-09-19T22:44:08.660489Z",
            "url": "https://files.pythonhosted.org/packages/4e/ab/47cb9817c040b0089ed2cb75ae66588d645b35ae2d5685add44397788d91/zmesh-1.8.0-cp38-cp38-macosx_11_0_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35b64da47f8238499efedfd6ce465792fe2354aa9b21a8ad8b180c668f66055c",
                "md5": "5f02fce5cd658a4907b138afee1fdecf",
                "sha256": "c960fbda9ff9f5e0ac54a3c83ea5981eb530060535bc45380a20de3a45199ea8"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "5f02fce5cd658a4907b138afee1fdecf",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 1809936,
            "upload_time": "2024-09-19T22:44:10",
            "upload_time_iso_8601": "2024-09-19T22:44:10.042843Z",
            "url": "https://files.pythonhosted.org/packages/35/b6/4da47f8238499efedfd6ce465792fe2354aa9b21a8ad8b180c668f66055c/zmesh-1.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4f3f8c13bd268a8a4035cf6431ef74c603340143b4fa8079ef5d6e4a8a07304b",
                "md5": "970c8f08c672d61152a9e1655a7858a8",
                "sha256": "42c64b40240324b6de5ac34d8d65a206df1751592935973b71b901c677d2d3d6"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "970c8f08c672d61152a9e1655a7858a8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 160865,
            "upload_time": "2024-09-19T22:44:11",
            "upload_time_iso_8601": "2024-09-19T22:44:11.423506Z",
            "url": "https://files.pythonhosted.org/packages/4f/3f/8c13bd268a8a4035cf6431ef74c603340143b4fa8079ef5d6e4a8a07304b/zmesh-1.8.0-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a8cad57f037132e8a0f6d64dc05f8455bb7fd50460e27c765eb208267f251f85",
                "md5": "ee2f10c53df3f70bcd644f5d5f5c07e2",
                "sha256": "038b5f5b0ccdf73a56f40878047e4e6fbde7a817e5b446d3896bb6c9ffb81df8"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "ee2f10c53df3f70bcd644f5d5f5c07e2",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 376187,
            "upload_time": "2024-09-19T22:44:13",
            "upload_time_iso_8601": "2024-09-19T22:44:13.169508Z",
            "url": "https://files.pythonhosted.org/packages/a8/ca/d57f037132e8a0f6d64dc05f8455bb7fd50460e27c765eb208267f251f85/zmesh-1.8.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7049f3e914b9c4fcd6d16711a1df7804905d79a5160dd5452bdbfa8844fd3b42",
                "md5": "24fab3eef193a23e3c65105b4b25db66",
                "sha256": "0ea5e63cffb348649cc342574dc3b65dd19378b807ed0562bfa8ed4ea29a9553"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "24fab3eef193a23e3c65105b4b25db66",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 1797738,
            "upload_time": "2024-09-19T22:44:14",
            "upload_time_iso_8601": "2024-09-19T22:44:14.509919Z",
            "url": "https://files.pythonhosted.org/packages/70/49/f3e914b9c4fcd6d16711a1df7804905d79a5160dd5452bdbfa8844fd3b42/zmesh-1.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e80de9af5a02944c1d8bdc8e5efb0ae08abb69ed015ca667f0914f03a2229829",
                "md5": "37a4ae0146c96d7b87b37299378d9bfc",
                "sha256": "3ed992a733e298c3421b72bfde1fcc9fb77be2d76865401aac3d82a66bad525a"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "37a4ae0146c96d7b87b37299378d9bfc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 160007,
            "upload_time": "2024-09-19T22:44:16",
            "upload_time_iso_8601": "2024-09-19T22:44:16.339113Z",
            "url": "https://files.pythonhosted.org/packages/e8/0d/e9af5a02944c1d8bdc8e5efb0ae08abb69ed015ca667f0914f03a2229829/zmesh-1.8.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "63da87d51faee9b9e3298cf78df843eee5fa8fb155c3e09edfaa167b439ec916",
                "md5": "04ee88a17481d10d90e09993d6a0643d",
                "sha256": "5811f8794a14ce1d8796758408a64ad2c2c752bace0574d0195f4f43e741ba38"
            },
            "downloads": -1,
            "filename": "zmesh-1.8.0.tar.gz",
            "has_sig": false,
            "md5_digest": "04ee88a17481d10d90e09993d6a0643d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 263271,
            "upload_time": "2024-09-19T22:44:18",
            "upload_time_iso_8601": "2024-09-19T22:44:18.286017Z",
            "url": "https://files.pythonhosted.org/packages/63/da/87d51faee9b9e3298cf78df843eee5fa8fb155c3e09edfaa167b439ec916/zmesh-1.8.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-19 22:44:18",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "seung-lab",
    "github_project": "zmesh",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "zmesh"
}
        
Elapsed time: 1.18447s