The reviewers wanted the difference quantified
Here is where this tool actually started: I wanted to measure plaques. Not describe them, not photograph them and hope the reader saw what I saw — measure them, so I could put a real number next to a wild-type phage and a real number next to its mutant and say, with a straight face, that these two things are different.
Because for a long time I did it the way everyone does. You take the plate off the bench, hold it to the light, and start tallying clearings by eye. You decide, mostly on feel, which ones look turbid and which look clear. Then you photograph the plate, drop it into a figure, and let the picture do the arguing. Look — the mutant makes smaller, cloudier plaques. You can see it, right?
The reviewers could not see it. Or rather, they weren't willing to take my eyes' word for it — and honestly, they were right not to. The pictures weren't enough. They wanted the difference quantified: how much smaller, how much more turbid, with what spread, across how many plaques. Not a representative photo. Numbers you could put a statistic on.
"Show us" wasn't enough. They wanted "how much." Fair.
That pushback is the whole reason this exists. A photo says the mutant looks different. A table says the mutant's mean diameter is 1.32 mm versus 1.84 mm for wild type, across 142 plaques — and that is a sentence a reviewer can actually check. So I set out to build the thing that turns the first sentence into the second: point it at the plate photo I already had, and get back size, turbidity, count, and titer for every plaque, as a CSV I could analyze and a figure I could publish.
Writing it forced an honesty the eyeball never demands. I couldn't hide behind "clear" and "turbid" anymore — I had to decide what turbidity is in pixels (mean gray relative to the surrounding lawn) and defend that choice. I had to work out exactly how a dish diameter in millimeters maps to pixels, and what breaks when someone forgets to pass it. You cannot fake your way through that.
I'll be straight about how it got built, because it matters: the science is mine — what to measure, why turbidity is defined the way it is, which engine should be the citable one, the whole reviewer-shaped frustration that kicked it off. The engineering I did alongside Claude. I'm a scientist who's gotten good at building tools with AI, not a career software engineer, and I'd rather say that plainly than pretend the Qt interface wrote itself. It let me turn a real, specific piece of reviewer feedback into a working instrument far faster than I could have alone — and now the difference between wild type and mutant isn't something I ask you to see. It's something I can hand you as a number.