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