Triangulations and Tessellations

Two common methods for partitioning space into individual elements are triangulations and tessellations. This section is dedicated to packages that implement such methods.

Short summary

DelaunayTriangulation.jl is the most supported package for Delaunay triangulations and Voronoi tessellations in two dimensions. Delaunator.jl might be faster for unconstrained triangulations if you do not need exact arithmetic. In higher dimensions, you need Delaunay.jl if n>3n > 3, or TetGen.jl is great if n=3n=3.

List of packages with short descriptions

DelaunayTriangulation.jl

GitHub Repo stars deps DelaunayTriangulation Downloads
Stable Dev GitHub last commit (branch) version Coverage
A pure Julia library for constructing planar triangulations with support for both unconstrained and constrained triangulations (including domains with holes, disjoint domains, etc.), mesh refinement, Voronoi tessellations, clipped and centroidal Voronoi tessellations, and dynamic updates. Uses exact geometric predicates and supports custom types.

VoronoiDelaunay.jl

GitHub Repo stars deps VoronoiDelaunay Downloads
GitHub last commit (branch) version Coverage
A pure Julia library that constructs planar triangulations and tessellations, although no support for constrained triangulations / mesh refinement or clipped / centroid tessellations. Restricts points to [1,2]×[1,2][1, 2] \times [1, 2].

VoronoiCells.jl

GitHub Repo stars deps VoronoiCells Downloads
GitHub last commit (branch) version Coverage
A pure Julia library that extends VoronoiDelaunay.jl. This package provides useful tools for constructing and working with Voronoi tessellations. Supports clipping Voronoi cells to a specified rectangle. Like VoronoiDelaunay.jl, restricts points to [1,2]×[1,2][1, 2] \times [1, 2].

Delaunay.jl

GitHub Repo stars deps Delaunay Downloads
GitHub last commit (branch) version
Wraps Python's main Delaunay triangulation library, scipy.spatial.Delaunay, for computing Delaunay triangulations in RN\mathbb R^N. I don't believe constrained triangulations or mesh refinement is available here.

MiniQhull.jl

GitHub Repo stars deps MiniQhull Downloads
GitHub last commit (branch) version Coverage
Wraps Qhull for computing unconstrained Delaunay triangulations in RN\mathbb R^N. No support is provided for mesh refinement.

DirectQhull.jl

GitHub Repo stars deps DirectQhull Downloads
GitHub last commit (branch) version
Similar to MiniQhull.jl, although also provides support for convex hulls and Voronoi tessellations from Qhull.

Delaunator.jl

GitHub Repo stars deps Delaunator Downloads
Stable Dev GitHub last commit (branch) version
A pure Julia library modelled after the JavaScript Delaunator library. This package can construct unconstrained triangulations of planar point sets. No support is available for constrained triangulations or mesh refinement, although support exists for computing the dual Voronoi tessellation. Centroidal tessellations are not implemented, although the Voronoi cells can be clipped to a bounding box.

TriangleMesh.jl

GitHub Repo stars deps TriangleMesh Downloads
Stable Dev GitHub last commit (branch) version Coverage
Interfaces to Shewchuk's Triangle library.

Triangulate.jl

GitHub Repo stars deps Triangulate Downloads
Stable Dev GitHub last commit (branch) version Coverage
Interfaces to Shewchuk's Triangle library.

Triangle.jl

GitHub Repo stars deps Triangle Downloads
GitHub last commit (branch) version Coverage
Interfaces to Shewchuk's Triangle library.

TetGen.jl

GitHub Repo stars deps TetGen Downloads
Stable Dev GitHub last commit (branch) version Coverage
This is for Delaunay tetrahedralisation, wrapping TetGen.

GMT.jl

GitHub Repo stars deps GMT Downloads
Stable Dev GitHub last commit (branch) version Coverage
A wrapper of GMT, allowing for unconstrained Delaunay triangulations in two dimensions, and for spherical triangulation, i.e. triangulation of points lying on a sphere.

This website is a community effort covering a lot of ever-changing information. It will therefore never be complete or without error. If you see something wrong, or have something to contribute, please see the "Contributing" section in the github repository.

Last modified: May 03, 2024. Built with Franklin.jl