Skip to content
SpecializedSource checked

Bowyer-Watson Algorithm

Builds a Delaunay triangulation by inserting points and retriangulating invalid cavities.

Quick Facts

Compact metadata for implementation and discovery.

Category
Geometry
Difficulty
Advanced
Family
Delaunay Triangulation
Tier
Specialized
Status
Verified
Review
Source Checked
Sources
4
Formulas
1
Relationships
3
Code example
Ready
Visualization
Ready

Overview

Bowyer-Watson starts from a large containing triangle, inserts points one at a time, removes triangles whose circumcircles contain the new point, and fills the cavity.

Core Concepts

incremental insertioncircumcircle testcavity boundarytriangle mesh

Quick facts

Complexity

Runtime and memory behavior at a glance.

Best

O(n log n)

Average

O(n log n) with spatial search

Worst

O(n^2)

Space

O(n)

When to Use

  • Use when points arrive incrementally or a straightforward Delaunay implementation is desired.
  • Use when mesh generation is a central requirement.

When Not to Use

  • Avoid when exact robustness is required but robust predicates are unavailable.
  • Avoid when floating-point precision or degenerate geometry cannot be handled robustly.

What It Does

  • Inserts points incrementally
  • Finds triangles with invalid circumcircles
  • Retriangulates the cavity boundary

Use Cases

  • Mesh generation
  • Terrain triangulation
  • Voronoi dual construction

Inputs

  • 2D point set

Outputs

  • Delaunay triangle mesh

Key Formulas (1)

Delaunay condition

point is invalidating if point lies inside circumcircle(triangle)
point is invalidating if point lies inside circumcircle(triangle)

Identifies triangles that must be removed when inserting a point.

Pseudocode

  1. 1.Create a super-triangle containing all points
  2. 2.Insert each point
  3. 3.Find triangles whose circumcircles contain the point
  4. 4.Remove those triangles to form a cavity
  5. 5.Connect the new point to cavity boundary edges

Canonical Example

Input
points = triangle plus center point
Output
triangles = three triangles around center
Explanation
The inserted center point retriangulates the containing triangle.

Implementation Notes

  • Use a spatial index to find affected triangles faster than scanning all triangles.
  • Use robust predicates or tolerances when near-degenerate inputs are expected.
  • Keep a tiny example with expected output beside the implementation.

Common Pitfalls

  • Forgetting to remove super-triangle-connected faces leaves artificial triangles in the output.
  • Collinear, overlapping, and duplicate points need explicit tie-breaking rules.
  • Not defining boundary, empty, or degenerate inputs before implementation.

Interactive Mechanism Walkthrough

Spatial Primitive & Sweep-Line Canvas

Show a point insertion creating a polygonal cavity that is filled with new triangles.

Bowyer-Watson Algorithm mechanism walkthrough step 1 of 5
Step 1 of 5: Create a super-triangle containing all points
geometry-diagram

Notes

Robust circumcircle tests are essential for clean triangulations.

Sources (4)

What each reference supports for this entry.

Computational Geometry: Algorithms and Applications

Book

Computational geometry textbook support for Bowyer-Watson Algorithm's geometric model, data structures, and robustness concerns.

Open source

The Algorithm Design Manual

Book

Algorithm catalog support for Bowyer-Watson Algorithm's problem context, known alternatives, and practical selection tradeoffs.

Open source

Bowyer Dirichlet Tessellations

Paper

Reference for incremental computation of Dirichlet tessellations and Delaunay triangulations.

Open source

Watson Delaunay Tessellation

Paper

Reference for computing Delaunay tessellations and their Voronoi dual relationships.

Open source

Explore Next

Good next jumps from the relationship graph, ranked for useful discovery.

Bowyer-Watson incrementally constructs a Delaunay triangulation.

Conceptual neighborVoronoi Diagram

Its output is dual to the corresponding Voronoi diagram.

Tags

GeometryTriangulationComputational Geometry