A Truchet patch indexed from the centre outward, so it grows as a square rather than a wipe.
Indexed from the centre
for (int i = -half; i < half; i++)
The grid runs from −GridHalf to +GridHalf rather than from zero, which means the
origin is a cell corner rather than the top-left of the composition. Limiting the extent
therefore grows the patch outward from the middle rather than wiping across it.
The centre cells.
The joining condition
As with every Truchet tiling, motifs meet each edge at fixed points and therefore join
whatever orientation the neighbours took. What the outward growth makes visible is the
consequence: a path that ends at the patch boundary in one stage is continued by the
next ring rather than replaced.
Twice out.
Three times.
Four.
Full extent: eight cells a side.
DrawBorders adds an outline around each cell, which turns the tiling from a set of
paths into a set of tiles — worth toggling, because it changes which of the two readings
the eye takes first.
Five renderings
| Rendering | Half-extent | Scale | Ink |
|---|
| Neon Blue | 4 | 24.5 | blue on near-black |
| Hot Pink | — | — | pink on near-black |
| Electric Orange | 5 | 20 | orange on near-black |
| Amber | 6 | 16 | amber on near-black |
| Chalk | 3 | 30 | near-white on near-black |
Determinism
The generator is seeded from the preset and consumed once per tile in index order. The
generator is System.Random, which the project’s determinism policy flags as not
guaranteed stable across .NET versions.