Labs · Narrative Fingerprint
The AI accent isn't in the words.
It's in how the story is built.
Ctrl/Cmd + Enter to run · one regex pass, in your browser, sub-second. Nothing uploads.
The fingerprint readout appears here — try the two samples for an instant human-vs-AI contrast.
The paper that started this
In 2026, StoryScope (University of Maryland + Google DeepMind) did something detection tools had skipped: it ignored word choice entirely and extracted 304 narrative-structure features from 61,608 stories — plot shape, character agency, chronology, how themes get stated. Structure alone separated human from AI fiction at 93.2% macro-F1. The finding that lit up r/WritingWithAI: professional style-level rewriting barely moved it (95.5% → 93.9%). You can swap every word and reorder every sentence; the skeleton still says who built it, because changing the skeleton means rewriting the story.
What this page computes — and what it honestly can't
The paper's extractor is an LLM reading each story. A free browser tool can't do that, so this page computes the lexical projections of the core features that leave visible fingerprints on the page: whether feelings get named (“she felt afraid” — humans do it 3.6× more) or performed by the body (“her chest tightened” — the paper's widest gap, AI 81% vs 38%), retrospection markers, scent imagery (an oddly reliable machine habit, 82% vs 57%), narrated cognition, gnomic moralizing. Each axis was validated on our own provenance-labeled corpus first; the ones that separated cleanly are counted, the ones that didn't are shown in a reference tier that says so. Features that need actual story comprehension — subplot count, resolution agency, moral ambiguity — are listed in the paper panel with an honest ✗.
The fourth lens
This completes a four-layer kit, each layer catching what the others can't: the AI Flavor Checkup reads the rule layer (stock phrases, named one by one), Fiction Prose Stats the structure layer (sentence rhythm, dialogue ratio), Text X-Ray the statistical layer (a real neural net's per-word surprise) — and this page the narrative layer, the one that survives paraphrasing. Our own calibration handed us the best argument for why you need all four: our published AI novels, drafted under a show-don't-tell discipline, score a flat zero on “feelings named in narration” — scrubbing one fingerprint stamped a cleaner new one. Structure doesn't launder out. That's the paper's thesis, reproduced by accident in our own corpus.
FAQ
Is this the actual StoryScope method?
No, and the page says so up front. The paper extracts 304 narrative features by having an LLM read each story — that can't run free in a browser. What we ship is the subset of its 30 core features that leave lexical traces a regex can see (emotion naming vs body-performing, retrospection markers, scent imagery, gnomic moralizing, reader address), each validated on our own labeled corpus before shipping. Axes whose projections didn't separate cleanly are shipped in a 'reference' tier that says exactly that.
Can it tell me whether a chapter was written by AI?
No. It counts which calibrated bands your chapter's structural readings fall into — human band, AI band, or the overlap — and stops there. No percentage, no verdict. Two honest reasons: our calibration corpus is small (24 human + 24 AI English segments), and every axis here can be deliberately written toward. Treat it the way the paper treats its features: as interpretable evidence, not judgment.
Where do the human and AI bands come from?
Human EN band: 24 mid-book windows from 12 public-domain novels (Project Gutenberg, 1898–1926 — Fitzgerald, Hemingway, Christie, Conrad and co.), ~4.2k words each. AI EN band: 24 windows from 12 of our own published pipeline novels, drafted by an LLM under an anti-slop discipline — deliberately the hard case, since that prose already dodges word-level tells. Both bands were computed by the same code that runs in your browser, and the per-segment values are frozen in our repo.
Is my text uploaded anywhere?
No. The whole analysis is one regex pass over your paste, in your browser, sub-second even on a 300k-character book. No model download, no server call, works offline.