THE SAME MACHINE executed 0/7

What this is built on

ES modules + import map
no bundler, no build step, no install. The browser is the toolchain.
Custom elements
light DOM deliberately — the content stays selectable, printable and reachable by the page's own stylesheet.
View Transitions API
the crossfade between surfaces is the browser's, not a library's.
Popover API
this panel. Top layer, focus handling and light-dismiss with no JavaScript.
Container queries, :has(), cascade layers
components respond to their own width rather than the viewport's.
SQLite via WebAssembly
a real relational engine, 686 KB, vendored with this page rather than fetched from a CDN — so it works offline, behind a proxy, and without trusting anyone else's uptime.
WebGPU / WGSL
the same cellular automaton on hundreds of lanes, with a CPU reference to check it against.
Web Workers (module type)
the search runs off the main thread.
Web Crypto
SHA-256 for the Merkle tree; no library.
Service worker
the page installs and runs offline once visited.

One remote dependency: a webfont. SQLite ships in the package. Everything else is the platform.

A companion build · eleven blocks · seven instruments · every original dated

The Same
Machine

The first build argued that the structures we call intelligence are arbitrary and were settled between 1847 and 1970, and it demonstrated that with twenty-eight instruments. A fair objection: those were written to make the point.

So here is the same argument again, on tooling that did not exist when it was written. SQLite compiled to WebAssembly. Compute shaders. CRDTs. Merkle proofs. Custom elements. If the forms are genuinely settled, they should be recoverable in any substrate — and the substrate should change nothing but the speed.

begin ↓

b02The Catalogue

A real SQL engine, in this tab, generating its own schema from what it already knows.

The claim from the first build was that an estate's integration points are not designed but recovered: the systems already declare what they contain, and the catalogue is a set of relations you can query like any other. That was demonstrated against a simulated catalogue, which is fair enough as far as it goes.

Here it runs against a real one. SQLite compiled to WebAssembly — 686 KB, shipped in this package rather than fetched from anywhere — four tables created, then the loop: read sqlite_master and pragma table_info, generate DDL from what they report, execute it, and read the catalogue again to find the result. Nobody writes the DDL, and nobody writes down the schema for it to be written from.

nothing yet — press 1

The template is three placeholders and one line. Change it and every generated statement changes with it, which is the whole of the argument in block 7 of the first build: the artefact is exhaust, the rule is the asset.

What the modern engine adds is real and worth naming precisely. It runs in a browser tab, needs no server, and travels in the same folder as the page. What it does not add is the idea. Codd made the catalogue queryable in 1970 (CACM 13(6)); sqlite_master is that, and information_schema in every other engine is that. The loop above would have run on Oracle 7.

b03Attention

Sharpen it far enough and the transformer becomes a hash table.

Scaled dot-product attention scores a query against every key, softmaxes the scores into weights, and returns the weighted sum of the values. Written down that way it is a soft read from a key–value store: the address is a similarity rather than an index, and the return is a blend rather than a row.

Drag the temperature down and watch the blend collapse. At low temperature one weight goes to 1 and the rest to 0, the sum returns a single value, and the mechanism has become an ordinary lookup. Nothing has been switched off — that is the same equation at a different setting.

The lineage is worth stating carefully, because it is easy to overreach here. Vaswani et al. (2017) did not restate an old idea — the architecture, the multi-head arrangement and the demonstration that attention alone suffices are genuine contributions. What is old is the primitive: retrieval by content rather than by address. Kanerva formalised that as sparse distributed memory in 1988, and a hash table is the hard-edged version that has been in every language since the 1950s.

One detail the instrument makes visible and most explanations skip: the raw dot product conflates aligned with large. A key twice as long scores twice as high in the same direction. That is why the mechanism is scaled, and why normalisation is not cosmetic.

b04The Parallel Rule

Eight bits of rule, computed two ways, checked against each other.

An elementary cellular automaton is the smallest interesting rule there is: eight neighbourhood cases, one output bit each, 256 rules in total. Rule 110 is Turing-complete — conjectured by Wolfram in 1985, proved by Matthew Cook and published in Complex Systems 15 (2004).

Below, the same rule is computed twice: once on the CPU one cell at a time, and once as a WGSL compute shader running sixty-four lanes per workgroup. The outputs are compared bit for bit.

If the outputs match — and they do — then the rule is indifferent to what runs it, which is substrate independence: Church and Turing, both 1936. The shader is faster and that is genuinely useful, but speed is the only thing it changed. This is the cheapest possible demonstration of the most expensive result on the page.

b05The Search

The verified engine, moved off the main thread and otherwise untouched.

Chess is the case where recovery fails and learning is correct: the rules are entirely open, and yet no catalogue anywhere stores the best move, because the answer is not stored — it is searched for. Shannon put the tree at order 10120 in 1950 and von Neumann defined optimal play against an adversary in 1928.

The engine here is byte-for-byte the one from the first build, whose move generator was checked against published perft counts. It now runs in a module worker. Press either button and keep scrolling: the page does not stall, because the search is not on this thread.

idle

Perft is the honest check: count every legal position to a given depth and compare against numbers other people published. 20, 400, 8,902 and 197,281 — the last exercises castling, en passant and promotion, so matching it means the generator is right and the tree being walked is the real one.

A worker changed where the search happens. It did not make the tree smaller, and nothing about isolation touches the 10120.

b06The Merge

Two replicas diverge, then agree, and nothing decided between them.

