Open Source C++ Library for Geometry Processing

Free C++ API that provides support for managing and manipulating 3D shapes as well as rendering and conversion of 3D meshes from within C++ apps

libigl is an award-winning open source C++ library for geometry processing that is easy to use and provides a rich set of data structures and functions for managing and manipulating 3d shapes. The libigl library is a header-only library that means you need to include igl headers before compiling any file.

The library provides a simple and powerful 3d viewer as well as fully supports loading, rendering, and converting 3d meshes inside C++ applications. libigl is the winner of the Software Award at the Eurographics Symposium on Geometry Processing 2015. The library supports some powerful features such as mesh Booleans, quad remeshing, parameterization, and shape deformation.

The library gives extreme importance to ease of use and experimentation. It supports several important features related to loading and handling 3D shapes, such as loading and manipulation of 3d triangle meshes, scaling of 3D shapes, reading triangle meshes, computing affine transformations, 3D scene animating, computing affine transformations, and much more.

Previous Next

Getting Started with libigl


The easiest way to install libigl is by using GitHub. Please use the following command for a successful installation.

Install libigl via GitHub

git clone -- 

Load and Render 3D Meshes via C++

In 3D computer graphics, a mesh is a collection of vertices, edges, and faces that defines the shape of a 3D object. A vertex is a single point and an edge is a straight line segment connecting two vertices. The open source libigl library enables software developers to programmatically load and render 3D meshes using a couple of lines of C++ code. It provides numerous functions to read and write many common mesh formats with ease. It just requires one-liner code to read a mesh from a file

Shape Deformation Support

The Shape deformation techniques help you to swiftly optimize existing geometries, and surfaces or meshes. The award-winning libigl library gives software programmers the power to apply different state-of-the-art deformation techniques inside their own applications. It supports techniques, ranging from quadratic mesh-based energy minimizers to skinning methods, to non-linear elasticity-inspired techniques.

Apply Animation to 3D Scenes

The Easy3D library has provided functionality for creating and visualizing drawable without associating it with any 3D models. Usually, the drawable are usually created for rendering 3D models or loaded from files. The Easy3D library supports visualizing 3D data without explicitly defining a model or you can generate it for a specific rendering purpose or use the viewer to visualize the drawable. Please remember that you need to create a viewer before creating any drawable.