Generator

The plane divided by nearest neighbour

A generator in the geometry library, called 45 times across 8 essays. Below: what it draws with nothing chosen and at each mode an essay asks for, what it checks while drawing, and everywhere it is used.

voronoi is one function. Everything below came out of it during this build, at parameters taken from the essays rather than invented for this page — so a figure here is the same figure a reader meets in an essay, and if the generator changes, this page changes with it.

With nothing chosen

The plane divided by nearest neighbour. 10 sites, and every point of the rectangle shaded by which site is closest to it. The boundaries are the places where two sites tie.

The medial axis of a wobbly rectangle, whole and trimmed

The medial axis of a wobbly rectangle, whole and trimmed. A rectangle with sides wobbling by ±0.02: its medial axis (654 Voronoi vertices, Hausdorff distance 0.499 from the clean axis) and its λ-medial axis at λ = 0.2 (63 vertices, distance 0.078).

Three points of a medial axis and how far apart their nearest boundary points are

Three points of a medial axis and how far apart their nearest boundary points are. The wobbly rectangle with three axis points and the circles enclosing their nearest boundary points: radii 0.491 (trunk), 0.169 (corner arm), 0.036 (wobble branch).

How far the medial axis moves when the outline wobbles, with and without λ

How far the medial axis moves when the outline wobbles, with and without λ. ±0.0025: 0.418, 0.025, 0.025, 0.025; ±0.005: 0.460, 0.049, 0.041, 0.041; ±0.01: 0.482, 0.276, 0.062, 0.062; ±0.015: 0.491, 0.337, 0.186, 0.073; ±0.02: 0.499, 0.373, 0.262, 0.078; ±0.03: 0.509, 0.415, 0.320, 0.087; ±0.04: 0.517, 0.430, 0.346, 0.096.

Spurious branches against lost ones, as λ rises

Spurious branches against lost ones, as λ rises. λ 0: spurious 0.499, lost 0.076; λ 0.01: spurious 0.472, lost 0.076; λ 0.02: spurious 0.448, lost 0.076; λ 0.03: spurious 0.424, lost 0.076; λ 0.05: spurious 0.373, lost 0.129; λ 0.075: spurious 0.288, lost 0.188; λ 0.1: spurious 0.262, lost 0.218; λ 0.15: spurious 0.016, lost 0.343; λ 0.2: spurious 0.014, lost 0.455; λ 0.25: spurious 0.012, lost 0.636; λ 0.3: spurious 0.012, lost 0.650; λ 0.35: spurious 0.012, lost 0.713; λ 0.4: spurious 0.010, lost 0.714; λ 0.45: spurious 0.010, lost 0.714; λ 0.49: spurious 0.010, lost 0.714.

The λ that removes a tooth's branch, against the tooth's size

The λ that removes a tooth's branch, against the tooth's size. tooth 0.01: λ 0.0050; tooth 0.02: λ 0.0100; tooth 0.03: λ 0.0150; tooth 0.04: λ 0.0200; tooth 0.06: λ 0.0300; tooth 0.08: λ 0.0400; tooth 0.1: λ 0.0500; tooth 0.12: λ 0.0600.

What it checks while it draws

Collected by running the family and recording what it asserted, not written here. The count is how many separate times the claim was put to the test while these drawings were made.

Where it is called

Every figure on this list is drawn by the same rule, so a change to the rule changes all of them at once. That is why the list is published.

Geometry

A skeleton that ignores small teeth

The medial axis of a shape grows a branch to every bump on its outline, however small, so a scanned shape has a skeleton made mostly of noise. Keep only the points of the axis whose nearest boundary points are spread across a circle of radius at least λ, and the branches to bumps smaller than about 2λ disappear while the real skeleton stays. That λ-medial axis moves only a little when the outline wobbles by much less than λ — and the price is λ itself, a size below which a feature is declared not to exist, which can even cut a shape's skeleton in two.

Geometry

Every site in the middle of its own cell

Move each point to the centre of mass of its own Voronoi cell, then redraw the diagram, then do it again. The rule is two lines long, it never mentions hexagons, and what it settles into is a honeycomb.

Geometry

The plane, divided by whoever is nearest

Scatter some points and colour every other point of the plane by which one is closest. The result is a tiling nobody designed, and its dual triangulation has a property that no part of the construction mentions.

Geometry

Nine points on one circle

Three midpoints, three feet of altitudes and three more midpoints. Nine points defined in three unrelated ways, on an arbitrary triangle, and all nine sit on one circle — checked here on two hundred and forty triangles as well as on the drawn one.

Geometry

One dimension up, and the circles disappear

The Delaunay triangulation is defined by a condition about circles, which is awkward to compute and awkward to reason about. Lift every point onto a paraboloid and the circles turn into planes, the condition turns into convexity, and a two-dimensional problem is solved by looking at a three-dimensional shape from underneath.

Geometry

The skeleton inside a shape

Take the Voronoi diagram not of a handful of points but of a shape's whole outline: the points inside the shape that have two nearest points on its edge. What comes out is a skeleton — a thin branching tree that describes the shape and, with one number attached to each point, rebuilds it exactly. It is also where fires lit all round the edge would meet, and it is violently unstable: a tooth too small to notice grows a branch several times its own size.

Geometry

The tree inside the triangulation

The shortest network joining a set of points is built from edges chosen by length, and the triangulation is built from edges chosen by an emptiness condition about circles. The two constructions share no step, and every edge of the first is an edge of the second.

Geometry

When the sites are not the same size

Give every site a weight and the boundaries slide. The cells stay convex and the edges stay straight, which is surprising, and one thing happens that the unweighted diagram never allows — a site can end up owning nothing at all.

The whole library · What the figures prove