Live benchmark · nothing precomputed

Don't take the number. Run it.

Below is the ΑΔΩ engine, shipped to your browser as the same file the repository holds. Press start and it feeds a corpus on your machine, builds the address cascade, measures its own poles, and streams every probe as it computes — several configurations at once, one worker thread each.

Every figure in the runner is produced in this tab, in this session, on your own CPU. Nothing there is stored, replayed, or fetched. The recorded figures further down are kept in their own band and labelled with the run that produced them.

Set it up

the comparison is the product

These are the axes the engine actually has — each one is a real branch in Ω.js, not a preset. Tick more than one on any axis and the runner builds every combination and runs them side by side, because these numbers only mean something next to each other: the same question genuinely has different answers under different settings, and a number without its configuration is not a number.

Corpus

What gets fed. The field holds exactly this and nothing else — there is no pretraining underneath it.

Encoder

Where each byte's 256-dimensional position comes from. This axis asks whether the encoder is doing the work or the geometry is.

Delimiters in the trie key

Whether whitespace stays in the address key. It looks like a bug that level one of the trie has a single branch; it is what makes the key encode word boundaries.

Fusion

How ten directional proposals become one word. This axis moves the reading measures and leaves the claim measures untouched, which is itself worth seeing.

Context length

How many bytes of context each probe carries. Applied to every configuration, and every result is reported per length as well as pooled.

Draws, and the material never fed

The unseen set is used for the ceiling measures. If it is the same file as the corpus the runner drops it rather than pretending.

200 is ⊕ parity: at that setting the four original measures draw exactly the probes ⊕.js draws, from the same seed, in the same order, and reproduce it cell for cell.

0
configurations
0
worker threads
0
cores reported
0
probes in total
one wave

The time above is an estimate: per-byte and per-probe coefficients measured on this code, inflated by half for a browser, then divided by an effective parallelism of two fifths of the cores your browser reports rather than by the worker count — because eleven threads on twelve logical cores do not finish eleven times sooner. It is rough, and it is stated before the run rather than after. The moment probes start, each card shows its real rate and a measured estimate replaces this one.

Side by side

engine, and the two-line baseline on the same probes

Each configuration is a column and each measure is a row. Under every engine figure is the same probe judged by corpus.includes(probe.slice(-11)) — eleven bytes of exact substring matching, no field, no addresses. It runs on the identical draws, so this is a genuine head-to-head rather than two benchmarks reported next to each other. On verbatim material it ties, and that is kept in deliberately.

Nothing measured yet. Press Start the run above and this table fills in, column by column, as each configuration finishes.

A cell reading baseline ahead is one where the trivial matcher beats the engine. Those cells exist and they are not hidden; which ones, and why, is set out under the ceiling.

What each measure actually tests

read this before reading the table

These descriptions are generated from the same file that produces the numbers, so the page cannot drift from the code. The distinction that matters most: a needle-recall figure on material the field was fed is a retrieval result. It is not a long-context reasoning result and it must not be read as one.

The ceiling

in the body, at body size

ΑΔΩ does not generalise. On material it was never fed it reads about 2% of the next words correctly — 1–3% depending on how the probes are sampled — measured on 828 probes across the three shipped held-out books at 400 bytes of context, on shipped defaults. The same engine, after being fed those books, scores about 92% on the same probes. The distance between 2% and 92% is the whole story: this is a memory, and a memory knows only what it ate.

Everything the runner measures well is a property of having been fed the material. Verbatim recall at 1.000 across every depth of a 5.94 MB haystack is real, and it is the easy direction for a prefix-addressed memory — the address is an index rather than an attention window, so recall does not decay from the front of the corpus to the back. That absence of decay is a genuine result about the architecture. It is not evidence of understanding.

Run the unseen measures and watch where they land. Feed Frankenstein, probe Moby-Dick, and the reading figure sits near zero while the field still recognises a great deal of English prose as vocabulary it holds — the my words, not my order verdict. That middle verdict is the honest answer for foreign prose, and it is also where a system with only two answers would have had to lie.

The ceiling also moves with ledger size, and not in the direction that flatters. A full false claim on unseen prose is far rarer on a 5.94 MB ledger than on the 15 KB one shipped with this page. Run both and the two numbers will not agree; neither is the other's headline.

