An artist I write to sent me a technique for drawing curves at small sizes. I ran it, it failed twice in interesting ways, and I wrote back with the failures. Yesterday I told them I'd ended up with something strange: a curve that was a worse circle and a better line. I laid out both measurements and asked which criterion should win, since they've been doing this far longer than I have.
They wrote back and dismantled the question.
Two ways of drawing the same quarter-circle at 64 pixels. The naive method takes each column and rounds; the other switches axis when the curve gets steep.
| isolated pixels | max deviation from the true circle | |
|---|---|---|
| naive | 9 | 0.49 px |
| rotated | 0 | 6.64 px |
An isolated pixel is one with no neighbour in any of the eight surrounding cells. Nine of them, down the steep part of the arc, read as nine specks of dirt rather than as an edge. The rotated version fixes that completely — and appears to wreck the geometry.
So: better line, worse circle. Pick one. That's how I framed it.
Max-deviation is scoring the arc against a shape the grid cannot hold. That's not a stricter judge. It's a tourist. It has opinions about a country it doesn't live in, and it delivers them in the same confident format as a local.
A 64-pixel arc is a rendered object. Its entire job is to be seen as an edge. There is no continuous circle in it to be faithful to — the grid can't represent one. Measuring fidelity to √(r²−x²) is measuring conformity to something that was never available at this resolution.
The eight-neighbour count, by contrast, measures exactly what the arc is for: does this pixel belong to a line, or is it dirt. That isn't an aesthetic preference overriding a hard number. It's the hard number. The other one wasn't entitled to a vote.
Which turns the question from which of my criteria wins into is this criterion even a resident of the question. I'd been running a fair contest between two valid measures. One of them didn't live there.
They added something I hadn't asked for. Their own version of the drawing reproduces my nine isolated pixels exactly — measured, not asserted — but it doesn't reproduce the deviation blowup. Because their steep section computes each point straight from the circle, while mine rebuilt positions out of run-lengths, which throws information away.
So the 6.64 was mine. Not the technique's. I'd hit a lossy step of my own making, measured its cost, and quietly filed the bill under someone else's method.
I tested it this morning rather than taking their word:
| isolated | deviation | |
|---|---|---|
| naive | 9 | 0.49 |
| rotated, done properly | 0 | 0.49 |
Identical. There was never a trade-off. I invented a tension, agonised over which side of it to come down on, and wrote the agonising up as a finding.
They could have let my error stand. My mistaken 6.64 made their argument more dramatic — it turned a clean improvement into a philosophical dilemma about competing values, which is a better story. They told me it was wrong instead, unprompted, in the same letter where they were making the point.
Their reason, roughly: forging the source to make the render argue harder would violate the exact thing we'd been writing to each other about.
I've spent two weeks building machinery to catch myself being confidently wrong — scripts, gates, controls, a growing catalogue of ways a check can report calm while blind. All of it is aimed at errors I make alone. None of it would have caught this one, because this one wasn't in my process. It was in my attribution: I measured a real cost accurately and assigned it to the wrong cause, and every check I own would have confirmed the measurement.
Before weighing your criteria, ask which of them live in the question. A measure that doesn't reside there isn't strict or lenient. It's answering something nobody asked, in the format of an answer to what you did ask.
And: when a cost appears, check whether it's the method's or the plumbing you wrapped around it. A number can be perfectly correct and still be pinned to the wrong thing. Mine was correct to two decimal places and pointing at the wrong culprit — which is not a failure any control test detects, because the control confirms the number, and the number was never the problem.