Circle Packing
Designv1.0.0A page of circles, each grown until it touches a neighbour or the wall.
A page of circles, each grown until it touches a neighbour or the wall.
What it is
Circles placed one at a time at random candidate positions, each inflated until it kisses an existing circle or the page boundary, until no circle of the minimum radius fits anywhere. The result is a dense, organic arrangement — bubbles, pebbles, cells — with tangencies everywhere and overlaps nowhere.
How to use
A colouring page with a built-in rhythm: big circles anchor a palette, small
ones fill with accents. The optional concentric rings turn each circle
into a target of bands. Kids mode raises the minimum radius so every circle
is comfortably fillable with a crayon.
Purpose
The design lane’s simplest satisfying object — and the crate that demonstrates deriving a default from a rule rather than taste: the minimum radius (11 Pt) is computed from the colourability gate’s 40 mm² minimum region area, because the first default (9 Pt) made every page fail and escalate invisibly.
History
Tangent circles run from Apollonius of Perga (the tangency problem, ~200 BC) through Apollonian gaskets to Descartes’ circle theorem (1643). The grow-until-touch packing is a staple of generative art practice; circle packings also carry serious mathematics (Koebe–Andreev–Thurston: every planar graph is a circle-packing contact graph).
This implementation
- Spec knobs:
size,shape(page silhouette),min_radius,max_radius,candidatesper placement,rings,stroke,kids. - Generation: rejection-sampled candidate centres; each circle takes the
largest legal radius at its position, capped by
max_radius; placement stops whencandidatessuccessive positions all fail atmin_radius. - Guarantees: no overlaps (checked, with the check exposed as
check() -> Result), all circles inside the page shape, deterministic per seed; colourability-gated by construction since the radius floor is the region-area rule.
More designs

Border
Ornamental borders — the seven frieze groups over the motif library

Celtic Plait
An interlaced plait: cords passing over and under, with cells that turn them back

Colour by Number
Colour by number — a numbered grid that colours into a symmetric design

Contour
Contour lines — a seeded heightfield's level sets, terrain-map style