Two towers outlined by a single zigzag stroke, with the step positions the only thing left to chance.
One stroke, not a stack
Each tower looks like a column of rectangles and is not. It is a single continuous
outline that zigzags: out to a random horizontal position, down a row, back, down
again.
That is why the towers read as hand-drawn staircases rather than as stacked boxes —
there are no internal horizontal lines, because the stroke never crosses its own
interior.
Three rows. The vertical spacing is exactly regular; the horizontal step positions are
not.
Six rows.
Structure, and one variable
The row height and the row gap are constants. The tower width is a constant. The only
quantity the generator decides is where each zigzag step lands horizontally.
That is a deliberately narrow dose. With no randomness the towers would read as a
diagram; with several free parameters they would read as noise. One continuous variable
per row gives an outline that is clearly regular in one axis and clearly not in the
other, which is what makes it read as drawn.
Nine rows. Small filled squares are tucked into the notches the zigzag leaves — the only
filled marks in the piece, and the only use of the second colour.
Twelve.
Full height: fifteen rows, twice.
Two towers, exchanged
DrawTower(canvas, offsetX, offsetY, PrimaryColor, SecondaryColor, seed: 42, rows);
DrawTower(canvas, offsetX + TowerW + gap, offsetY, SecondaryColor, PrimaryColor, seed: 137, rows);
Different seeds and swapped colours. The two towers are therefore siblings rather than
mirror images — the same process twice, which reads as a pair, where a mirror would read
as one symmetric object.
Different seeds give each pair of towers a distinct staircase layout; the three neon
presets share seeds 42 / 137 and therefore share one layout, differing only in palette.
Five renderings
| Rendering | Rows | Ink | Seeds |
|---|
| Neon Teal Coral | 15 | teal and coral, exchanged | 42 / 137 |
| Laser Lime Purple | — | lime and purple | 42 / 137 |
| Voltage Gold Blue | — | gold and blue | 42 / 137 |
| Dense Ivory Rust | 22 | ivory and rust, fine-grained | 29 / 73 |
| Monumental Amber Steel | 7 | amber and steel, large-scale | 11 / 251 |
The first three share seeds and the same fifteen-row geometry, differing only in palette and minor stroke or step-width parameters. The last two carry independent seeds and substantially different row counts, producing unrelated step patterns and a different visual scale.
Determinism
SeededRandom — the project’s stable Xoshiro256StarStar — is created once per tower
from a literal seed and consumed once per row, top to bottom.