{"id":13408126,"url":"https://github.com/PyMesh/PyMesh","last_synced_at":"2025-03-14T12:32:10.947Z","repository":{"id":33343653,"uuid":"36988453","full_name":"PyMesh/PyMesh","owner":"PyMesh","description":"Geometry Processing Library for Python","archived":false,"fork":false,"pushed_at":"2024-08-08T20:25:21.000Z","size":21953,"stargazers_count":1895,"open_issues_count":247,"forks_count":362,"subscribers_count":62,"default_branch":"main","last_synced_at":"2024-10-29T15:03:03.727Z","etag":null,"topics":["3d","convex-hull","geometry","geometry-processing","graphics","mesh-boolean","mesh-cleanup","mesh-generation","outer-hull","python"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PyMesh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-06-06T17:17:59.000Z","updated_at":"2024-10-25T13:34:19.000Z","dependencies_parsed_at":"2024-10-30T12:16:27.786Z","dependency_job_id":null,"html_url":"https://github.com/PyMesh/PyMesh","commit_stats":{"total_commits":1962,"total_committers":39,"mean_commits":50.30769230769231,"dds":0.6462793068297655,"last_synced_commit":"384ba882b7558ba6e8653ed263c419226c22bddf"},"previous_names":["qnzhou/pymesh"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMesh%2FPyMesh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMesh%2FPyMesh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMesh%2FPyMesh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PyMesh%2FPyMesh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PyMesh","download_url":"https://codeload.github.com/PyMesh/PyMesh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243382926,"owners_count":20282049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d","convex-hull","geometry","geometry-processing","graphics","mesh-boolean","mesh-cleanup","mesh-generation","outer-hull","python"],"created_at":"2024-07-30T20:00:50.939Z","updated_at":"2025-03-14T12:32:10.937Z","avatar_url":"https://github.com/PyMesh.png","language":"C++","readme":"[![CircleCI](https://circleci.com/gh/PyMesh/PyMesh/tree/main.svg?style=svg)](https://circleci.com/gh/PyMesh/PyMesh/tree/main)\n[![Build Status](https://travis-ci.org/PyMesh/PyMesh.svg?branch=main)](https://travis-ci.org/PyMesh/PyMesh)\n[![Documentation Status](https://readthedocs.org/projects/pymesh/badge/?version=latest)](https://pymesh.readthedocs.io/en/latest/?badge=latest)\n\n\n### About PyMesh ###\n\n**PyMesh** is a code base developed by Qingnan Zhou for his PhD research at New\nYork University.  It is a rapid prototyping platform focused on geometry\nprocessing.  **PyMesh** is written with both C++ and Python, where\ncomputational intensive functionalities are realized in C++, and Python is used\nfor creating minimalistic and easy to use interfaces.\n\n![PyMesh][teaser]\n(Model source: [Bust of Sappho](https://www.thingiverse.com/thing:14565))\n\n### Documentation ###\n\n[Latest documentation](http://pymesh.readthedocs.org/en/latest/)\n\n### Quick try ###\n\nPerhaps the easiest way of trying out PyMesh is through\n[docker](https://www.docker.com/):\n\n    docker run -it pymesh/pymesh\n    Python 3.6.4 (default, Feb 17 2018, 09:32:33)\n    [GCC 4.9.2] on linux\n    Type \"help\", \"copyright\", \"credits\" or \"license\" for more information.\n    \u003e\u003e\u003e import pymesh\n\nFor example, to run [meshstat.py](scripts/meshstat.py):\n\n    docker run -it --rm -v `pwd`:/models pymesh/pymesh meshstat.py -x /models/model.obj\n\nThis command mounts your current working directory to the `/models` directory\nin a docker container and executes the `meshstat.py` script on the mesh file\n`model.obj` in the current directory.\n\n### Download Source ###\n\nTo retrieve the code:\n\n    git clone https://github.com/PyMesh/PyMesh.git\n    cd PyMesh\n    git submodule update --init\n\n### Dependencies ###\n\nPyMesh has the following required dependencies:\n\n* [Python](https://www.python.org/) v2.7 and v3.x.\n* [NumPy](http://www.numpy.org/) v1.8 or higher\n* [SciPy](http://www.scipy.org/) v0.13 or higher\n* [nose](http://nose.readthedocs.io/en/latest/) v1.3.7 or higher\n\nThe following C++ libraries are required.  They are included in\n`$PYMESH_PATH/third_party` directory.\n\n* [Eigen](http://eigen.tuxfamily.org/index.php?title=Main_Page) v3.2 or higher\n* [PyBind11](https://github.com/pybind/pybind11)\n\nPyMesh also has a number of optional dependencies:\n\n* [Carve](https://github.com/qnzhou/carve): A fast, robust constructive solid\n  geometry library.\n* [CGAL](https://www.cgal.org/): The Computational Geometry Algorithms Library.\n* [Clipper](http://www.angusj.com/delphi/clipper.php): An open source freeware\n  library for clipping and offsetting lines and polygons.\n* [Cork](https://github.com/gilbo/cork): A 3D boolean/CSG library.\n* [Draco](https://google.github.io/draco/): An open-source library for\n  compressing and decompressing 3D geometric meshes and point clouds\n* [Geogram](http://alice.loria.fr/software/geogram/doc/html/index.html): A\n  programming library of geometric algorithms\n* [libigl](http://igl.ethz.ch/projects/libigl/): A simple C++ geometry\n  processing library.\n* [MMG](https://www.mmgtools.org/): Robust, open source \u0026 multidisciplinary\n  software for remeshing.\n* [Qhull](http://www.qhull.org/): Engine for convex hulls, Delaunay\n  triangulations, Voronoi diagrams computations.\n* [Quartet](https://github.com/crawforddoran/quartet): A tetrahedral mesh\n  generator that does isosurface stuffing with an acute tetrahedral tile.\n* [TBB](https://www.threadingbuildingblocks.org/): Thread building blocks from\n  Intel.\n* [Tetgen](http://wias-berlin.de/software/tetgen/): Tetrahedral mesh generation\n  engine.\n* [Triangle](http://www.cs.cmu.edu/~quake/triangle.html): A two-Dimensional\n  quality mesh generator and Delaunay triangulator.\n\nAll of the optional libraries are included in `$PYMESH_PATH/third_party`\ndirectory.\n\n### Specify Dependency Locations ###\n\nAll dependencies are included as git submodules in the `third_party` directory.\nIt is recommended to build these dependencies directly (see [Build](#Build) section).\nHowever, it is possible to use an existing dependency installed on your system.\nIf the dependent library is not installed in standard locations\n(``/usr/local/``, ``/opt/local``), one needs to set environment variables that\npoint to the correct directories.  PyMesh check the following environment\nvariables:\n\n* Eigen: Set ``EIGEN_PATH`` to the directory containing the `eigen3` directory.\n* CGAL: Set ``CGAL_PATH`` to the directory containing `UseCGAL.cmake` file.\n    * Boost: Set ``BOOST_INC`` to the directory containing boost.\n    * GMP: Set ``GMP_INC`` and ``GMP_LIB`` to the directories containing GMP\n      header and library.\n* libigl: Set ``LIBIGL_PATH`` the ``include`` directory of libigl sources.\n* Cork: Set ``CORK_PATH`` to the install directory of Cork.\n* Tetgen: Set ``TETGEN_PATH`` to the install directory of Tetgen.\n* Triangle: Set ``TRIANGLE_PATH`` to the install directory of Triangle.\n* Qhull: Set ``QHULL_PATH`` to the install directory of Qhull.\n* Clipper: Set ``CLIPPER_PATH`` to the install directory of Clipper.\n* Carve: Set ``CARVE_PATH`` to the install directory of Carve.\n* Geogram: Set ``GEOGRAM_PATH`` to the install directory of Geogram.\n* Quartet: Set ``QUARTET_PATH`` to the install directory of Quartet.\n* Draco: Set ``Draco_PATH`` to the install directory of Draco.\n* MMG: Set ``MMG_PATH`` to the install directory of MMG.\n\n### Build ###\n\nLet `$PYMESH_PATH` be the root directory of the repository.\nThe first step is to compile the optional third party dependencies:\n\n    cd $PYMESH_PATH/third_party\n    build.py all\n\nThird party dependencies will be installed in\n`$PYMESH_PATH/python/pymesh/third_party` directory.\n\nNow we can build the main project.  It is recommended to build out of source:\n\n    cd $PYMESH_PATH\n    mkdir build\n    cd build\n    cmake ..\n\nTo build the PyMesh library:\n\n    make\n    make tests\n\nMake sure all unit tests are passed before using the library.\n\n### Install ###\n\nThe output of building PyMesh consists a set of C++ libraries and a python\nmodule. Installing the C++ library is currently not available.  However,\ninstalling the python package can be done:\n\n    ./setup.py build # This an alternative way of calling cmake/make\n    ./setup.py install\n\nTo check PyMesh is installed correctly, run the following python unit tests::\n\n    python -c \"import pymesh; pymesh.test()\"\n\nOnce again, make sure all unit tests are passed, and report any unit test\nfailures.\n\n### Feedback ###\n\nThank you for using PyMesh!  Please consider help PyMesh improve by leaving\n[feedback]!\n\n[teaser]: docs/_static/pymesh_teaser.jpg\n[feedback]: https://docs.google.com/forms/d/e/1FAIpQLSc8YAzx1SL4t3qntzahYd0igPNGyIxw6N8eRs-PloYlwbPaXg/viewform?usp=pp_url\n","funding_links":[],"categories":["C++","Meshing"],"sub_categories":["Books"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPyMesh%2FPyMesh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FPyMesh%2FPyMesh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FPyMesh%2FPyMesh/lists"}