EBGeometry’s user documentation

EBGeometry is a header-only C++17 library for constructive solid geometry (CSG) with implicit functions. It can turn surface geometries into fast, queryable signed distance functions (SDFs), and manipulate them with CSG operations.

Main features:

  • Turn surface meshes into SDFs, via a half-edge (DCEL) mesh representation or raw triangles.

  • Fast SDF evaluation using bounding volume hierarchies (BVHs).

  • Supports both pointer-based tree BVHs, and flattened SIMD-accelerated packed BVHs.

  • A library of analytic signed distance functions and implicit functions (spheres, boxes, and more).

  • Composable with transforms (translation, rotation, scaling, rounding, blending).

  • BVH-accelerated constructive solid geometry (CSG): unions, intersections, differences, and smooth blends, of both meshes and analytic shapes.

  • Readers for triangulated surface meshes in STL, PLY, OBJ, and VTK format.

  • Drop-in precision-templated for flexible usage.

  • No external dependencies – drop EBGeometry.hpp into any C++17 project and include it.

Important

This is the user documentation for EBGeometry.

A PDF version of this documentation is also available.

  • If you are looking for the source code, it is hosted on GitHub.

  • The developer documentation is a separate Doxygen-generated API of EBGeometry.

Getting started

Concepts

Implementation

Examples

Contributing and testing