The Polygon Mesh Processing Library is a modern C++ open-source library for processing and visualizing polygon surface meshes. Its main features are:
- An efficient and easy-to-use mesh data structure
- Standard algorithms such as simplification, remeshing, subdivision, or smoothing
- Ready-to-use visualization tools
- Seamless cross-compilation to JavaScript (demo)
Clone the repository:
git clone --recursive https://github.com/pmp-library/pmp-library.gitConfigure and build:
cd pmp-library && mkdir build && cd build && cmake .. && makeRun the mesh processing app:
./mpview ../external/pmp-data/off/bunny.offBuild your own tool:
#include <pmp/SurfaceMesh.h> int main(void) { pmp::SurfaceMesh mesh; mesh.read("input.obj"); // .. do awesome things with your mesh mesh.write("output.obj"); }Contributions to PMP are welcome. See the contributing section of the user guide.
If you are using PMP for research projects, please acknowledge its use by referencing
@misc{pmp-library, title = {The Polygon Mesh Processing Library}, author = {Daniel Sieger and Mario Botsch}, note = {http://www.pmp-library.org}, year = {2019}, }We acknowledge that PMP evolved from our previous work on Surface_mesh and OpenMesh.
PMP is provided under a simple and flexible MIT-style license allowing for both open-source and commercial usage.