PyMesh is a code base developed by Qingnan Zhou for his PhD research at New York University. It is a rapid prototyping platform focused on geometry processing. PyMesh is written with both C++ and Python, where computational intensive functionalities are realized in C++, and Python is used for creating minimalistic and easy to use interfaces.
(Model source: Bust of Sappho)
Perhaps the easiest way of trying out PyMesh is through docker:
docker run -it pymesh/pymesh Python 3.6.4 (default, Feb 17 2018, 09:32:33) [GCC 4.9.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import pymesh
For example, to run meshstat.py:
docker run -it --rm -v `pwd`:/models pymesh/pymesh meshstat.py -x /models/model.obj
This command mounts your current working directory to the
in a docker container and executes the
meshstat.py script on the mesh file
model.obj in the current directory.
To retrieve the code:
git clone https://github.com/PyMesh/PyMesh.git cd PyMesh git submodule update --init
PyMesh has the following required dependencies:
The following C++ libraries are required. They are included in
PyMesh also has a number of optional dependencies:
All of the optional libraries are included in
All dependencies are included as git submodules in the
It is recommended to build these dependencies directly (see Build section).
However, it is possible to use an existing dependency installed on your system.
If the dependent library is not installed in standard locations
/opt/local), one needs to set environment variables that
point to the correct directories. PyMesh check the following environment
EIGEN_PATHto the directory containing the
CGAL_PATHto the directory containing
BOOST_INCto the directory containing boost.
GMP_LIBto the directories containing GMP header and library.
includedirectory of libigl sources.
CORK_PATHto the install directory of Cork.
TETGEN_PATHto the install directory of Tetgen.
TRIANGLE_PATHto the install directory of Triangle.
QHULL_PATHto the install directory of Qhull.
CLIPPER_PATHto the install directory of Clipper.
CARVE_PATHto the install directory of Carve.
GEOGRAM_PATHto the install directory of Geogram.
QUARTET_PATHto the install directory of Quartet.
Draco_PATHto the install directory of Draco.
MMG_PATHto the install directory of MMG.
$PYMESH_PATH be the root directory of the repository.
The first step is to compile the optional third party dependencies:
cd $PYMESH_PATH/third_party build.py all
Third party dependencies will be installed in
Now we can build the main project. It is recommended to build out of source:
cd $PYMESH_PATH mkdir build cd build cmake ..
To build the PyMesh library:
make make tests
Make sure all unit tests are passed before using the library.
The output of building PyMesh consists a set of C++ libraries and a python module. Installing the C++ library is currently not available. However, installing the python package can be done:
./setup.py build # This an alternative way of calling cmake/make ./setup.py install
To check PyMesh is installed correctly, run the following python unit tests::
python -c "import pymesh; pymesh.test()"
Once again, make sure all unit tests are passed, and report any unit test failures.
Thank you for using PyMesh! Please consider help PyMesh improve by leaving feedback!