GELGEometry and Linear algebra
GEL is a C++ library of geometry processing tools mostly intended for computer graphics applications.
https://github.com/janba/GEL
PyGEL  Python bindings for GEL.
Reference manual for PyGEL
Main Features of GEL
a fairly mature halfedge based polygonal mesh data structure,
a graph data structure,
voxel grid data structures,
spatial data structures for triangles and points
Unique functionality includes
Local Separator Skeletonization
Inverse skeletonization: Face extrusion quad meshes (FEQ) from graphs.
Common geometry utilities
There are also several features that you will find elsewhere but which are included in GEL and work well. These features include:
GarlandHeckbert simplification of triangle meshes,
signed distance field (SDF) computation,
isosurface polygonization,
edge flippingbased mesh optimization,
mesh smoothing (including anisotropic smoothing).
Apart from these things, GEL also contains a linear algebra library for small vectors and matrices (2D, 3D, and 4D) as well as tools for visualizing meshes using OpenGL. One could argue that using a library such as Eigen for the former and perhaps PolyScope for that latter would be more appropriate. However, having these things be part of GEL makes the library more self contained.
GEL requires a recent C++ compiler but has very few dependencies. For visualization, OpenGL and GLFW are required, but these dependencies can be omitted if visualization is not needed. This somewhat limits the capabilities of GEL, and most projects that use GEL would also require other libraries (such as a linear algebra library) but by not requiring these to be installed as dependencies of GEL, compilation is simplified and porting to new platforms becomes much easier.
