👁️ the idea
The Ralph Eyeball Loop
You can proofread a sentence by reading it back. You can't do that with a chart. So look at the chart, fix what your eye caught, and look again.
In Sprezzature, an AI agent runs this loop itself, refusing to trust a figure it hasn't looked at.
Whether it's right lives in the pixels
Code that draws a chart can be correct and the chart still be wrong. A label slides off the edge. A legend lands on top of the data. Two points sit exactly on each other. A red-and-green palette turns into one muddy colour for a reader who can't tell them apart. None of that shows up when you read the source. It only shows up when you see the result.
Text is easy this way: you read it back and the mistake is right there. A picture is not. The only honest test of a picture is to look at it.
The loop, in four steps
- 1
Render. Turn whatever you made (a chart, a diagram, a map, a whole web page) into a plain image with a deterministic tool. No model, no guessing. The same input gives the same picture every time.
- 2
Look. Actually study the image. Is the point you're making the first thing the eye finds? Is anything cut off, cramped, or on top of something else?
- 3
Fix the source. Change the spec, never the picture. The picture is only ever the evidence.
- 4
Do it again. Render, look, fix, until there is nothing left to catch. Then ship.
Make, audit, then look
Three moves sit under everything in Sprezzature. You make the thing from code, so it reproduces exactly and carries its own data. You audit it with a static pass over the source that catches what the markup can already tell you: a rainbow scale, a blur filter, a missing title. Then you look, because whether it is actually right lives in the pixels.
Make proves it runs. Audit proves the source is clean. The Eyeball Loop proves the result reads. Each move catches what the other two let through, and together they turn "the file exported" into "the figure holds up." That is where the power is: a short, honest circuit you run until nothing is left to catch.
The loop reaches into accessibility too. Right after the render, a colour-vision simulator redraws the image the way a colour-blind reader sees it, and in plain grayscale. If a series or a plus-or-minus sign disappears once the colour is gone, that is a bug you fix before shipping, not a footnote.
Eyes you don't have
This is the part worth dwelling on. A person with normal colour vision cannot see their own chart the way a colour-blind reader does, and no amount of care changes that, because the information is not in their eye. The simulator renders those other viewpoints, and the loop lets you look at them, so accessibility stops being a checklist you take on trust and becomes something you can see and correct. A review a person cannot physically perform turns into an ordinary step.
Grayscale is the sharpest single test. Total colour blindness is rare, but a figure that reads with no colour at all reads under every milder deficiency too. If the story survives grey, it survives everyone.
The palette also carries an accessibility level. The default is universal, already safe for colour vision, and high-contrast, monochrome, and per-deficiency variants are there on demand. One figure becomes a short ladder of renders, and the loop climbs it: render each level, simulate, look. You confirm the default reads for everyone, and that each stronger level does what it promises, with the same eyes in the same loop.
Who does the looking?
By default, the agent that wrote the code does the looking, now checking its own output instead of trusting it. A small vision model can do the looking too if you ask for it.
Either way, the step that turns code into a picture is plain and deterministic. It holds no opinions. It's a prescribed review loop, not a black box that grades your work. You stay in charge; the loop just makes sure someone actually looked.
Why we built the whole thing around it
Plenty of tools will screenshot a web page and check it. We point the same discipline at the harder stuff: charts, statistical plots, diagrams, and maps. These are the things people usually ship without ever looking, because the code ran and the file saved.
That habit is the difference between a figure that merely exports and one that actually reads. It is how every figure in the gallery reached print quality: we looked at the result and refused to ship until it held up.