#### <sup>[Ollin](../../index.md) → [Examples](../index.md) → Patterns</sup>

---

## Patterns

| [![Anamorphosis](https://media.ollin.art/examples/Patterns/Anamorphosis/still-640.jpg?v=b206285e)](anamorphosis.md) | [![AntColony](https://media.ollin.art/examples/Patterns/AntColony/still-640.jpg?v=d8d552dd)](antcolony.md) | [![Apollonian](https://media.ollin.art/examples/Patterns/Apollonian/still-640.jpg?v=f6187fc5)](apollonian.md) | [![Bifurcation](https://media.ollin.art/examples/Patterns/Bifurcation/still-640.jpg?v=e346e58f)](bifurcation.md) |
|---|---|---|---|
| [Anamorphosis](anamorphosis.md) | [AntColony](antcolony.md) | [Apollonian](apollonian.md) | [Bifurcation](bifurcation.md) |
| [![Billiards](https://media.ollin.art/examples/Patterns/Billiards/still-640.jpg?v=fc5c55d5)](billiards.md) | [![BlueNoise](https://media.ollin.art/examples/Patterns/BlueNoise/still-640.jpg?v=7a99086a)](bluenoise.md) | [![Buddhabrot](https://media.ollin.art/examples/Patterns/Buddhabrot/still-640.jpg?v=67a11792)](buddhabrot.md) | [![Caustic](https://media.ollin.art/examples/Patterns/Caustic/still-640.jpg?v=5a5f4a85)](caustic.md) |
| [Billiards](billiards.md) | [BlueNoise](bluenoise.md) | [Buddhabrot](buddhabrot.md) | [Caustic](caustic.md) |
| [![ChaoticMaps](https://media.ollin.art/examples/Patterns/ChaoticMaps/still-640.jpg?v=259fef16)](chaoticmaps.md) | [![Chladni](https://media.ollin.art/examples/Patterns/Chladni/still-640.jpg?v=bf741ca8)](chladni.md) | [![CirclePacking](https://media.ollin.art/examples/Patterns/CirclePacking/still-640.jpg?v=c4691d61)](circlepacking.md) | [![Clothoid](https://media.ollin.art/examples/Patterns/Clothoid/still-640.jpg?v=0ce1e5c3)](clothoid.md) |
| [ChaoticMaps](chaoticmaps.md) | [Chladni](chladni.md) | [CirclePacking](circlepacking.md) | [Clothoid](clothoid.md) |
| [![ContourMap](https://media.ollin.art/examples/Patterns/ContourMap/still-640.jpg?v=3502881e)](contourmap.md) | [![Cracks](https://media.ollin.art/examples/Patterns/Cracks/still-640.jpg?v=6aa42851)](cracks.md) | [![CreasePattern](https://media.ollin.art/examples/Patterns/CreasePattern/still-640.jpg?v=ed279c43)](creasepattern.md) | [![DeBruijn](https://media.ollin.art/examples/Patterns/DeBruijn/still-640.jpg?v=f5df346f)](debruijn.md) |
| [ContourMap](contourmap.md) | [Cracks](cracks.md) | [CreasePattern](creasepattern.md) | [DeBruijn](debruijn.md) |
| [![Delaunay](https://media.ollin.art/examples/Patterns/Delaunay/still-640.jpg?v=bd46d62a)](delaunay.md) | [![Dendrite](https://media.ollin.art/examples/Patterns/Dendrite/still-640.jpg?v=41d77ef2)](dendrite.md) | [![DifferentialGrowth](https://media.ollin.art/examples/Patterns/DifferentialGrowth/still-640.jpg?v=ad10c8c4)](differentialgrowth.md) | [![ElementaryCA](https://media.ollin.art/examples/Patterns/ElementaryCA/still-640.jpg?v=ed8257d4)](elementaryca.md) |
| [Delaunay](delaunay.md) | [Dendrite](dendrite.md) | [DifferentialGrowth](differentialgrowth.md) | [ElementaryCA](elementaryca.md) |
| [![Flocking](https://media.ollin.art/examples/Patterns/Flocking/still-640.jpg?v=d5e404f3)](flocking.md) | [![ForceGraph](https://media.ollin.art/examples/Patterns/ForceGraph/still-640.jpg?v=58b3d9df)](forcegraph.md) | [![FordCircles](https://media.ollin.art/examples/Patterns/FordCircles/still-640.jpg?v=86ec081d)](fordcircles.md) | [![FractalFlame](https://media.ollin.art/examples/Patterns/FractalFlame/still-640.jpg?v=7ed09709)](fractalflame.md) |
| [Flocking](flocking.md) | [ForceGraph](forcegraph.md) | [FordCircles](fordcircles.md) | [FractalFlame](fractalflame.md) |
| [![Girih](https://media.ollin.art/examples/Patterns/Girih/still-640.jpg?v=7eab670a)](girih.md) | [![Grid](https://media.ollin.art/examples/Patterns/Grid/still-640.jpg?v=19f6b9f7)](grid.md) | [![Guilloche](https://media.ollin.art/examples/Patterns/Guilloche/still-640.jpg?v=cd78b87d)](guilloche.md) | [![HexGrid](https://media.ollin.art/examples/Patterns/HexGrid/still-640.jpg?v=d6e27855)](hexgrid.md) |
| [Girih](girih.md) | [Grid](grid.md) | [Guilloche](guilloche.md) | [HexGrid](hexgrid.md) |
| [![Hitomezashi](https://media.ollin.art/examples/Patterns/Hitomezashi/still-640.jpg?v=1f7aad7d)](hitomezashi.md) | [![HyperbolicTiling](https://media.ollin.art/examples/Patterns/HyperbolicTiling/still-640.jpg?v=baea5bdd)](hyperbolictiling.md) | [![InversionFractal](https://media.ollin.art/examples/Patterns/InversionFractal/still-640.jpg?v=a9cd6bec)](inversionfractal.md) | [![IteratedFunctions](https://media.ollin.art/examples/Patterns/IteratedFunctions/still-640.jpg?v=e43b5ce5)](iteratedfunctions.md) |
| [Hitomezashi](hitomezashi.md) | [HyperbolicTiling](hyperbolictiling.md) | [InversionFractal](inversionfractal.md) | [IteratedFunctions](iteratedfunctions.md) |
| [![Kaleidoscope](https://media.ollin.art/examples/Patterns/Kaleidoscope/still-640.jpg?v=843fc83c)](kaleidoscope.md) | [![Kleinian](https://media.ollin.art/examples/Patterns/Kleinian/still-640.jpg?v=afc06153)](kleinian.md) | [![Knotwork](https://media.ollin.art/examples/Patterns/Knotwork/still-640.jpg?v=a885bb17)](knotwork.md) | [![Kolam](https://media.ollin.art/examples/Patterns/Kolam/still-640.jpg?v=fed6aa91)](kolam.md) |
| [Kaleidoscope](kaleidoscope.md) | [Kleinian](kleinian.md) | [Knotwork](knotwork.md) | [Kolam](kolam.md) |
| [![LSystem](https://media.ollin.art/examples/Patterns/LSystem/still-640.jpg?v=d73941d0)](lsystem.md) | [![LevyFlight](https://media.ollin.art/examples/Patterns/LevyFlight/still-640.jpg?v=8514d308)](levyflight.md) | [![Lichtenberg](https://media.ollin.art/examples/Patterns/Lichtenberg/still-640.jpg?v=a10f76c3)](lichtenberg.md) | [![LowDiscrepancy](https://media.ollin.art/examples/Patterns/LowDiscrepancy/still-640.jpg?v=572ad0cc)](lowdiscrepancy.md) |
| [LSystem](lsystem.md) | [LevyFlight](levyflight.md) | [Lichtenberg](lichtenberg.md) | [LowDiscrepancy](lowdiscrepancy.md) |
| [![Marbling](https://media.ollin.art/examples/Patterns/Marbling/still-640.jpg?v=7831d714)](marbling.md) | [![Maze](https://media.ollin.art/examples/Patterns/Maze/still-640.jpg?v=a44cafb6)](maze.md) | [![Meander](https://media.ollin.art/examples/Patterns/Meander/still-640.jpg?v=206b7bea)](meander.md) | [![PackedPhotos](https://media.ollin.art/examples/Patterns/PackedPhotos/still-640.jpg?v=d7d3c84c)](packedphotos.md) |
| [Marbling](marbling.md) | [Maze](maze.md) | [Meander](meander.md) | [PackedPhotos](packedphotos.md) |
| [![ParametricLSystem](https://media.ollin.art/examples/Patterns/ParametricLSystem/still-640.jpg?v=fe4217ac)](parametriclsystem.md) | [![ParquetDeformation](https://media.ollin.art/examples/Patterns/ParquetDeformation/still-640.jpg?v=9fcc1a9f)](parquetdeformation.md) | [![Penrose](https://media.ollin.art/examples/Patterns/Penrose/still-640.jpg?v=b56b26ad)](penrose.md) | [![Pentominoes](https://media.ollin.art/examples/Patterns/Pentominoes/still-640.jpg?v=de2c0021)](pentominoes.md) |
| [ParametricLSystem](parametriclsystem.md) | [ParquetDeformation](parquetdeformation.md) | [Penrose](penrose.md) | [Pentominoes](pentominoes.md) |
| [![Percolation](https://media.ollin.art/examples/Patterns/Percolation/still-640.jpg?v=c3a50655)](percolation.md) | [![Phyllotaxis](https://media.ollin.art/examples/Patterns/Phyllotaxis/still-640.jpg?v=406e105c)](phyllotaxis.md) | [![PowerDiagram](https://media.ollin.art/examples/Patterns/PowerDiagram/still-640.jpg?v=f3089579)](powerdiagram.md) | [![Pursuit](https://media.ollin.art/examples/Patterns/Pursuit/still-640.jpg?v=930c66a6)](pursuit.md) |
| [Percolation](percolation.md) | [Phyllotaxis](phyllotaxis.md) | [PowerDiagram](powerdiagram.md) | [Pursuit](pursuit.md) |
| [![RidgeLines](https://media.ollin.art/examples/Patterns/RidgeLines/still-640.jpg?v=4f49a8d8)](ridgelines.md) | [![Rivers](https://media.ollin.art/examples/Patterns/Rivers/still-640.jpg?v=956bc445)](rivers.md) | [![Roses](https://media.ollin.art/examples/Patterns/Roses/still-640.jpg?v=28122261)](roses.md) | [![Schottky](https://media.ollin.art/examples/Patterns/Schottky/still-640.jpg?v=ec24ca49)](schottky.md) |
| [RidgeLines](ridgelines.md) | [Rivers](rivers.md) | [Roses](roses.md) | [Schottky](schottky.md) |
| [![SelfAvoidingWalk](https://media.ollin.art/examples/Patterns/SelfAvoidingWalk/still-640.jpg?v=6ff60b5f)](selfavoidingwalk.md) | [![ShapeGrammar](https://media.ollin.art/examples/Patterns/ShapeGrammar/still-640.jpg?v=9bad8c2c)](shapegrammar.md) | [![ShapePacking](https://media.ollin.art/examples/Patterns/ShapePacking/still-640.jpg?v=2453bedb)](shapepacking.md) | [![Spectre](https://media.ollin.art/examples/Patterns/Spectre/still-640.jpg?v=3fde6662)](spectre.md) |
| [SelfAvoidingWalk](selfavoidingwalk.md) | [ShapeGrammar](shapegrammar.md) | [ShapePacking](shapepacking.md) | [Spectre](spectre.md) |
| [![Spirograph](https://media.ollin.art/examples/Patterns/Spirograph/still-640.jpg?v=33278b53)](spirograph.md) | [![Spirolateral](https://media.ollin.art/examples/Patterns/Spirolateral/still-640.jpg?v=4f5dd3ee)](spirolateral.md) | [![Stippling](https://media.ollin.art/examples/Patterns/Stippling/still-640.jpg?v=e9e7548c)](stippling.md) | [![Streamlines](https://media.ollin.art/examples/Patterns/Streamlines/still-640.jpg?v=0e64c584)](streamlines.md) |
| [Spirograph](spirograph.md) | [Spirolateral](spirolateral.md) | [Stippling](stippling.md) | [Streamlines](streamlines.md) |
| [![Subdivision](https://media.ollin.art/examples/Patterns/Subdivision/still-640.jpg?v=43e50f58)](subdivision.md) | [![TenPrint](https://media.ollin.art/examples/Patterns/TenPrint/still-640.jpg?v=11c4a1b4)](tenprint.md) | [![TextureSynthesis](https://media.ollin.art/examples/Patterns/TextureSynthesis/still-640.jpg?v=8dc70efc)](texturesynthesis.md) | [![Topography](https://media.ollin.art/examples/Patterns/Topography/still-640.jpg?v=faede732)](topography.md) |
| [Subdivision](subdivision.md) | [TenPrint](tenprint.md) | [TextureSynthesis](texturesynthesis.md) | [Topography](topography.md) |
| [![TriangleGrid](https://media.ollin.art/examples/Patterns/TriangleGrid/still-640.jpg?v=9cd4ef00)](trianglegrid.md) | [![Truchet](https://media.ollin.art/examples/Patterns/Truchet/still-640.jpg?v=10d62f88)](truchet.md) | [![Turmites](https://media.ollin.art/examples/Patterns/Turmites/still-640.jpg?v=b5708896)](turmites.md) | [![TurtleWalk](https://media.ollin.art/examples/Patterns/TurtleWalk/still-640.jpg?v=bd293dd8)](turtlewalk.md) |
| [TriangleGrid](trianglegrid.md) | [Truchet](truchet.md) | [Turmites](turmites.md) | [TurtleWalk](turtlewalk.md) |
| [![UlamSpiral](https://media.ollin.art/examples/Patterns/UlamSpiral/still-640.jpg?v=9ee80ca4)](ulamspiral.md) | [![Venation](https://media.ollin.art/examples/Patterns/Venation/still-640.jpg?v=bc70a014)](venation.md) | [![Voronoi](https://media.ollin.art/examples/Patterns/Voronoi/still-640.jpg?v=a3afd40d)](voronoi.md) | [![WangTiles](https://media.ollin.art/examples/Patterns/WangTiles/still-640.jpg?v=e325063f)](wangtiles.md) |
| [UlamSpiral](ulamspiral.md) | [Venation](venation.md) | [Voronoi](voronoi.md) | [WangTiles](wangtiles.md) |
| [![WarpGrid](https://media.ollin.art/examples/Patterns/WarpGrid/still-640.jpg?v=42a7f103)](warpgrid.md) | [![WaveFunctionCollapse](https://media.ollin.art/examples/Patterns/WaveFunctionCollapse/still-640.jpg?v=f6e2224e)](wavefunctioncollapse.md) | [![Wavefront](https://media.ollin.art/examples/Patterns/Wavefront/still-640.jpg?v=8a15c1da)](wavefront.md) |  |
| [WarpGrid](warpgrid.md) | [WaveFunctionCollapse](wavefunctioncollapse.md) | [Wavefront](wavefront.md) |  |

Generative patterns: grids, tessellations, and rule-based repetition. Shape *primitives* and
shape *composition* (booleans and SDF combinators) live in [Shapes](../shapes/index.md).

| Example | What it shows |
|---|---|
| [Anamorphosis](anamorphosis.md) | a plate that reads as nothing until a mirrored cylinder reflects it: a word is wrapped around the cylinder, and each point of it is traced from the eye, off the mirror, and down to the page; a panel shows what that eye receives, read back off the finished plate (`Anamorphosis`) |
| [Apollonian](apollonian.md) | an Apollonian gasket: every gap between three touching circles is filled by the one circle that touches all three, and the color changes with each generation, so the filling order shows (`apollonianGasket`) |
| [Bifurcation](bifurcation.md) | the logistic map's bifurcation diagram drawn as an ink print, with the Lyapunov exponent traced beneath it: as the growth rate sweeps, the settled orbit forks, doubles again and again into chaos, and opens its periodic windows; parameters zoom the range in view (`IteratedMap`, `drawBifurcation`, `makeBatch`) |
| [Billiards](billiards.md) | one bouncing rule in four rooms: in a circle the path wraps around a hole it can never enter, in an ellipse the foci sort the paths, and a stadium and a square with a post in it both fill with scribble; a fan of balls shows which rooms keep the fan together (`Billiard`) |
| [BlueNoise](bluenoise.md) | blue noise fed to the tessellator: `poissonDisk` scatters points so that no two are closer than a radius (Bridson's dart-throwing), `voronoi` cuts one cell per site, and the even cells show the even but organic spacing (`poissonDisk`, `voronoi`, `drawShape`) |
| [Chladni](chladni.md) | a vibrating square plate stepping through its Chladni figures: sand gathers along the nodal lines, which do not move, while the modes blend from one to the next and the whole cycle loops (`chladni`) |
| [CirclePacking](circlepacking.md) | circle packing three ways, switched with one key: a pack that seeds itself and fills the gaps, a closed-form foam grown at blue-noise sites, and an overlapping crowd pushed apart until nothing overlaps, with every radius kept (`packCircles`, `packCircles(around:)`, `relaxCircles`) |
| [ChaoticMaps](chaoticmaps.md) | every `ChaoticMap` preset on a parameter, iterated into a density field that accumulates additively, so the filaments are bright where the orbit returns again and again: the dissipative maps run one continuous orbit, and the nearly area-preserving Gumowski-Mira blossom starts a fresh orbit every frame and stacks them, the way the classic plates do (`ChaoticMap`, `noClear`, `blendMode(.add)`) |
| [ContourMap](contourmap.md) | a topographic map of a drifting fbm terrain, traced by marching squares, with every fifth level drawn heavier, like a cartographer's index contour (`isolines`, `fbm`) |
| [Cracks](cracks.md) | crack growth: cracks that branch at right angles divide the plane into city-block cells, and each crack drags a translucent grain wash across the open space on one side of it (`CrackGrowth`, `noClear`) |
| [Dendrite](dendrite.md) | diffusion-limited aggregation: random walkers freeze where they first touch the cluster, so frost-like dendrites grow from a seed at the center, tinted by arrival time (`DiffusionLimitedAggregation`) |
| [Lichtenberg](lichtenberg.md) | a Lichtenberg figure growing live: each step, the dielectric-breakdown model solves the field around the discharge and grows where the field is strongest, so the branches spread outward and arc to the rim (`DielectricBreakdown`) |
| [DifferentialGrowth](differentialgrowth.md) | a closed ring relaxed under attraction, alignment, and repulsion, with long edges splitting, so it folds live into meanders like brain coral (`DifferentialGrowth`) |
| [Meander](meander.md) | a river migrating across a parchment plain, driven by its own curvature: bends slide downstream, oxbow lakes pinch off, and the recorded scars are drawn as ribbons beneath the water (`Meander`) |
| [Kolam](kolam.md) | one line launched at 45 degrees between a field of dots, bouncing off the edges until it closes: `rows` by `columns` dots make exactly gcd(rows, columns) loops, so 7 by 5 is one unbroken loop and 6 by 4 is two |
| [ElementaryCA](elementaryca.md) | 1D cellular automata stacked as rows, both the elementary kind and the 3-color totalistic kind, with the rule and the code on parameters, so one number switches the picture between order, fractals, and chaos (`elementaryCA`, `totalisticCA`) |
| [Flocking](flocking.md) | a few hundred boids, each steering only by its neighbors (separate, align, cohere), so the flock swirls and regroups with no leader (`Boids`) |
| [ForceGraph](forcegraph.md) | a growing network that lays itself out live: repulsion spreads the nodes, edges pull them together, hubs emerge from rich-get-richer growth, and you can drag any node while the web reflows around it (`ForceLayout`) |
| [FractalFlame](fractalflame.md) | a random fractal flame refining live: the chaos game with nonlinear variations, structural coloring, and the log-density display, accumulated slice by slice; click to reroll (`FractalFlame`, `FractalFlame.Renderer`) |
| [Buddhabrot](buddhabrot.md) | the escaping orbits of the Mandelbrot set exposed as a density plate that rises out of the noise live; click to switch between the false-color and grayscale plates (`Buddhabrot`, `Buddhabrot.Renderer`) |
| [Percolation](percolation.md) | site percolation sweeping back and forth through the critical threshold: clusters are tinted by size, and the spanning cluster lights up with its outline traced (`Percolation`) |
| [Girih](girih.md) | Islamic star patterns by the polygons-in-contact method: a honeycomb's strapwork changes shape as the contact angle sweeps, under a girih-tile medallion of a decagon and pentagons at the classic 54 degrees (`girihPattern`, `Girih.Tile`) |
| [Knotwork](knotwork.md) | the kolam line given width and a rule for which cord passes over which: the choice alternates along every cord, and that alternation is what makes it read as a weave instead of a tangle |
| [Grid](grid.md) | both point layouts of `Grid` side by side: under the default `.center` distribution, `cells` outlines the frames and `points` pulses a dot at each center, and beside it a `.spanning` lattice reaches its dots to the edges; a modulo rule on `row` and `column` sorts the dots into black and white bands |
| [HexGrid](hexgrid.md) | a pulse radiating across a honeycomb in exact rings of hex distance, re-centered on the hexagon under the mouse (`hexGrid`, `distance(from:to:)`, `cell(at:)`) |
| [InversionFractal](inversionfractal.md) | the lace-like limit set of a ring of tangent circles, resampled every frame so that it shimmers; click to change the ring (`inversionLimitSet`, `inverted`) |
| [IteratedFunctions](iteratedfunctions.md) | the chaos game building up the fern, the triangle, and the carpet on the accumulation surface, a few thousand visits per frame (`IFS`, `ifsPoints`, `fitted`) |
| [Kaleidoscope](kaleidoscope.md) | one drawn arm copied into a sixteen-fold mandala by `symmetry(8, mirrored: true)`, so every draw call is repeated through the mirrors |
| [Kleinian](kleinian.md) | Kleinian limit sets drawn as one ordered closed curve, with a bright head that runs the whole lap on each loop; click for the next preset (`kleinianLimitSet`, `KleinianPreset`) |
| [LevyFlight](levyflight.md) | a Lévy flight: step lengths follow a power law, so tight scribbled clusters are joined by sudden long jumps, and a comet retraces the journey out and back (`levyFlight`) |
| [LowDiscrepancy](lowdiscrepancy.md) | random, Poisson-disk, Halton, and Sobol scatters side by side while the count rises and falls: the sequences stay even at every count, and they only ever add points, never reshuffle (`haltonPoints`, `sobolPoints`) |
| [LSystem](lsystem.md) | the built-in L-system presets, one per cell: small rewriting grammars expanded into fractal curves and branching plants (`LSystem`, `drawLSystem`) |
| [ParametricLSystem](parametriclsystem.md) | the same rewriting grammar with numbers on every symbol and arithmetic in every rule, so a branch can carry its own length and a rule can taper it (`ParametricLSystem`) |
| [Marbling](marbling.md) | paper marbling in closed form: bull's-eye drops feathered by combs, a stylus pull, and a stirred vortex, with every ink kept as a vector outline; a click drops ink, and a drag pulls the stylus (`Marbling`, `drawMarbling`) |
| [Maze](maze.md) | the walls of a perfect maze drawn as clean merged line work, with its longest path traced through it; each re-roll moves to the next carving algorithm, because the algorithm decides the texture (`maze`, `longestPath`) |
| [Penrose](penrose.md) | a Penrose tiling with the matching-rule arcs stroked on top, where every arc meets a neighbor's across the shared edge, and light pulses outward from the five-fold sun; a click swaps the P3 rhombs for the P2 kites and darts (`penroseTiling`) |
| [Phyllotaxis](phyllotaxis.md) | a sunflower seed head: `phyllotaxis(count:spacing:)` places each seed at the golden angle and moves outward by `sqrt(i)`; the seeds are sized by age and drawn with one `drawCircles` batch, and the head spins slowly while the count rises and falls |
| [RidgeLines](ridgelines.md) | stacked mountain ridgelines from ridged fractal noise, where each row's opaque panel hides the range behind it; the noise field loops, so the terrain returns to its start every lap (`ridgedFbm`) |
| [Clothoid](clothoid.md) | a closed route where every corner is an easement in, an arc, and an easement back out, driven at a steady speed; the bend is drawn as a comb off the route, and a steering wheel reads it too, so if you pull `easement` to zero the comb becomes a square step (`Clothoid`, `clothoidCorners`) |
| [Pursuit](pursuit.md) | runners on the corners of a polygon, each running toward the next: the ring shrinks and turns at the same time, the paths are logarithmic spirals, and the caption compares the distance run with the law that predicts it (`Pursuit`) |
| [Rivers](rivers.md) | the drainage of a landscape, computed rather than drawn: water runs to the steepest neighbor, the flow through a cell is the sum of every cell upstream of it, and the network above a threshold is stroked by Strahler order over the contour map it came from (`Drainage`) |
| [Roses](roses.md) | the rose-curve chart laid out over a `Grid`: columns raise `n` and rows raise `d` in `k = n/d`; an odd `n` gives `n` petals and an even `n` gives `2n`, a fractional `k` weaves stars, and duplicates that reduce to an earlier fraction are inked in the accent color; each rose spins one petal per lap (`rose`) |
| [Schottky](schottky.md) | the circle orbit of a Schottky group toured around the Apollonian gasket: circles nest inside circles without end, and the whole figure leans with the trace (`schottkyCircles`) |
| [SelfAvoidingWalk](selfavoidingwalk.md) | one unbroken lattice path that never crosses itself; it backtracks out of dead ends, so it winds long and dense, and it is colored along its length (`selfAvoidingWalk`) |
| [ShapePacking](shapepacking.md) | packing that respects each shape's outline: a few shapes are added per frame, each grown against the outlines already placed, so small shapes settle into notches, and the picture accumulates under `noClear`; a click runs the same packing to completion in one call, with a fresh variation on each press (`ContinuousPacking`, `packShapes`) |
| [PackedPhotos](packedphotos.md) | a contact sheet of the twenty bundled photographs at their own proportions, packed onto a page that turns square, wide, and tall (`packRectangles(_:in:padding:)`), the largest scale that fits found by halving; the photographs glide between layouts. Hold the mouse to drag the page's corner and watch it repack every frame |
| [Spectre](spectre.md) | the einstein tile: a spectre patch grown by substitution, where every tile is the same shape with the same handedness, and the rare odd mystics glow as a tide drifts across (`spectreTiling`) |
| [HyperbolicTiling](hyperbolictiling.md) | regular tilings of the hyperbolic plane seen through the Poincare disk, where identical tiles meet the same way at every vertex and repeat toward a circular horizon, with a slow camera pan (`hyperbolicTiling`) |
| [Spirograph](spirograph.md) | the toy gear set: one gear pair drawn at several pen distances and stacked into a glowing rosette, with the pen sliding in and out over the loop and the rosette spinning exactly one lobe per lap (`hypotrochoid`) |
| [Guilloche](guilloche.md) | the engine-turned ornament of watch faces and banknotes: concentric wavy rings, each turned slightly against its neighbor, weave into a braided moire that drifts with time (`guilloche`) |
| [Subdivision](subdivision.md) | recursive subdivision in the grid-painting look: repeated splits make unequal panels, a few take primary colors under heavy rules, and the picture re-rolls every few seconds (`subdivide`) |
| [ShapeGrammar](shapegrammar.md) | a window frame, one rule, and a lattice that divides itself: a cell becomes two cells, split by one straight line between two of its edges, and the rule is applied over and over (`ShapeGrammar`) |
| [Stippling](stippling.md) | weighted-Voronoi stippling: a painted, lit sphere rebuilt from 5,200 dots, packed more densely where the picture is darker (`stipple`) |
| [Streamlines](streamlines.md) | evenly spaced streamlines through a noise flow field; each line stops when it comes close to one already drawn, so they fan into smooth currents that never cross (`FlowField.streamlines`) |
| [Topography](topography.md) | a pulsing blob inset inward over and over until the region pinches out, with each surviving ring stroked, so the contour lines crowd where the form narrows; it is pure line work, so it plots straight to SVG (`Shape.offset(by:join:)`) |
| [TriangleGrid](trianglegrid.md) | a shimmer over alternating up and down triangles, where the two orientations read one noise field through two palettes (`triangleGrid`) |
| [TenPrint](tenprint.md) | a maze of diagonals from one coin toss per cell, drawn as joined runs with a color each; hold the mouse to see the plain per-cell version (`tenPrint`, `runs`, `lines`) |
| [Wavefront](wavefront.md) | a wave leaving a shoreline by Huygens' construction, breaking into pieces where it travels into a bend; hold the mouse to see the wavelets themselves (`huygensFront`) |
| [Caustic](caustic.md) | the bright curve at the bottom of a cup, built in one call from the wall and the light source, with the raw reflected rays glowing under it and the whole curve traced faintly past the rim (`caustic`, `reflectedRays`, `drawEnvelope`) |
| [DeBruijn](debruijn.md) | a ring of sixty-four beads in which every run of three colors appears exactly once, and a reader that finds its position on the ring from three beads alone (`DeBruijnCode`, `deBruijnSequence`) |
| [Pentominoes](pentominoes.md) | all twelve pentominoes fitted into a board, laid one at a time in the order the search found them, while the tray of unused pieces empties beside it (`Polyomino`, `tilePolyominoes`, `outlines`) |
| [PowerDiagram](powerdiagram.md) | territories for circles of different sizes, where each cell is weighted so that no boundary cuts its own circle; hold the mouse to see the plain Voronoi diagram of the same centers (`powerDiagram`, `WeightedSite`) |
| [FordCircles](fordcircles.md) | a circle for every fraction, arriving one denominator at a time and never overlapping; hold the mouse to join the pairs that touch (`fordCircles`, `fareySequence`, `touches`) |
| [Spirolateral](spirolateral.md) | a wall of walks that step 1, 2, 3 … and turn, each repeated until it returns to its start; the orders that never return are drawn pale and walking away, and holding the mouse changes the turn to a fifth of a turn (`spirolateral`, `closes`, `run`) |
| [UlamSpiral](ulamspiral.md) | the primes written in a square spiral, where the diagonals they fall on drift as the starting number changes; hold the mouse to see the walk itself (`ulamSpiral`, `primePoints`, `path`) |
| [Truchet](truchet.md) | one tile per grid cell, turned by a seeded choice, with both built-in tiles sharing the canvas: quarter arcs weave meandering loops on the left, corner-to-corner diagonals cut maze corridors on the right, and a flow field sweeps hue along both (`truchet`) |
| [Hitomezashi](hitomezashi.md) | one bit per grid line decides whether its row of dashes starts on the edge or one cell in, and the shifted lines join at the crossings into steps, staircases, and loops (`hitomezashi`) |
| [ParquetDeformation](parquetdeformation.md) | one tiling whose tile changes shape as you read across it, a soft pinwheel on one side and an interlocking key on the other, with the run between them sliding back and forth as a moving front (`ParquetDeformation`) |
| [Turmites](turmites.md) | small Turing machines painting a grid that wraps at its edges: Langton's ant and its highway, spiral builders, and chaotic weavers, all chosen from a preset parameter (`Turmite`) |
| [TurtleWalk](turtlewalk.md) | a pen driven from code (`Turtle`): a tree grown by the oldest turtle program there is, walk the trunk, remember the spot, grow a smaller tree to each side (`pushState`/`popState`), leaning in a wind, beside a polyspiral of ever longer steps whose turn slides over the loop |
| [AntColony](antcolony.md) | an ant colony solving a tour, seen from above: the whole colony walks once per frame and lays its pheromone again, so a haze over every pair of cities condenses onto a short route (`AntColony`) |
| [CreasePattern](creasepattern.md) | the flat sheet and the folded result side by side: every line the paper is creased along, marked with the two directions a fold can go, beside the shape it folds into (`CreasePattern`) |
| [Venation](venation.md) | space colonization: veins grow live from a root at the bottom toward a blue-noise scatter of attractors, with branch thickness from the pipe model (`SpaceColonization`, `poissonDisk`) |
| [Voronoi](voronoi.md) | a field of sites drifting on noise, divided into Voronoi cells, evened out with Lloyd relaxation, and colored by a sweeping focal point; the cursor is a live site, so the cells form around the mouse (`voronoi`/`lloyd`) |
| [Delaunay](delaunay.md) | the triangle half of the tessellation pair: a drifting point set is meshed live into well-shaped triangles, and the star of the site under the pointer glows with its Delaunay neighbors lit; those are the sites whose Voronoi cells would border it (`delaunay`, `neighbors(of:)`) |
| [TextureSynthesis](texturesynthesis.md) | the overlapping model of Wave Function Collapse: a small picture written in the source supplies its own square patches, and a much larger texture is built so that every overlap agrees (`OverlappingWFC`, `wfc(from:)`) |
| [WangTiles](wangtiles.md) | Wang tiles: because edge colors must agree, independent seeded picks become one connected quilt, re-laid every few seconds and drawn as the classic edge triangles (`wangTiling`, `drawWangTiling`) |
| [WarpGrid](warpgrid.md) | a checkerboard of rects warped under the mouse (`drawRect`) |
| [WaveFunctionCollapse](wavefunctioncollapse.md) | a pipe network solved by Wave Function Collapse: min-entropy observation, weighted collapse, and constraint propagation over edge sockets, repeated until every neighbor connects legally (`wfc`, `drawWFC`) |

Run one with `swift run Example-Patterns-<Name>`, for example `swift run Example-Patterns-Grid`.
