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 using both C++ and python, where
computational intensive functionalities are realized in C++, and Python is used
for create minimalistic and easy to use interfaces.
To retrieve the code:
git clone https://github.com/qnzhou/PyMesh.git cd PyMesh git submodule update --init
Be sure to save the root directory of PyMesh in the environment variable
Unit tests relies on this environment variable to load relevant libraries.
PyMesh depends on the following tools/libraries:
- Python v3.x.
- NumPy v1.8 or higher
- SciPy v0.13 or higher
- nose v1.3.7 or higher
- SWIG v3.0.5 or higher
- Eigen v3.2 or higher
Libraries marked with
* are included in
If any of 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_INC: directory containing the Eigen library.
GOOGLEHASH_INCLUDES: directory containing sparse hash.
CGAL_PATH: path to CGAL library
BOOST_INC: directory containing boost.
LIBIGL_PATH: path to libigl.
CORK_PATH: path to cork.
TETGEN_PATH: path to tetgen
TRIANGLE_PATH: path to triangle
QHULL_PATH: path to qhull
CLIPPER_PATH: path to clipper
CARVE_PATH: path to carve
GEOGRAM_PATH: path to GeoGram
QUARTET_PATH: path to quartet
The first step is to compile the optional third party dependencies:
cd $PYMESH_PATH/third_party mkdir build cd build cmake .. make make install
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 only build the C++ libraries without the swig python modules, change the last
cmake -DWITHOUT_SWIG=ON ..
To build the main PyMesh library:
make make src_tests
To build all available tools:
make tools make tools_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