Home

Awesome

CircleCI Build Status Documentation Status

About PyMesh

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.

PyMesh (Model source: Bust of Sappho)

Documentation

Latest documentation

Quick try

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 /models directory in a docker container and executes the meshstat.py script on the mesh file model.obj in the current directory.

Download Source

To retrieve the code:

git clone https://github.com/PyMesh/PyMesh.git
cd PyMesh
git submodule update --init

Dependencies

PyMesh has the following required dependencies:

The following C++ libraries are required. They are included in $PYMESH_PATH/third_party directory.

PyMesh also has a number of optional dependencies:

All of the optional libraries are included in $PYMESH_PATH/third_party directory.

Specify Dependency Locations

All dependencies are included as git submodules in the third_party directory. 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 (/usr/local/, /opt/local), one needs to set environment variables that point to the correct directories. PyMesh check the following environment variables:

Build

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
build.py all

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 tests

Make sure all unit tests are passed before using the library.

Install

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.

Feedback

Thank you for using PyMesh! Please consider help PyMesh improve by leaving feedback!