Skip to content
J. Andreas Bærentzen edited this page Mar 16, 2024 · 1 revision

Welcome to the GEL wiki!

GEL is a C++ library that contains basic data structures for 3D geometry representation.

The main data structures include

  • a half edge based mesh library
  • a graph data structure
  • voxel grids
  • a kD tree
  • vector, matrix library for dimensions 2,3, and 4.

Perhaps the most important aspect of GEL is that it contains some algorithms that are not easily found elsewhere.

The library also contains fairly well-tested implementations of well-known methods.

  • Iso-surface polygonization.
  • Distance field creation
  • Quadric Error Metric-based simplification
  • Subdivision (Catmull-Clark, Loop, root-3)
  • Smoothing (Laplacian, Taubin, and using bilateral normal filtering for feature preserving smoothing)
  • Mesh optimization for curvature minimisation or triangle quality improvement
  • various algorithms for cleaning and repairing meshes, e.g. hole closing, removal of caps and needles.

PyGEL a python package (available from PyPI as pygel3d) containing Python bindings for GEL. These do not cover the entire library, largely because some elements are better left to other Python libraries. PyGEL is described here. The early development process is documented on this page

Clone this wiki locally