What you're looking at
cl33 is a small language model — 236 million parameters, trained on about eleven billion tokens in a home lab — built around one unusual rule: the only path from its thinking to its output is a stream of small geometric operators, one set per token (roughly one per word piece).
In an ordinary model, the internal state that produces each word is a large opaque vector, and figuring out what it "meant" is guesswork after the fact. In cl33 there is nothing behind the operators to guess at. The readout is only allowed to see them. Remove them and this exact model's perplexity rises over three hundred times — it has no other way to speak.
That's the whole idea. The stream is the computation. Everything on the demo page is a way of checking that claim yourself.
OPEN THE LIVE DEMO →The panels
Cogitation trace shows the operator stream itself as it's emitted — the raw record the other three panels read. The three below are the checks.
Reverse readout — the conversation, decoded back out of the
operator record. No words go in. A probe reads the operators alone and reconstructs
what was said.
Try: ask the model what it is, then open the panel and look
for amber.
What you'll see: on a typical exchange about 97% comes back
verbatim (on held-out text, the probe alone recovers 86% of tokens exactly). The misses
are the rarest words, and they fail toward neighbors in meaning — "examined" has come
back as "manipulated," "vectors" as "points"; in sessions observed on 2026-09-08, the
model's own name came back as a near-neighbor (cl33 → cl8), the company name one letter
off (MirrorEthic → MirrorEthi), "built" as "designed." The record stores what a word
does to the model's prediction, not how it's spelled, so it forgets rare
spellings before it forgets common meanings. Hover — or tap, on a phone — on any amber
word to see what was actually said.
Flight recorder — the computation run backward. Every
operator has an exact inverse, so the model's state can be rewound step by step.
Try: read the R·R⁻¹ = I line, then the 16-step replay.
What you'll see: the forward-times-inverse check lands near 10⁻⁶. The replay
error grows as you rewind further — from about 10⁻⁵ to 10⁻² over sixteen steps. That
growth is a real cost of this geometry, and it's printed rather than hidden.
Manual override — steering by nudging one operator axis.
Pick an axis, add a small amount to it at every step, and re-run.
Try: ε = 0.2, then 1.0.
What you'll see: at 0.2 the content shifts and stays coherent. By 1.0 it
leaves the manifold and the reply degrades — on every axis; some axes derail much
earlier. The self-perplexity number beside each reply tells you which happened: its
absolute level depends on the reply and the axis (memorized answers sit low, general
prose higher), but when a reply leaves the manifold the number jumps several-fold, and
that jump is the signature to watch. A changed operator is a changed behavior, and you
can measure by how much.
Every reply carries an ⬇ EXPORT RECEIPT control: the prompt, the reply, the flight record, the readout diff, and the override settings, as a JSON you keep. A receipt you can't save isn't a receipt.
What this is not
It's not a good chatbot. At 236M parameters its answers are often thin, sometimes wrong, and it has a weakness for talking about itself. That isn't the point. The point is that every answer it gives comes with a receipt — a transcript you can decode, a computation you can rewind, a behavior you can steer by a measured amount — and you don't have to take my word for any of it. Click the panels.
Going deeper
The Paper page tracks the full write-up: what the architecture buys, what it costs, and the experiments behind every number on this page, with the scripts and checkpoints listed so the results can be re-run.
— Garret Sutherland, MirrorEthic