pyfqmr : Python Fast Quadric Mesh Reduction
===========================================
Cython wrapper around `sp4acerat's quadrics mesh reduction
algorithm <https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification>`__.
Requirements:
~~~~~~~~~~~~~
- *Numpy*
- *Cython* (only for compilation, but not needed if installed from PyPI)
Installation :
~~~~~~~~~~~~~~
pyfqmr can be installed via `pip <https://pypi.org/project/pyfqmr/0.1.1/>`_ :
.. code:: bash
pip install pyfqmr
Compilation :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Run:
.. code:: bash
python setup.py install
Usage:
~~~~~~
.. code:: python
>>> #We assume you have a numpy based mesh processing software
>>> #Where you can get the vertices and faces of the mesh as numpy arrays.
>>> #For example Trimesh or meshio
>>> import pyfqmr
>>> import trimesh as tr
>>> bunny = tr.load_mesh('example/Stanford_Bunny_sample.stl')
>>> #Simplify object
>>> mesh_simplifier = pyfqmr.Simplify()
>>> mesh_simplifier.setMesh(bunny.vertices, bunny.faces)
>>> mesh_simplifier.simplify_mesh(target_count = 1000, aggressiveness=7, preserve_border=True, verbose=10)
iteration 0 - triangles 112402 threshold 2.187e-06
iteration 5 - triangles 62674 threshold 0.00209715
iteration 10 - triangles 21518 threshold 0.0627485
iteration 15 - triangles 9086 threshold 0.61222
iteration 20 - triangles 4692 threshold 3.40483
iteration 25 - triangles 2796 threshold 13.4929
iteration 30 - triangles 1812 threshold 42.6184
iteration 35 - triangles 1262 threshold 114.416
simplified mesh in 0.2518 seconds
>>> vertices, faces, normals = mesh_simplifier.getMesh()
Controlling the reduction algorithm
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Parameters of the '''simplify\_mesh''' method that can be tuned.
- **target\_count**
Target number of triangles.
- **update\_rate**
Number of iterations between each update.
- **max\_iterations**
Maximal number of iterations
- **aggressiveness**
Parameter controlling the growth rate of the threshold at each iteration when lossless is False.
- **preserve\_border**
Flag for preserving the vertices situated on open borders. Applies the method described in `this issue <https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification/issues/14>`__.
- **alpha**
Parameter for controlling the threshold growth. Exact implication described below.
- **K**
Parameter for controlling the threshold growth. Exact implication described below.
- **lossless**
Flag for using the lossless simplification method. Sets the update rate to 1 .
- **threshold\_lossless**
Maximal error after which a vertex is not deleted, only when the lossless flag is set to True.
- **verbose**
Controls verbosity
Implications of the parameters of the threshold growth rate (when not in lossless mode) :
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
$$threshold = alpha \* (iteration + K)^{agressiveness}$$
\
More information is to be found on Sp4cerat's repository : `Fast-Quadric-Mesh-Simplification <https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification>`__
Huge thanks to Sp4cerat for making his code available!
Raw data
{
"_id": null,
"home_page": "https://github.com/Kramer84/pyfqmr-Fast-quadric-Mesh-Reduction",
"name": "pyfqmr",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "kramer84",
"author_email": null,
"download_url": null,
"platform": null,
"description": "pyfqmr : Python Fast Quadric Mesh Reduction\n===========================================\n\nCython wrapper around `sp4acerat's quadrics mesh reduction\nalgorithm <https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification>`__.\n\nRequirements:\n~~~~~~~~~~~~~\n\n- *Numpy*\n- *Cython* (only for compilation, but not needed if installed from PyPI)\n\nInstallation :\n~~~~~~~~~~~~~~\npyfqmr can be installed via `pip <https://pypi.org/project/pyfqmr/0.1.1/>`_ :\n\n\n.. code:: bash\n\n pip install pyfqmr\n\n\nCompilation :\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nRun:\n\n.. code:: bash\n\n python setup.py install\n\nUsage:\n~~~~~~\n\n.. code:: python\n\n >>> #We assume you have a numpy based mesh processing software\n >>> #Where you can get the vertices and faces of the mesh as numpy arrays.\n >>> #For example Trimesh or meshio\n >>> import pyfqmr\n >>> import trimesh as tr\n >>> bunny = tr.load_mesh('example/Stanford_Bunny_sample.stl')\n >>> #Simplify object\n >>> mesh_simplifier = pyfqmr.Simplify()\n >>> mesh_simplifier.setMesh(bunny.vertices, bunny.faces)\n >>> mesh_simplifier.simplify_mesh(target_count = 1000, aggressiveness=7, preserve_border=True, verbose=10)\n iteration 0 - triangles 112402 threshold 2.187e-06\n iteration 5 - triangles 62674 threshold 0.00209715\n iteration 10 - triangles 21518 threshold 0.0627485\n iteration 15 - triangles 9086 threshold 0.61222\n iteration 20 - triangles 4692 threshold 3.40483\n iteration 25 - triangles 2796 threshold 13.4929\n iteration 30 - triangles 1812 threshold 42.6184\n iteration 35 - triangles 1262 threshold 114.416\n simplified mesh in 0.2518 seconds \n >>> vertices, faces, normals = mesh_simplifier.getMesh()\n\nControlling the reduction algorithm\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nParameters of the '''simplify\\_mesh''' method that can be tuned.\n\n- **target\\_count**\n Target number of triangles.\n- **update\\_rate**\n Number of iterations between each update.\n- **max\\_iterations**\n Maximal number of iterations\n- **aggressiveness**\n Parameter controlling the growth rate of the threshold at each iteration when lossless is False.\n- **preserve\\_border**\n Flag for preserving the vertices situated on open borders. Applies the method described in `this issue <https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification/issues/14>`__.\n- **alpha**\n Parameter for controlling the threshold growth. Exact implication described below.\n- **K**\n Parameter for controlling the threshold growth. Exact implication described below.\n- **lossless**\n Flag for using the lossless simplification method. Sets the update rate to 1 .\n- **threshold\\_lossless**\n Maximal error after which a vertex is not deleted, only when the lossless flag is set to True.\n- **verbose**\n Controls verbosity\n\nImplications of the parameters of the threshold growth rate (when not in lossless mode) :\n'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''\n$$threshold = alpha \\* (iteration + K)^{agressiveness}$$\n\n\\\n\nMore information is to be found on Sp4cerat's repository : `Fast-Quadric-Mesh-Simplification <https://github.com/sp4cerat/Fast-Quadric-Mesh-Simplification>`__\n\nHuge thanks to Sp4cerat for making his code available!\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "cython wrapper around C++ library for fast triangular mesh reduction",
"version": "0.2.1",
"project_urls": {
"Homepage": "https://github.com/Kramer84/pyfqmr-Fast-quadric-Mesh-Reduction"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "305fe43495b870cf3973d0ffa53a93fb98eba7d5eeaf86e86d99e53659d6c9f1",
"md5": "0c1b2cdd17396e95839d1fd83465f282",
"sha256": "215b1f12fc840097dc984bbfa76c9d4251030ec874b1e41a591c5e23b0c8846a"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "0c1b2cdd17396e95839d1fd83465f282",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 136952,
"upload_time": "2024-08-09T18:30:25",
"upload_time_iso_8601": "2024-08-09T18:30:25.211722Z",
"url": "https://files.pythonhosted.org/packages/30/5f/e43495b870cf3973d0ffa53a93fb98eba7d5eeaf86e86d99e53659d6c9f1/pyfqmr-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f2efaa5a3f797408c60a6d20d3daa2c43ebbd39abefc6ccad27f8b62da2ef143",
"md5": "fb5b54c4fa63ddf02c0ac83066b38275",
"sha256": "a6beabedc500adffe4498defcccdf9e2e86f8a874ba96403cb573a6404302ace"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "fb5b54c4fa63ddf02c0ac83066b38275",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 127182,
"upload_time": "2024-08-09T18:30:27",
"upload_time_iso_8601": "2024-08-09T18:30:27.061832Z",
"url": "https://files.pythonhosted.org/packages/f2/ef/aa5a3f797408c60a6d20d3daa2c43ebbd39abefc6ccad27f8b62da2ef143/pyfqmr-0.2.1-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0ab3490733dbe5c026a1520da43a7af685b8481a00510fb5ed4e74454c51ef4e",
"md5": "65d1e76b12dc30bd866065528d4da8e3",
"sha256": "04963071e05109703005bae647512c37a011587067b0105451d7dd4d2307fdaf"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "65d1e76b12dc30bd866065528d4da8e3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 824575,
"upload_time": "2024-08-09T18:30:34",
"upload_time_iso_8601": "2024-08-09T18:30:34.895599Z",
"url": "https://files.pythonhosted.org/packages/0a/b3/490733dbe5c026a1520da43a7af685b8481a00510fb5ed4e74454c51ef4e/pyfqmr-0.2.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "12891f9e445745554de45b0a4be974ccb12ac60960896c83df8e02ff57b5e609",
"md5": "5f98a044b4dee8d99dbe596f1cca258a",
"sha256": "efc8ba0cbe99da1fbb51f4ccb4f101a7a684411f7a8629d9129c2a8be2cafc23"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "5f98a044b4dee8d99dbe596f1cca258a",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 837190,
"upload_time": "2024-08-09T18:30:41",
"upload_time_iso_8601": "2024-08-09T18:30:41.677498Z",
"url": "https://files.pythonhosted.org/packages/12/89/1f9e445745554de45b0a4be974ccb12ac60960896c83df8e02ff57b5e609/pyfqmr-0.2.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e7c15b62991f964d98761f9ea72f98393b7bb307593c63a7e77070995801e40f",
"md5": "263aabe256f00b29a987d1cce4be2aac",
"sha256": "e213154d4086359e4bdb2540ed86568fa08f8abe12172257cbf27252ba8f8e69"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "263aabe256f00b29a987d1cce4be2aac",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 97008,
"upload_time": "2024-08-09T18:30:44",
"upload_time_iso_8601": "2024-08-09T18:30:44.086079Z",
"url": "https://files.pythonhosted.org/packages/e7/c1/5b62991f964d98761f9ea72f98393b7bb307593c63a7e77070995801e40f/pyfqmr-0.2.1-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c780a14276bd4efe17cca3b1a7856854c667cb2d2572a529ff9cf906b549368",
"md5": "c030223f50ada77a9376e02acb02eb3e",
"sha256": "dbfd4f99dde211f18d18cc3ea803a4804b9d86eb1c6167b61809fb087b68d171"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "c030223f50ada77a9376e02acb02eb3e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 112095,
"upload_time": "2024-08-09T18:30:46",
"upload_time_iso_8601": "2024-08-09T18:30:46.296277Z",
"url": "https://files.pythonhosted.org/packages/7c/78/0a14276bd4efe17cca3b1a7856854c667cb2d2572a529ff9cf906b549368/pyfqmr-0.2.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a3f6b185e6d905d27f5875c6027feeab4b8453f151e866af25311dfb238fb450",
"md5": "b74bcc85cd26b15992ebb8370b533b48",
"sha256": "09e9f38d4ab8cb9871915ff52c2d04ae27f46025fe2000f4d87c394617d7cbba"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "b74bcc85cd26b15992ebb8370b533b48",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 137061,
"upload_time": "2024-08-09T18:30:48",
"upload_time_iso_8601": "2024-08-09T18:30:48.809624Z",
"url": "https://files.pythonhosted.org/packages/a3/f6/b185e6d905d27f5875c6027feeab4b8453f151e866af25311dfb238fb450/pyfqmr-0.2.1-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0c105ed1984da3a87f68e02e018e6f195263145582171d006810988bc07b400d",
"md5": "6807183e05261983baf4e2e585215fbd",
"sha256": "eeea2b472215fea64b7f3bb2f0087c1ce32f6b551b334983452fa999ef70b4ba"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "6807183e05261983baf4e2e585215fbd",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 127083,
"upload_time": "2024-08-09T18:30:51",
"upload_time_iso_8601": "2024-08-09T18:30:51.360576Z",
"url": "https://files.pythonhosted.org/packages/0c/10/5ed1984da3a87f68e02e018e6f195263145582171d006810988bc07b400d/pyfqmr-0.2.1-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "83ace8c878bb8962c74866d2ab087af4f2c6062fca44fb7f63af3f368270cf03",
"md5": "f75ff44103bcf10ebd0cd1a024863e91",
"sha256": "645007b5bd2ce9387a7070f82b66b47dae20ab0fe4745c33e406a033402cb54c"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "f75ff44103bcf10ebd0cd1a024863e91",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 864146,
"upload_time": "2024-08-09T18:30:59",
"upload_time_iso_8601": "2024-08-09T18:30:59.030437Z",
"url": "https://files.pythonhosted.org/packages/83/ac/e8c878bb8962c74866d2ab087af4f2c6062fca44fb7f63af3f368270cf03/pyfqmr-0.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "920d8ac80018eb445e9397332ce6d394499529d13675a43882d5dbdeb367d587",
"md5": "8493df70d0f5ccaabc9bc763677208bc",
"sha256": "b91f42ea59fdd274ebfd86415059f67ceb74cbc3d1d103f59a4c2795ddc0212a"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "8493df70d0f5ccaabc9bc763677208bc",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 875812,
"upload_time": "2024-08-09T18:31:07",
"upload_time_iso_8601": "2024-08-09T18:31:07.140883Z",
"url": "https://files.pythonhosted.org/packages/92/0d/8ac80018eb445e9397332ce6d394499529d13675a43882d5dbdeb367d587/pyfqmr-0.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eee1aa53b0f11d707f1425d518951ac3cee1a8f8a2e9658f286b3f7f8e4d8fb7",
"md5": "98a2e77a535557ae4104030b1cf7eb21",
"sha256": "910e6ca0aeb8531e398e72acb3f9389cf267e0e991f550dfed165f0e776017ee"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "98a2e77a535557ae4104030b1cf7eb21",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 96660,
"upload_time": "2024-08-09T18:31:09",
"upload_time_iso_8601": "2024-08-09T18:31:09.763770Z",
"url": "https://files.pythonhosted.org/packages/ee/e1/aa53b0f11d707f1425d518951ac3cee1a8f8a2e9658f286b3f7f8e4d8fb7/pyfqmr-0.2.1-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4067ee26ced5f383611a712fc41b4773f017d3e1aa8cef0f7df0df6ab46b1c7a",
"md5": "a415c52b65c9cccc74f9d0d1e62155a9",
"sha256": "8f10084165570d4b934fb260c8e3e76a20c93b52e77ad786ef6b0f61626a419c"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "a415c52b65c9cccc74f9d0d1e62155a9",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 112214,
"upload_time": "2024-08-09T18:31:11",
"upload_time_iso_8601": "2024-08-09T18:31:11.507872Z",
"url": "https://files.pythonhosted.org/packages/40/67/ee26ced5f383611a712fc41b4773f017d3e1aa8cef0f7df0df6ab46b1c7a/pyfqmr-0.2.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cc4fa75723e8fd81448418b2cae1fa76dfd92d98f41aa69f7d419aedccff466e",
"md5": "57d7dc22b28fb0b74a6b6a0b50fe6d83",
"sha256": "0f5657960c4f8fa4554ac23b495062e6122580298e62e45e24e1be43f5a26c71"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "57d7dc22b28fb0b74a6b6a0b50fe6d83",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 138185,
"upload_time": "2024-08-09T18:31:14",
"upload_time_iso_8601": "2024-08-09T18:31:14.626028Z",
"url": "https://files.pythonhosted.org/packages/cc/4f/a75723e8fd81448418b2cae1fa76dfd92d98f41aa69f7d419aedccff466e/pyfqmr-0.2.1-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "32d9389cd01af29bb2905ee0644302465931ac705ec574ffa5963937337c9972",
"md5": "5822cd192fbb3f11eedcf90bdcbd3171",
"sha256": "3b48b33f89ed9f470974cd56f38cd383de187d9bdd3c82e6b1e52b0661e66403"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "5822cd192fbb3f11eedcf90bdcbd3171",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 127816,
"upload_time": "2024-08-09T18:31:16",
"upload_time_iso_8601": "2024-08-09T18:31:16.543180Z",
"url": "https://files.pythonhosted.org/packages/32/d9/389cd01af29bb2905ee0644302465931ac705ec574ffa5963937337c9972/pyfqmr-0.2.1-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1f631e739f255feeb14761d939101f2d8f9a051795a29b4ab42bfae229caef30",
"md5": "07fa8fb8b9c41680c035531b69ed614e",
"sha256": "5b6719cafcc264010d9bb924716e6926be1a678d2361b6277b7cafa384cacf9c"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "07fa8fb8b9c41680c035531b69ed614e",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 857559,
"upload_time": "2024-08-09T18:31:23",
"upload_time_iso_8601": "2024-08-09T18:31:23.607775Z",
"url": "https://files.pythonhosted.org/packages/1f/63/1e739f255feeb14761d939101f2d8f9a051795a29b4ab42bfae229caef30/pyfqmr-0.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "21f2c894031d60d2e4c9abc0f5b59ffc61354d621869a0ddf4177d21395fd412",
"md5": "51fcddd9828f5043d79a10de0d433f69",
"sha256": "97872e9e0f6cde0778f36774d4fd5ca3edf3316a9b9c12717b05b8c4eef12707"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "51fcddd9828f5043d79a10de0d433f69",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 874142,
"upload_time": "2024-08-09T18:31:31",
"upload_time_iso_8601": "2024-08-09T18:31:31.370005Z",
"url": "https://files.pythonhosted.org/packages/21/f2/c894031d60d2e4c9abc0f5b59ffc61354d621869a0ddf4177d21395fd412/pyfqmr-0.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8ba6507c41823c0bc7f093a94be3b85696fdd6158e915a412cf7909fcd351b11",
"md5": "4dddb45bfadacbef7b7e71b8f1f14b5d",
"sha256": "e36daf5c8e7fb7104c22f19bcad7a5d93fe27545f81059dcc982a066733586ad"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "4dddb45bfadacbef7b7e71b8f1f14b5d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 96696,
"upload_time": "2024-08-09T18:31:34",
"upload_time_iso_8601": "2024-08-09T18:31:34.018118Z",
"url": "https://files.pythonhosted.org/packages/8b/a6/507c41823c0bc7f093a94be3b85696fdd6158e915a412cf7909fcd351b11/pyfqmr-0.2.1-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7c27f00cab1778df5ca685a56722e9954c0090b204afc24476922ddf1d0cfe3d",
"md5": "d696aeaae86db6c810e3d2c9e5584ec4",
"sha256": "ad67ba1279d26d05ed0c434b1ecc3d0c4bf7d00031204fca333e43a360a237b1"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "d696aeaae86db6c810e3d2c9e5584ec4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 111953,
"upload_time": "2024-08-09T18:31:35",
"upload_time_iso_8601": "2024-08-09T18:31:35.877052Z",
"url": "https://files.pythonhosted.org/packages/7c/27/f00cab1778df5ca685a56722e9954c0090b204afc24476922ddf1d0cfe3d/pyfqmr-0.2.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5467150d213aa6011829664984990dce79ee048835ecdbc4162185116dd19b0c",
"md5": "244b69ef68d22c63007ce65ff20ed21f",
"sha256": "13a01c89dd9c1e34cfe198b6be67007f1ef293b7e02e7de9110c983607658692"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "244b69ef68d22c63007ce65ff20ed21f",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 136557,
"upload_time": "2024-08-09T18:28:59",
"upload_time_iso_8601": "2024-08-09T18:28:59.831920Z",
"url": "https://files.pythonhosted.org/packages/54/67/150d213aa6011829664984990dce79ee048835ecdbc4162185116dd19b0c/pyfqmr-0.2.1-cp37-cp37m-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b61a7eff8945a5c83beada1185bb2f83b671f7aa4836b9afb329794d670857ef",
"md5": "bde4e5541c8c0c690e34f8afb31152f7",
"sha256": "ea6d26e1c79cd2333aff1ba85dd3c1434ed79a054ca35356faf2c1aed6173e46"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "bde4e5541c8c0c690e34f8afb31152f7",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 793687,
"upload_time": "2024-08-09T18:29:10",
"upload_time_iso_8601": "2024-08-09T18:29:10.292706Z",
"url": "https://files.pythonhosted.org/packages/b6/1a/7eff8945a5c83beada1185bb2f83b671f7aa4836b9afb329794d670857ef/pyfqmr-0.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3d139ad9ef98225fcc181f031503b166878ce03abe5902d9bb540168c5edbea3",
"md5": "a545d0348e485603ef96e203f53f62fd",
"sha256": "a59c80fba956ea968e472d63a892638ea58419848876cb0dc02aed47abd9345d"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "a545d0348e485603ef96e203f53f62fd",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 808321,
"upload_time": "2024-08-09T18:29:20",
"upload_time_iso_8601": "2024-08-09T18:29:20.566294Z",
"url": "https://files.pythonhosted.org/packages/3d/13/9ad9ef98225fcc181f031503b166878ce03abe5902d9bb540168c5edbea3/pyfqmr-0.2.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b81d309d0838c48bf6592585523abf35b109cb84b1358bcefed6b4131343f387",
"md5": "2ffdd64023c325439ed106f7fa856132",
"sha256": "37abbd0745747016bc90d994415035d18b27b967d2ef1d9cfbaa28aa3d70c4d6"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp37-cp37m-win32.whl",
"has_sig": false,
"md5_digest": "2ffdd64023c325439ed106f7fa856132",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 97020,
"upload_time": "2024-08-09T18:29:23",
"upload_time_iso_8601": "2024-08-09T18:29:23.090141Z",
"url": "https://files.pythonhosted.org/packages/b8/1d/309d0838c48bf6592585523abf35b109cb84b1358bcefed6b4131343f387/pyfqmr-0.2.1-cp37-cp37m-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "39bf30385964d3a503ccf36d3a9bc94f688a2b4c445f0d949b527300fc534399",
"md5": "9debdeb0752eff7c3c18137d07192171",
"sha256": "8fabf879b7391a916c63349dfbdcf1b41176276d299f491c9b861072938f0653"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp37-cp37m-win_amd64.whl",
"has_sig": false,
"md5_digest": "9debdeb0752eff7c3c18137d07192171",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 112167,
"upload_time": "2024-08-09T18:29:25",
"upload_time_iso_8601": "2024-08-09T18:29:25.875405Z",
"url": "https://files.pythonhosted.org/packages/39/bf/30385964d3a503ccf36d3a9bc94f688a2b4c445f0d949b527300fc534399/pyfqmr-0.2.1-cp37-cp37m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "61189c6c90f15569b5fb2bbbcd57cd1d323c390cb5a219291d6a094bf7c98db4",
"md5": "acd33a09476811facceba151ec4bd4b4",
"sha256": "8b2bfb6afdb8d5de09dc1c9804f5eaca2621ddb80853cae9d814ec38aa88bdbc"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "acd33a09476811facceba151ec4bd4b4",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 137047,
"upload_time": "2024-08-09T18:29:28",
"upload_time_iso_8601": "2024-08-09T18:29:28.804997Z",
"url": "https://files.pythonhosted.org/packages/61/18/9c6c90f15569b5fb2bbbcd57cd1d323c390cb5a219291d6a094bf7c98db4/pyfqmr-0.2.1-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ab4bdceaaf2d4912680377619dcf31bd4601baa303d7ad93f8bd66edf1faf09d",
"md5": "0674e6061183161bdf6198cd3e207103",
"sha256": "8d869530fab4b8204d86132f023c0efeefffd9bdd6002a02cf62e46be832c963"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp38-cp38-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "0674e6061183161bdf6198cd3e207103",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 127401,
"upload_time": "2024-08-09T18:29:31",
"upload_time_iso_8601": "2024-08-09T18:29:31.678675Z",
"url": "https://files.pythonhosted.org/packages/ab/4b/dceaaf2d4912680377619dcf31bd4601baa303d7ad93f8bd66edf1faf09d/pyfqmr-0.2.1-cp38-cp38-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0443b6af370fb75f96f30fd215d16947ed03d1b6d24a4cd2af056cda310761e8",
"md5": "5b390b21ad7dd3996345f7b52bcd4428",
"sha256": "f136f4634ff46f2475ad4ef33cf948481c4ef95b39119dcb26f6958c32bb8deb"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "5b390b21ad7dd3996345f7b52bcd4428",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 834383,
"upload_time": "2024-08-09T18:29:42",
"upload_time_iso_8601": "2024-08-09T18:29:42.346382Z",
"url": "https://files.pythonhosted.org/packages/04/43/b6af370fb75f96f30fd215d16947ed03d1b6d24a4cd2af056cda310761e8/pyfqmr-0.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "feb3fdb206b5aae9286eb3fae0ff8536571d27d9dfc4eb044902599a2ff42c13",
"md5": "61c5ba6ecc9059e748178662683bac4b",
"sha256": "8930b0580aac3ec68fcbe4562b29962552cfe46e189ea11f857922ca9f8ee4cf"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "61c5ba6ecc9059e748178662683bac4b",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 846712,
"upload_time": "2024-08-09T18:29:51",
"upload_time_iso_8601": "2024-08-09T18:29:51.462842Z",
"url": "https://files.pythonhosted.org/packages/fe/b3/fdb206b5aae9286eb3fae0ff8536571d27d9dfc4eb044902599a2ff42c13/pyfqmr-0.2.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "06fd95d80ed6454375b4016be1c1c98eb0fd3af949513329622858dee1f4d04d",
"md5": "55894bde471e103c991335e45bbf5159",
"sha256": "5013b858683b5709ba7ccb552b14d43462b88be921f4d3c48e5a0747fab49e5c"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp38-cp38-win32.whl",
"has_sig": false,
"md5_digest": "55894bde471e103c991335e45bbf5159",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 97229,
"upload_time": "2024-08-09T18:29:53",
"upload_time_iso_8601": "2024-08-09T18:29:53.837232Z",
"url": "https://files.pythonhosted.org/packages/06/fd/95d80ed6454375b4016be1c1c98eb0fd3af949513329622858dee1f4d04d/pyfqmr-0.2.1-cp38-cp38-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e0ff69a65eae6db11b6e1030cdd7aaee458d8c7a627449cd92032506859a1e5c",
"md5": "0257728588fdd8264fed4275eb3eb2a3",
"sha256": "24c786d39355817db16d5e33ea72eb7e4fdeb6a45ae8f3c05477efe0c106962c"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "0257728588fdd8264fed4275eb3eb2a3",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 112576,
"upload_time": "2024-08-09T18:29:56",
"upload_time_iso_8601": "2024-08-09T18:29:56.255124Z",
"url": "https://files.pythonhosted.org/packages/e0/ff/69a65eae6db11b6e1030cdd7aaee458d8c7a627449cd92032506859a1e5c/pyfqmr-0.2.1-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7a70e76a4b4169bc1ccf290714db4a0ac3f372709f916463de5da43685c79399",
"md5": "7b5802b88ce4a1fc333dc116cd9200e8",
"sha256": "329aa99a383db99898eebcce4e538f048b7f1b7125176fd912fdf3facbe8b21d"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "7b5802b88ce4a1fc333dc116cd9200e8",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 137715,
"upload_time": "2024-08-09T18:29:58",
"upload_time_iso_8601": "2024-08-09T18:29:58.705523Z",
"url": "https://files.pythonhosted.org/packages/7a/70/e76a4b4169bc1ccf290714db4a0ac3f372709f916463de5da43685c79399/pyfqmr-0.2.1-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3200ba586c5e528c9ecabdc021e75faa17f4a73e3445b8da3184d2da35509662",
"md5": "480357a1c2060fd831c5653d162597d2",
"sha256": "2d0c7e8944bbfd8c3168d52156b76ae40c3336ffc85e0e2d25099d5507b2c87c"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "480357a1c2060fd831c5653d162597d2",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 127714,
"upload_time": "2024-08-09T18:30:01",
"upload_time_iso_8601": "2024-08-09T18:30:01.412144Z",
"url": "https://files.pythonhosted.org/packages/32/00/ba586c5e528c9ecabdc021e75faa17f4a73e3445b8da3184d2da35509662/pyfqmr-0.2.1-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9bf3080bff0e1d6710c028ae36fd0e359c94fecb5245f902008ad045742ffc8c",
"md5": "1b8fad4ec3c9774d3c1e76cba7b2ee9a",
"sha256": "2dab6a53ff239b39ca4a078acc2b51733f586d6a2281ad5ee4bece0caa1a409a"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "1b8fad4ec3c9774d3c1e76cba7b2ee9a",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 827411,
"upload_time": "2024-08-09T18:30:10",
"upload_time_iso_8601": "2024-08-09T18:30:10.844334Z",
"url": "https://files.pythonhosted.org/packages/9b/f3/080bff0e1d6710c028ae36fd0e359c94fecb5245f902008ad045742ffc8c/pyfqmr-0.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7e5a8d66de3f3b85db4564f7cc780c6d0ea24bc2c1f8a402f468b8d3bdc39b1d",
"md5": "efd63030318f4c77d476bff2103ec6d4",
"sha256": "adee07d15755ad4c145cf80598cc7129a857b18b879191e3fbd3e25d55278632"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "efd63030318f4c77d476bff2103ec6d4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 838784,
"upload_time": "2024-08-09T18:30:19",
"upload_time_iso_8601": "2024-08-09T18:30:19.441161Z",
"url": "https://files.pythonhosted.org/packages/7e/5a/8d66de3f3b85db4564f7cc780c6d0ea24bc2c1f8a402f468b8d3bdc39b1d/pyfqmr-0.2.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0563e2674078735eb0ae0eb442a4255c0415300f8c90fa0a9f5968a8f0abbfc2",
"md5": "d7385e322978b7b716df7e79ad1867e9",
"sha256": "634621b400e850fa656b948e2dd738e989d51528ad07fc59dae9386e57adf9bd"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "d7385e322978b7b716df7e79ad1867e9",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 97601,
"upload_time": "2024-08-09T18:30:21",
"upload_time_iso_8601": "2024-08-09T18:30:21.588352Z",
"url": "https://files.pythonhosted.org/packages/05/63/e2674078735eb0ae0eb442a4255c0415300f8c90fa0a9f5968a8f0abbfc2/pyfqmr-0.2.1-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3828ff0d0de9d65d18d45b8d669a6c16f75ad87b41ccca7ee9aaa88f6a56324a",
"md5": "ebde586dc2fe3054a1298cf6bca2e1a8",
"sha256": "e13854548a99669fc5569cb3842d11472a47463be48c16ef0600c1f021c7804a"
},
"downloads": -1,
"filename": "pyfqmr-0.2.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "ebde586dc2fe3054a1298cf6bca2e1a8",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 112682,
"upload_time": "2024-08-09T18:30:23",
"upload_time_iso_8601": "2024-08-09T18:30:23.392225Z",
"url": "https://files.pythonhosted.org/packages/38/28/ff0d0de9d65d18d45b8d669a6c16f75ad87b41ccca7ee9aaa88f6a56324a/pyfqmr-0.2.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-08-09 18:30:25",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Kramer84",
"github_project": "pyfqmr-Fast-quadric-Mesh-Reduction",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyfqmr"
}