Tubes that must agree with the tile above and the tile to the left, so traces run instead of ending.
Edge matching
Hao Wang proposed his tiles in 1961 as a way of encoding computation: square tiles with
coloured edges, which may be placed adjacent only if the shared edges match, and which
may not be rotated.
Here the “colour” is a single bit — does a tube cross this edge or not — and the
matching is enforced by construction rather than by search:
var newDown = rng.NextDouble() < 0.5;
var newRight = rng.NextDouble() < 0.5;
DrawTile(t, rng, gx, gy, prevRight, prevDown[gx], newRight, newDown, …);
prevRight = newRight;
prevDown[gx] = newDown;
Each tile inherits its left and top edges from what has already been placed, and
chooses its right and bottom. Two bits decided, two bits given, and a tile is
completely determined.
The first rows.
Why the traces run
A tile with a tube crossing its left edge must connect to it, because the tile to its
left already drew that tube. There is no way for a trace to stop at a tile boundary, so
tubes chain until they reach an edge that carries no connection — and only then do they
end.
That is the entire difference between this and a field of random tile fragments. Two
inherited bits per tile buy global connectivity.
Two fifths.
Three fifths. The five motifs — dead end, straight, elbow, T-junction, four-way crossing
— are not five separate drawings. They are the sixteen combinations of four edge bits,
collapsed by symmetry.
Four fifths. Note the direction of the constraint: it propagates down and right only.
A tile never influences the one above or to its left, so the fill is single-pass and can
never fail — unlike a general Wang tiling, which may need backtracking or may be
impossible.
The full board.
Undecidability, in passing
Wang’s original question was whether a given tile set can tile the plane at all. He
conjectured that any set which can must be able to do so periodically — and his student
Robert Berger disproved it in 1966, exhibiting an aperiodic set, and proving in the
process that the tiling problem is undecidable.
That is the same lineage the hat monotile belongs to. The set used here is deliberately
not one of those: every arrangement of these tubes is legal, which is why a greedy
one-pass fill works.
Renderings
| Rendering | Grid | Ink |
|---|
| Circuit Cyan | 12×12 | cyan on black |
| Signal Magenta | 9×9 | magenta on near-black |
| Blueprint | 6×6 | slate-blue on dark navy |
| Trace Amber | 16×16 | amber on near-black |
| Data Lime | 20×20 | lime on near-black |
Each rendering has its own seed, so they are independent fills of the same rule.
The museum plate
The gallery ends with the piece the way it would hang on a wall. MuseumFrame
is a presentation layer, not a generative one: it takes any ISkiaArt piece,
clears to a gallery wall, and draws a frame, a mat with a bevel rule, and the
artwork contain-fitted into the opening behind them. The lead preset, Circuit
Cyan, appears in the gallery twice — once as the raw plate, once framed —
because the frame is a way of showing the work rather than a rendering of it,
and none of the other variants gets a framed copy.
The proportions are fixed: the opening is 65 % of the canvas, the mat and the
frame are fixed fractions of the shorter side around it, and the rest is wall
with a soft drop shadow under the frame. The artwork is clipped at the mat
edge, so nothing it draws bleeds onto the wall.
Determinism
SeededRandom — the project’s stable Xoshiro256StarStar — is seeded from the preset
and consumed twice per tile, in row-major order, plus once per column for the initial
top edges.