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
  • qt


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

CGAL Project 2020 Projects

  • Ahmed Essam-Sayed
    Enhancing the 2D Arrangement Demo (1)
    The CGAL 2D arrangement package is capable of creating planar arrangements, and running queries on them. CGAL provides a demo for the package that...
  • 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...
  • Felix Herrmann
    Extend CGAL Point Cloud Registration to Multiple Objects
    CGAL recently added wrappers to their library to enable global and local point-cloud registration using the OpenGR library. In the current version,...
  • Jing Yang
    Improve CGAL basic viewer
    I'm currently a Ph.D. student at the University of Southern California and focused on computer graphics. This doc proposed my detailed solutions to...
  • Jackson Campolattaro
    Octree Package
    A new package which provides an octree data structure. CGAL’s Shape-detection package depends on an octree for nearest-neighbor calculations. The...
  • Shuhao Tan
    Test of Simplicity for a Cycle on a Surface
    The new package "Surface mesh topology" will be available in the next CGAL release. It is concerned with the computation of topological invariants of...
  • Ayush Saraswat
    Use Embree for Ray Shooting
    Introduction of Intel’s Embree and its applications to CGAL in the form of a package "Embree" after sufficient bench-marking. The "Embree" package...