Pimp your meshes!


Simple & Efficient Data Structure

The core of the library is a simple and efficient halfedge mesh data structure for storing and processing polygon surface meshes. It has been carefully designed and implemented with a focus on ease of use and performance while maintaining high flexibility.

Tried & Tested Algorithms

On top of the core data structure the library provides implementations of canonical geometry processing algorithms such as mesh simplification based on error quadrics, curvature adaptive remeshing, subdivision, smoothing, or parametrization.

Ready-to-Use Visualization Tools

To support rapid prototyping the library provides mesh viewers and visualization utilities based on OpenGL®. In addition, the library can be compiled into JavaScript thereby allowing to run mesh processing applications directly in a browser, see here for a demo.

Latest News

18 Feb 2019:  Version 1.0 Released!

16 Feb 2019:  License Changed to MIT License

Getting Started

Browse the Docs

The User Guide describes how to quickly get started using the pmp-library, provides an overview of the library and its capabilities, a tutorial as well as guidelines for contributing patches or new code.

The API Reference provides detailed information on the modules, classes, and functions provided by the pmp-library.

Checkout the GitHub Project to browse the source, get the latest development version, or to report any issues.

For the Impatient

Fetch the repository:

$ git clone --recursive https://github.com/pmp-library/pmp-library.git

Configure and build:

$ cd pmp-library && mkdir build && cd build && cmake .. && make

Run the mesh processing app:

$ ./mpview ../external/pmp-data/off/bunny.off

Open Source


The pmp-library is provided under a simple and flexible MIT license, thereby allowing for both open-source and commercial usage.


If you found the library to be useful for your projects, please drop us a line at info@pmp-library.org and let us know what you are using it for.


If you are using the pmp-library for research projects, please acknowledge its use by referencing

title  = {The Polygon Mesh Processing Library},
author = {Daniel Sieger and Mario Botsch},
note   = {http://www.pmp-library.org},
year   = {2019},

For references to specific algorithms implemented in the library check out the bibliography.


The pmp-library evolved from the Surface_mesh data structure developed by the Bielefeld Graphics & Geometry Group which in turn was originally derived from OpenMesh.