Fork a document, edit both copies independently, and merge them in either order. Conflict-free replicated data types guarantee both merges give the same result — not by choosing a winner, but because merge is a lattice join: commutative, associative and idempotent. Order of arrival stops mattering, so no coordinator is needed.

Shapiro, Preguiça, Baquero and Zawirski named and classified these in 2011, and the engineering that followed — collaborative editors that work offline and reconcile later — is a real achievement. The algebra underneath is Birkhoff's lattice theory, published in 1940. What 2011 supplied was the recognition that a join-semilattice is exactly the structure a replicated system needs, which is recognition of a normal form rather than invention of one.

It is also the second of this page's two spaces, appearing where you would least expect it. A lattice, in the algebraic sense, is what makes the merge safe.

b07The Chain

Name a thing by the hash of its contents, and identity and integrity become one fact.

Hash every block, hash the hashes in pairs, keep going until one root remains. Change nine characters anywhere and the root changes. More usefully, you can prove a single block belongs to the tree by handing over a handful of sibling hashes rather than the whole document — the proof below costs four hashes instead of ten.

Ralph Merkle published this in 1979 and patented it in 1982; the patent expired in 2002. Git's object store (2005) and IPFS's content identifiers (2014) are the same construction with different packaging, and the CID shown above is generated in the shape IPFS uses. The SHA-256 comes from the browser's own crypto, with no library involved.

The first build's ledger chained each block's hash to its predecessor's, which proves order. A Merkle tree proves membership without disclosing the rest, which is the stronger property and the reason the construction outlived its patent by a wide margin.

b08The Constraint

Required, forbidden, cardinality, allow-list. The notation has changed four times.

A schema states what shape a document must have and what happens when it does not. JSON Schema states it in JSON; the first build's schema states it in XML; a DTD stated it in 1986; and Backus (1959) and Naur (1960) stated the general form as BNF, which is why the notation for programming-language grammars still bears their names.

The failure behaviour is the part worth arguing about. Below, a violating instance is quarantined — kept, marked, and excluded from clean output — rather than dropped, because a region that silently vanished cannot be argued about later.

Five constraints do nearly all the work in any schema language anyone has shipped: this key is required, that one is not permitted, this value must come from a set, this list has bounds, and nothing outside the allow-list may appear. Compare the two panes above and the correspondence is exact, which is the point — a validator is a parser for a grammar written as data, and that has been true since 1959.

b09What Actually Changed

Naming the gain honestly is what makes the rest of the argument checkable.

It would be cheap, and wrong, to conclude from all this that nothing has improved. A great deal has, and none of it is the form.

Reach

A relational engine, a compute shader and a cryptographic hash now arrive by pressing a button on a page, with nothing installed and no server. In 1970 each was a procurement.

Scale

The shader computes the same eight-bit rule across hundreds of lanes. Universal approximation says a network can represent any continuous function; only compute decided whether the representation could be found.

Isolation

Workers, sandboxes and the origin model make it safe to run other people's code — the thing the 2000 foreclosure took away, returned under an explicit permission model.

Ergonomics

CRDTs made a 1940 algebra usable by ordinary applications. That is engineering of the highest kind and it is not a new mathematics.

Verifiability

Every claim here can be checked in the reader's own browser, offline, with no account and nothing to trust. That is genuinely new, and it is the reason for building this at all.

The forms

Descent, fixed point, catalogue, lookup, join, chain, grammar, search. Unchanged since somewhere between 1847 and 1979.

The distinction matters commercially rather than only intellectually. If a capability is a competent restatement of a settled result, the question to evaluate is implementation quality, and the pricing should follow that question rather than a novelty claim. Restating a settled form in a new substrate is cheap, and it inherits the guarantees — which is a reason for confidence in delivery, not a criticism of the work.

b10The Concordance, Extended

The first build mapped eight forms across seven domains. Here is the eighth column.

Each row is a form; each entry is the instrument above that instantiates it, and the result it restates. The column added here is current web platform, and it fills without opening a row of its own — which is the same finding the agentic column produced, arrived at from a different direction.

formsettledon this pageadds
Catalogue as relationsCodd 1970SQLite-WASM, sqlite_masterreach
Rule swept over a value spacedecision tables, 1950s–60stemplate × catalogue cursor
Resolve by content, not addressKanerva 1988scaled dot-product attentiondifferentiability
Local rule → global structureWolfram 1985 · Cook 2004WGSL compute shaderscale
Substrate independenceChurch & Turing 1936CPU and GPU outputs compared
Minimax under an adversaryvon Neumann 1928alpha-beta in a workerisolation
Join-semilattice mergeBirkhoff 1940CRDT replicasergonomics
Content addressingMerkle 1979Merkle tree, Web Crypto, CIDubiquity
Grammar as dataBackus 1959 · Naur 1960JSON Schema validator

Three rows in the last column read none. Those are the cases where the modern instance is a straight restatement with no property the original lacked, and marking them honestly is what gives the other six their weight.

b11The Capsule

It installs, runs offline, and carries its own verification.

A service worker caches this page and its modules on first visit, so it runs with the network off and can be installed to a home screen. Combined with the Merkle root in block 7, the artefact carries its own integrity check: a reader can verify the contents without asking anyone, including whoever served it.

That is the one property in the whole build that has no antecedent worth naming — not because the idea is new, but because until recently there was nowhere to put it. An argument that can be checked offline, by its reader, with no account and no authority to appeal to, is a different kind of object from a document about the same subject.

The capsule sidecars are JSON here rather than XML: capsule/spine.json, capsule/ledger.json, capsule/schema.json. Which is block 8's point applied to this build's own packaging — the notation changed, and the constraints did not.