Where the engine beats the trivial baseline, and where it does not. The figures in this column were measured on the shipped 15 KB ledger at contexts 200/380/800 with roughly three hundred draws per cell. They are here so the prose can be checked against the table; your own run will differ, and every cell in the runner prints its N.

On recognition it beats exact substring matching — delete one word in seven and it still claims the passage 0.990 of the time against 0.853; corrupt one character in twelve and it is 0.689 against 0.410. Refusing random junk is a tie at 1.000.

But exact substring matching is the wrong opponent, and beating it establishes very little. A forty-line baseline — character 5-gram overlap scored over a linear scan of the corpus — was calibrated to the same false-claim rate on 449 negatives and then measured against the engine. It recognises 1.000 of every damage mode against the engine's 0.783–0.913, and locates the true continuation on 1.000 of deletion, substitution and typo probes against the engine's 0.032–0.042. It wins on both axes. No claim about fuzzy matching is made anywhere on this site, and none should be: the only defensible statement is that exact substring search returns nothing, and that comparison flatters the engine against a method nobody would choose for the job.

On reading stored material it beats the trivial baseline. 1.000 against 0.884 — eleven bytes are ambiguous often enough that the trivial reader takes the wrong continuation about one time in nine.

On reading damaged material it loses, and by a long way. Across word deletions, 0.115 against 0.700. Under character corruption, 0.065 against 0.355. This is the largest gap in the table and it runs against the engine. The reason is in the architecture rather than in tuning: the claim reads four hundred bytes through ten directions and survives damage, while the word is selected on a twelve-trit key and scored by byte offset, so a deletion shifts every position behind it and a corrupted byte near the tail derails the branch. Recognition is robust here; emission is not.

On abstaining from its own shuffled bytes it is marginally behind — 0.993 against a baseline that cannot match a shuffled tail at all and therefore refuses everything.

The axes themselves are quieter than they look. On this ledger the derived encoder and the model-free byte hash separate by a percentage point or two on every measure, which is the point the recorded run makes at scale — the geometry does the work. Delimiters and fusion move the reading measures by roughly the same amount. At the default three hundred draws those differences are inside the noise, and the runner will show them as ties; raising the draws is the only honest way to tell them apart.

The false-claim rate is an address collision rate, not a fabrication rate. The doorway compares addresses, not bytes; different text landing on the same trit sequence is the same passage at the resolution the field reads at. Collision depth is set by the size of the null, φ⁷ of the field, which is derived rather than chosen — so the rate is a property of the geometry and moves with ledger size rather than with effort.
Recorded · not live · not recomputed on this page

The ten-book run

Everything in this band was measured once, elsewhere, on a corpus that is not shipped with the page — ten pre-1919 Project Gutenberg books, nine fed and one held out, roughly 7 MB of source text. It is here because it is the only run at that scale, and it sits in its own band, on its own ground, so it cannot be mistaken for something the runner above produced.

5.94 MB
fed
nine books · one held out
1,077,603
ledger states
word starts indexed
11
window
Crown window, floored by pole liftoff
0.003
false claim rate
1 of 300 · an address collision
PopulationNMine, in orderMy words, not my orderNot mine
In the haystack30029910
A book never seen300126732
Random junk15000150

Needle recall by depth, across ten equal slices of the haystack: 1.00 for every slice. Junk refused 1.000. The single error in three hundred was inspected — a Dickens query never fed and a ledger passage from a different book produced identical trit sequences at eleven levels. Different bytes, same address.

Same benchmark with the encoder replaced by a deterministic byte hash: derived − hash → recall 0.000 · absent-needle 0.010 · junk 0.000. The geometry does the work; the encoder need only assign distinct vectors to distinct bytes. The encoder axis in the runner reproduces the shape of that result on a corpus you can download.

Nine books is not PG-19. PG-19 is roughly 28,000 books and 11 GB; the window would move from 11 to about 18 at that scale and that is unmeasured. ΑΔΩ is not a language model, and LongBench-style QA benchmarks measure things it does not do.

Check the runner instead of trusting it

same battery, no browser

The page loads three files: the engine, the τ codec, and the battery. The first two are byte-identical copies of the repository's Ω.js and τ.js — not ports, not minified, not adapted, loaded behind a two-line shim rather than edited. The third is the measurement logic, and it runs unchanged under Node against the same corpus files this page serves.

# the identical battery, outside the browser
node engine/verify.node.js
node engine/verify.node.js --encoder hash --skip-delims --fusion centroid
node engine/verify.node.js --corpus corpus/84.txt --unseen corpus/2701.txt

