Labs · Text X-Ray
X-ray a passage, see how
guessable every word is.
Results appear here — every word tinted by how guessable the model found it.
Texts over 6000 characters are trimmed. Works on phones too (same local-only pipeline), but download + init are slower — desktop is the comfortable path.
How the machine works
As a language model reads your text, at every position it keeps a ranked list of what the next word should be. We hold each of your actual words against that list: rank 1–10 counts as a dead giveaway (red), beyond rank 1000 as a genuine surprise (teal). Scan a passage and you get a statistical X-ray — clichés and repetition fuse into red bands, while genuinely personal phrasing tends to run teal. The per-word rank coloring comes from GLTR (Harvard NLP + MIT-IBM, 2019); seven years on, the original still sits server-side, English-only, on GPT-2. This one runs in your browser and adds the Chinese track that never existed.
Not a detector — and we have the data
Before shipping we calibrated the instrument on five groups, 100 provenance-labeled passages. The result belongs on the front page: human-written formulaic webfiction lands at a 64–71% top-10 hit rate, our own officially published AI novels (written under an anti-slop discipline) at 54–65%, and raw LLM continuations from five frontier models even lower, 52–61%. The bands overlap and flatly invert the folk intuition that AI text is the predictable one. The reason is mundane: a probe model measures distance from its own 2019-era training distribution, and formulaic webfiction is the densest part of that distribution. GLTR's authors admitted the method would fade against newer models; we quantified that fade with our own corpus. So when someone sells you a perplexity-based AI verdict, these three inverted bands are the question you should ask them.
Four lenses, one honest kit
This is the statistical lens in our AI-flavor toolkit: the AI Flavor Checkup covers the rule layer (stock-phrase blacklists and sentence-mold quotas, hits named one by one), Fiction Prose Stats covers the structure layer (sentence rhythm, dialogue ratio, verbatim repeats), Text X-Ray covers the statistical layer — a real neural network's per-word surprise — and the Narrative Fingerprint covers the narrative layer (how the story itself is built: emotion named vs performed, retrospection, scent imagery — the layer that survives paraphrasing). Each has blind spots: rules miss new clichés, structure can't see word-level texture, statistics can't tell a formulaic human from a restrained machine, and narrative proxies can be deliberately written toward. Used together, they're more honest than any one alone.
FAQ
Is my text uploaded anywhere?
No. On first scan your browser downloads a 73–81MB quantized mini-model from a CDN; after that, all inference happens on your device in a Web Worker (WASM). Nothing is sent to any server — with the model cached, the scan even works offline.
Can it tell whether a text was written by AI?
No, and we won't pretend otherwise. We calibrated the instrument on 100 provenance-labeled passages: on this probe model's scale, formulaic human webfiction (median 69% top-10 hit rate in Chinese) reads as MORE predictable than raw LLM continuations (57%). Perplexity and authorship stopped lining up years ago. What you get is per-word texture, not a verdict.
Why does it download 70+ MB?
Because a real neural network runs in your browser: the Chinese track is a 6-layer distilled Chinese GPT-2 (q8 ONNX, 73MB), the English track is DistilGPT-2 (81MB). Each downloads once and stays in browser cache; engine init takes a one-time 10–30s per page visit, and the scan itself is sub-second.
What's the relationship with GLTR?
Homage and a hand-off. GLTR (Harvard NLP + MIT-IBM Watson AI Lab, 2019) colored each word by its rank in GPT-2's predictions — the founding artifact of visual AI-text forensics. It stayed in 2019: server-side, English-only, with its own disclaimer about newer models. This is the same idea rebuilt for 2026: it runs in your browser, covers Chinese and English, and puts the 'fails on newer models' caveat on the table with our own calibration data.