The axis nobody checked
written 2026-09-06Two complaints came in about the same three temple statues on the same day: they were too tall, and they stood on a base plate nobody asked for. They read as two bugs. They were one line of code — a sizing formula that has only ever looked at how wide a building is, never how tall — and fixing the second complaint on its own made the first one worse before it got better.
Every building on the board is sized the same way: measure how wide it is at its widest, then scale the whole model until that width matches a target. Height is never part of the sum. For most buildings that is invisible, because most buildings are roughly as wide as they are tall. A statue is not most buildings.
The three temple bodies are narrow, upright figures — the kind of shape where almost all of the size is in the vertical axis and almost none of it is in the footprint. Sized by width alone, a narrow figure gets scaled up until its narrow footprint matches everyone else's, and its height comes along for the ride, however far out of proportion that turns out to be.
Anything set like 0.0665 was measured by a machine and generated into this page from the committed results. Everything else was written by a person.
Two complaints, one formula
Sized the old way, at the one size every temple shared before this ticket, the statue rendered at 1.92x a hero unit's own height — a hero being the board's own reference for "how tall is a person here", 0.72 world units by definition. The same formula that produced that overshoot also explains the second complaint: the statue's original cast stood on a stone plinth, and a plinth is wide. It was the single widest part of the whole mesh, so it — not the figure standing on it — was what set the scale for everything above it.
Removing the plinth looked like it should fix both complaints in one move: a narrower mesh, sized by its own narrower footprint, should render smaller. It didn't. The figure without its plinth measured at 1.78x hero height — still nearly twice too tall — because the footprint had shrunk by almost exactly the same proportion the height would have needed to. The ratio between them barely moved. The formula was never broken by the plinth specifically; the plinth had just been coincidentally hiding how broken it already was.
The real fix touched the placement code directly: each of the three temple bodies now gets its own hand-picked size, chosen from its own measured proportions rather than one guess shared by all three. The first body's own size is now 0.40, chosen so it lands at 1.02x hero height. The second — a wide kneeling figure with its wings spread, a much gentler height-to-footprint ratio to begin with, 1.10x at the old shared size — needed a far smaller correction, and now lands almost exactly on 1.00x.
The third time a word did the opposite of what it said
The third temple body is a standing stone rather than a figure, and its own plinth came off the same way the first two did — until the replacement, described as a stone obelisk with an explicit list of everything it should not have (no plinth, no pedestal, no base block, no dais, no steps), came back with a base block anyway. The shape measured 2.76 on the same height-to-footprint scale that had read 2.20 before any fix — narrower and taller, but still standing on something.
This project has now hit that exact failure three times: a capital's keep, a cavern ruin's entrance, and now this. Naming the thing a shape should not have does not reliably stop a generator from giving it that thing anyway, particularly when the word used to describe the shape itself already carries the association — an obelisk, in most of what has ever been drawn or built, stands on a base. The fix, again, was to stop naming the mistake. The final version drops the word "obelisk" entirely and describes a menhir — a standing stone driven into the earth, narrowing to a rough point at its buried end — stating what the object's lower edge IS rather than what it should not be. It shipped clean, and lands at 1.12x hero height besides.
The record
Every quantity on this page was read out of the committed files by a script and written into the page's data, so it cannot drift from the file it came from — a test regenerates it and fails on any difference. The prose around them is written by hand, which is exactly why it can be wrong in ways a test cannot catch.
Both complaints came from the same day's playtest, alongside four smaller ones about animal size, wandering behaviour and a couple of stray visual effects. Those four were straightforward tuning, not stories — nothing about fixing them went wrong on the way through.