APEX · CHESHIRE r1
SQUINT × LINEFINDER — two engines, one referee · BARNCAT reads the big print, ALLEY CAT goes after the rest, the CHESHIRE sends back what only grinned like print · the MOUSER brings back the small round things · LINEFINDER cuts a detail pass, one tap below the pick
RESULT
DOWNLOAD SVG
COPY SVG
BARNCAT · TWO TEMPERS
AGGRESSIVE
CAUTIOUS
TEXT OFF
LEADERBOARD tap a row to inspect
MOUSER · SMALL ROUND THINGS
SANITY OVERLAY viewed candidate vs source
PIPELINE 0 referee grades
APEX runs both house engines on every image and lets a referee — not you — pick the output.
SQUINT contributes its guaranteed-coverage KD rectangle partition (the edge master: solidly
bounded, no gaps, ever). LINEFINDER contributes full label-map segmentation (the artist:
traced organic regions, median colors). MASCARA is promoted to a shared pass: its features
are lifted out of BOTH engines' inputs and redrawn on top as crisp primitives. Five candidate
compositions — each solo engine, each with MASCARA, and the APEX STACK (SQUINT base coat
under LINEFINDER detail work) — are rasterized and graded against one source-snapshot truth:
40% per-pixel color · 22% block structure · 25% edge fidelity · 13% salient features.
Sweeps use the knee rule (simplest result within 1.2 pts of best). Highest total wins,
smaller file breaks ties. Single input, no sliders — the tool grades itself.
BARNCAT is the broad-side-of-a-barn reader: a barn cat, not a bloodhound. It only picks one-sided
fights — big print, solid shapes on one flat color, every glyph sitting where a letter sits, each
one a clear match against its prototypes (~360 for caps and digits from ~95 sans families, ~255
for lowercase from ~200). One unsure glyph sinks its word; bars and rings count for nothing, so
rows of screws and vent slots never become text. What it does read is lifted out of both engines' inputs (the budget goes elsewhere)
and comes back on top as live SVG <text>, stretched to the measured box. The referee sees the
read painted with the cat's own prototypes, so the score and the blink stay honest.
R3 gives the cat a second temper. After the barn cat's cautious read (unchanged from R2) the ALLEY CAT
takes the same image with every gate opened a notch: small images are blown up to 3× for a closer
look, print down to about 6 source px of cap height is fair game, lower contrast and busier
surroundings are tolerated, a closed-up counter costs instead of disqualifying, touching pairs get cut
apart, and a word only needs half of its glyphs sure — best guesses fill the rest. A glyph it can't read breaks a word instead of
sinking it (the readable part goes live, the rest is traced as a shape), and caps or digits that shared
a line with lowercase get a row of their own. It can only ADD words on ground the barn cat left empty;
it never overrules the sure read. You get both reads every time: green = cautious, orange = aggressive, each orange box
tagged with what it read. The one switch in the building now has three positions — AGGRESSIVE ·
CAUTIOUS · TEXT OFF. Each position reruns the image once, then flips instantly. In the SVG the two
reads stay separable: <g id="barncat"> and <g id="alleycat">.
R4 teaches both cats lowercase. A shorter neighbor on the baseline used to be a reason to leave; now it
is a measurement — it is the x-line. Every line gets four rulers instead of two (cap line, x-line,
baseline, and whatever hangs below), and where a glyph sits decides what it is allowed to be: c/C,
o/O/0, s/S, p/P are never a shape contest — geometry calls the case. The dot over an i or j is too small
to be a shape of its own, so it is hunted down directly above its stem and measured as part of the
letter. A plain bar is I, l or 1 by its neighbors: leading a lowercase word it is l before a vowel (low,
load) and I before a consonant (Input). The caps reading still runs first on every line, exactly as R3
read it; the four-line reading is a second opinion that replaces it only when it reads more sure glyphs,
so a caps-only image reads as it did. Lowercase is sized by the capitals it would have — the print size
that got CAPS read gets lowercase read. Words on a tight-set line can still come back in two pieces
(each piece lands exactly where it was). Also fixed: dark, perfectly flat ink (screenshots, renders)
could lose its color in R3 and come back as rows of 1s — photos never hit it.
R5 cuts a detail pass. LINEFINDER runs once more on the same frame with its gates opened: a 224 px working
grid instead of 144, the palette swept 10 · 14 · 18 instead of 4 · 6 · 8, regions an eighth the old size allowed to
live, a tighter trace, and no 90° snap — an organic edge stays organic. The sweep is graded by the referee
and knee-picked like every other sweep. The result rides in the leaderboard as LINEFINDER · DETAIL, scored
and ranked with the rest, but it is not in the running for the pick: the champion is chosen from the same
five compositions R4 chose from, so the pick never moves. The detail cut sits one tap below it as the
second option — a bigger file with more of the picture in it — and the signed Δ on its row says whether it
out-scored the pick. The cats are untouched: whatever they read is lifted out before the detail pass runs,
same as every other working raster.
R5.1 adds the MOUSER — the circle cat. The engines lose small round things by construction: a pupil is two pixels on
the 144-grid, and the 3×3 mode filter eats it before the island rule ever gets a vote. The referee cannot see them
either — on its 128-px truth raster a pupil is a pixel and a half. Yet two of them sell a face, the way "120" on a
blue blob sells a charge controller. So the mouser hunts them on the full-detail frame after the cats have lifted
their text: center-vs-surround at six sizes (an RGB distance, so a lit red lamp on a gray panel counts), strongest
first, each survivor grown from its center by nearest-of-two-colors inside a bounded window — a fill that reaches
the wall is a stroke or a region and is left alone. A strong one that leaked or came out ragged gets a second look:
the same fill opened (eroded, the seed's piece kept, dilated back), which is how a pupil that touches an eyelid is
told apart from the eyelid. What survives is measured — round (inside its own inscribed disc, and covering it),
a solid inside (a stroke has none), flat, and far from its ring in color; a second-look thing is held to more.
Claims are lifted out of every working raster (inpainted with the ring color, so no engine spends budget on a
broken half-blob), painted into every referee render, and emitted as live <ellipse> in <g id="mouser"> —
the BARNCAT pattern, for dots. Pupils, indicator lamps, screw heads, port holes, buttons. It is not a candidate and
the referee does not vote on it; it only claims what it is sure of, and the panel shows what it sized up and left.
Its own switch — MOUSER ON · OFF — reruns once per position like the text switch and then flips instantly. With the
pupils carried by the mouser, the detail cut's region floor comes back up a notch (an eighth → a fifth of the old
size): the interior slivers that were the price of chasing pupils through LINEFINDER are mostly gone.
“Would you tell me, please, which way I ought to go from here?” “That depends a good deal on where you want to get
to,” said the Cat. “I don't much care where—” said Alice. “Then it doesn't matter which way you go,” said the Cat.
CHESHIRE r1 is a new line off R5.1, and it is all in the cats. Two things. First, they know punctuation now: ( ) / —
27 prototypes rendered from 24 upright sans faces and stretched to the grid exactly the way a read glyph is, kept in
their own table so the caps table stays byte for byte. A closing paren used to be read as the nearest letter, which
is J (TPVJ · PCUJ · HEATJ); a slash as 7 (TRANSPORT7COOLING). Now they are themselves, they earn no points, and )
and / are twins of J and 7 so the ratio test never calls a paren a toss-up against the letter it used to become. Then
company decides: a word that opens with ( and ends in J ends in ), and a 7 with letters on both sides is a slash; a
slash between digits is never flipped the other way. Second, the CHESHIRE veto: the grin without the cat. Texture
that reads as text — hatching, a screen, a stipple — passes every gate the cats have, because the cats test what a
letter looks like and the texture looks like one. So the veto tests what a letter is . A letter has strokes in
at least two directions (an M is two uprights and a V; even a y is two diagonals) — a stripe of hatching has one. A
wide letter is an airy one — nothing is both one and a half times wider than it is tall and two thirds ink, which is
exactly what a hatched block reads as once JPEG has smeared it into a gray plate with a notch in it: two M's, side by
side, sixty-six pixels tall. And one shape is never three quarters of a real word. Any one tell is enough; a vetoed
word is not a read — nothing is lifted, and its box shows dashed in the cat panel with the tell on it. Measured
against a dense technical drawing at five encodings and sizes: the pair of M's goes, every real word stays, and the
parens let a few more words through than before.