# nmwsharp/geometry-central

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nmwsharp-geometry-central).**

1,320 stars · 182 forks · C++ · MIT

## Links

- GitHub: https://github.com/nmwsharp/geometry-central
- Homepage: https://geometry-central.net
- awesome-repositories: https://awesome-repositories.com/repository/nmwsharp-geometry-central.md

## Description

Geometry-central is a C++ framework designed for 3D geometry processing, surface analysis, and numerical computation. It provides a foundational toolkit for performing discrete differential geometry operations on manifold surface meshes, enabling the analysis and manipulation of complex 3D structures.

The library distinguishes itself through its support for intrinsic triangulation processing, which allows for the execution of geometric algorithms independently of vertex positions to maintain stability under deformation. It utilizes a half-edge mesh representation to facilitate constant-time traversal of mesh topology and employs element-based data buffering to optimize cache locality when associating custom attributes with mesh components.

The project covers a broad capability surface including the computation of geometric properties such as surface normals, curvatures, and tangent vector bases. It integrates sparse linear algebra solvers to handle the large-scale numerical systems required for tasks like geodesic distance computation and direction field generation. The library is structured to manage mesh topology and geometry data through efficient containers that support retrieval across vertices, edges, faces, and corners.

## Tags

### Graphics & Multimedia

- [Geometry Processing Libraries](https://awesome-repositories.com/f/graphics-multimedia/geometry-processing-libraries.md) — Serves as a computational toolkit for performing numerical analysis and geometric operations on manifold surface meshes. ([source](https://github.com/nmwsharp/geometry-central#readme))
- [Half-Edge Mesh Data Structures](https://awesome-repositories.com/f/graphics-multimedia/half-edge-mesh-data-structures.md) — Utilizes a half-edge data structure to enable constant-time topological traversal of 3D manifold meshes.
- [Mesh Data Management](https://awesome-repositories.com/f/graphics-multimedia/3d-geometry-engines/mesh-data-management.md) — Organizes mesh topology and associates custom data with vertices, edges, and faces for efficient retrieval.
- [3D Mesh Analysis](https://awesome-repositories.com/f/graphics-multimedia/3d-mesh-analysis.md) — Provides algorithms for computing geometric properties like curvature and geodesic distances on complex 3D mesh structures.
- [Triangle Mesh Data Structures](https://awesome-repositories.com/f/graphics-multimedia/mesh-processing-tools/triangle-mesh-data-structures.md) — Organizes surface mesh structures and associates custom information with mesh elements for efficient data retrieval. ([source](http://geometry-central.net/))

### Part of an Awesome List

- [Mesh And Geometry Processing](https://awesome-repositories.com/f/awesome-lists/ai/mesh-and-geometry-processing.md) — Analyzes and manipulates 3D surface meshes using discrete differential geometry operators.

### Game Development

- [Finite Element Operators](https://awesome-repositories.com/f/game-development/polygon-based-navigation-meshes/mesh-processing-operations/mesh-geometry-processing/finite-element-operators.md) — Implements finite element methods to construct sparse operators for geometric analysis on manifold meshes.

### Scientific & Mathematical Computing

- [Intrinsic Triangulation Frameworks](https://awesome-repositories.com/f/scientific-mathematical-computing/intrinsic-triangulation-frameworks.md) — Manipulates mesh connectivity independently of vertex positions to perform robust geometric algorithms that remain stable under deformation.
- [Sparse Linear Algebra Routines](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/linear-algebra/sparse-linear-algebra-routines.md) — Integrates sparse linear algebra routines to solve large-scale numerical systems for geometric processing tasks.
- [Geometric Property Calculations](https://awesome-repositories.com/f/scientific-mathematical-computing/geometric-algorithms/geometric-intersection-calculators/planar-property-analysis/geometric-property-calculations.md) — Computes geometric properties like surface normals, curvatures, and tangent vector bases using discrete differential geometry. ([source](https://github.com/nmwsharp/geometry-central#readme))
- [Linear System Solvers](https://awesome-repositories.com/f/scientific-mathematical-computing/linear-system-solvers.md) — Offers numerical interfaces for solving large-scale linear systems required for high-performance geometry processing.
- [Geometric Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/computational-geometry/geometric-algorithms.md) — Implements complex geometric algorithms including geodesic distance computation and direction field generation.

### Software Engineering & Architecture

- [Contiguous Memory Buffers](https://awesome-repositories.com/f/software-engineering-architecture/block-based-data-models/data-block-memory-management/contiguous-memory-buffers.md) — Uses contiguous memory buffers to associate custom attributes with mesh components for optimized cache locality.