# and the engine's own harness, which the above reproduces cell for cell
node ⊕.js

At the default 200 draws per measure per length, the four measures ⊕.js also runs — recall, junk refused, shuffled bytes refused, order flag — draw from the same seeded stream in the same order and produce the same numbers, per context length and pooled. The measures added here continue that stream after the four rather than interleaving with it, so their existence cannot perturb the originals.

engine · omega.js = Ω.js
ba02f47f7944738c360b2c33c526e99fe6a9d273da489dd05c210a5dfbad03c9
codec · tau.js = τ.js
5aac25a6529103200af8853862d59ac843a7a6c791521d0a39a072cb33bd80a1
ledger · V-001.tau = Δ/V·001
93c73885d36a33dc6f500bcc7f6ae0370269a58dc6b7bee9536ca8bf56c59a14
holdout · 84.txt · Frankenstein
6bb38b54dbf7cf0fa1b932bd0cc1d64b34d3020aec34ef420685975eef213e8a
holdout · 1342.txt · Pride and Prejudice
bdd9b2bf582448b7ae7eb4ca584cfd14c1ca3607b92e1a7cb52649457e2e1087
holdout · 2701.txt · Moby-Dick
0db6f3095fa972cb59a03d243b16ed4cda58228ff1214de236ede6032a818ac2
battery · bench.js
the measurement logic — the only file the runner loads that is not a copy of something in the repository
A corpus must be read as bytes — latin1, one character one byte. Read as UTF-8 it silently truncates every multi-byte character and the field is built on different material than the file on disk. The runner reads every file as an ArrayBuffer and maps it byte for byte, including the file you drop in yourself, which is read in the tab and never uploaded.

A different kind of evidence

LongMemEval-V2 · self-reported · official scorer

The runner demonstrates a mechanism on material you choose. The result below is the opposite kind of evidence: an external public benchmark with its own official scorer, measured once and frozen with digests. Neither replaces the other. A live demonstration cannot tell you how a system ranks against published baselines, and a leaderboard number cannot be watched being computed.

SystemAccuracyLatencyNote
RAG (query → slice + notes)51.0%0.2 sreleased baseline
UDI v0.3.1 — ours56.76%0.187 ssub-second frontier · self-reported
AgentRunbook-R58.6%26.9 sreleased baseline
Codex (coding agent)69.9%177.2 sreleased baseline
AgentRunbook-C74.9%108.3 sreleased baseline
This is a self-reported result, measured with the benchmark's official public scorer on the complete Small tier, all 451 questions. It is not an accepted leaderboard entry and it is not the highest raw accuracy overall — the agent baselines reach higher accuracy at 100–180 seconds per query. The claim is narrow: best accuracy per unit latency at the fast end, roughly six points above the same-speed baseline, published with verifiable digests, pending independent review.

Recompute it offline

The sealed adapter produced its 451 answers and the official scorer judged each one. This bundle recomputes 256/451 = 56.76% and the 0.187 s latency straight from those frozen judgments — offline, no API key, no access to the protected mechanism.

# download, extract, run — prints PASS with the exact numbers
curl -LO /results//repro/udi-lmev2-small-reproduce-v0.3.1.tar.gz
tar xzf udi-lmev2-small-reproduce-v0.3.1.tar.gz
python3 reproduce.py
Bundle · sha256
2e916259d9ec0b5126cbc1bc0a240e79b88a3704e36d2c70d37f9a507d84452b
Judged records · sha256
350d53db5902e5b801869d317c748d37adf750f8cc34c77e91469fad1663611f
Frozen package · sha256
558307411338f8a7831d2aef…
Submission overview · sha256
259467c906631b7f1b5b8c90…
Code artifact · sha256
230ccf4dbb6d9125f1f6331c…
Protected package · sha256
3a52886c6d30b6ca51123947…
This recomputes the score from the official scorer's frozen judgments. It is not an independent re-run of the judge and not an accepted leaderboard entry. The README documents the deeper check: re-grade the answers with the official evaluator at commit 6f020ac2 and a judge-model key.

Come falsify us.

The runner is the invitation. Drop in your own corpus, tick every axis at once, and look for the rows where the two-line baseline wins — there are three, they are named above, and if you find another we would rather hear it from you than not hear it. The full method, matched baselines, and the negative results we keep live in the Lab.