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.
(Model source: Bust of Sappho)
Perhaps the easiest way of trying out PyMesh is through docker:
docker run -it qnzhou/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 qnzhou/pymesh meshstat.py -x /models/model.obj
This command mounts your currect working directory to the /models
directory
in a docker container and executes the meshstat.py
script on the mesh file
model.obj
in the currect directory.
To retrieve the code:
git clone https://github.com/qnzhou/PyMesh.git
cd PyMesh
git submodule update --init
PyMesh depends on the following tools/libraries:
Optional library:
Libraries marked with *
are included in $PYMESH_PATH/third_party
directory.
If any of the dependent library is not installed in standard locations
(/usr/local/
, /opt/local
), one needs to set environment variables that
point to the correct directories. PyMesh check the following environment
variables:
EIGEN_INC
: directory containing the Eigen library.GOOGLEHASH_INCLUDES
: directory containing sparse hash.CGAL_PATH
: path to CGAL libraryBOOST_INC
: directory containing boost.LIBIGL_PATH
: path to libigl.CORK_PATH
: path to cork.TETGEN_PATH
: path to tetgenTRIANGLE_PATH
: path to triangleQHULL_PATH
: path to qhullCLIPPER_PATH
: path to clipperCARVE_PATH
: path to carveGEOGRAM_PATH
: path to GeoGramQUARTET_PATH
: path to quartet
Let $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
mkdir build
cd build
cmake ..
make
make install
Third party dependencies will be installed in
$PYMESH_PATH/python/pymesh/third_party
directory.
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 all_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.