C++ library of computational geometry and geometry processing

CGAL is a software library that offers a number of reliable geometric data structures and algorithms. CGAL components operate in 2D and 3D, and sometime in arbitrary dimensions. Examples of components include convex hulls, convex decomposition, Delaunay triangulations, Voronoi diagrams, polygonal surface mesh data-structures, mesh generation, Boolean operations, envelope computations, intersection detection, surface reconstruction, and subdivision surfaces.

CGAL is used in a variety of application domains such as CAD/CAM (computer aided design and modeling), GIS (geographic information systems), geophysics, image processing, molecular biology, robotics, motion planning, and graphics.

CGAL is written in C++ and rigorously adheres to the generic-programming paradigm.

CGAL became an Open Source project in 2003. Most of CGAL is under the GPL v3+ license, and some core parts are under the LGPL v3+. The semi-annual releases have currently about 10,000 downloads. CGAL is commercially supported by the spin-off company GeometryFactory.

lightbulb_outline View ideas list


  • c++
  • git
  • swig
  • python


  • Science and Medicine
  • computational geometry
  • geometry processing
  • mesh processing
  • arrangement
  • point set processing
email Mailing list
mail_outline Contact email

CGAL project 2019 Projects

  • Jasmeet Singh
    Basic Viewers in CGAL: Extending viewers to new datastructures
    CGAL provides now basic viewers, i.e. global functions allowing to visualize in 3D some CGAL data-structures. These small viewers are very usefull in...
  • Thien Hoang
    Compute a shortest non-contractible cycle on a surface
    A new package about the computation of some topological invariants on surfaces is under development in CGAL. The goal of this project is to add a new...
  • Saurabh Singh
    Enhancing the 2D Arrangement Demo
    The 2D Arrangement package can be used to construct, maintain, alter, and display arrangements in the plane. Once an arrangement is constructed, the...
  • Krezhairo
    Enhancing the 2D Regularized Boolean Set Operations Demo
    CGAL works on computational geometry. It has a Demo version of a package named '2D Regularized Boolean Set Operations'. With the use of generic...
  • Gennadii Sytov
    Generalized Global Regularization
    For this project, I would like to create a new CGAL package that combines the global regularization algorithm from Section 3 of the KIPPI paper,...
  • Martin Skrodzki
    Implementing a Fast Distance Computation between Triangle Meshes
    Measuring the similarity between two geometric models is an important problem in diverse fields, including computer graphics, computer games, and...
  • Baskin Burak Senbaslar
    Improvements of the Surface Mesh Simplification package
    The project will include adding new approaches to already existing triangulated mesh simplification framework of CGAL. The current approach depends...
  • Xiao Xiao
    K-DOP tree
    Intersection problems are common in many engineering applications, for example, enforcement of non-penetration constraints in contact mechanics,...
  • Necip Fazil Yildiran
    Make OpenGR be able to work directly with CGAL point clouds
    CGAL’s components are used with other libraries to achieve complex tasks, some of which are suffering from the lack of interoperability while some...