PhysWallThe Physical-Logic Gateway

Browser extension

A physics engine, and a verification tool enforced on top of it. PhysWall inverts a closed, published, non-linear physical law at a single measurement point — and refuses when the inverse is not unique. Seven laws, one engine, and the same refusal in all of them.

A small extension that underlines the numbers nothing has checked, in whichever model you already use. It reads the page, and that is all it reads.

It reduces hallucinations wherever a number is stated. What it measures is the accuracy of the answer — not how satisfying it is.

It asks whether a number is possible, not whether somebody wrote it down. That is the part we could not find anywhere else. Other checkers retrieve a source and see if it agrees; this one runs the law. A source can be wrong, and a true statement can have no source.

No network, no model, no account. Other tools that mark AI answers work by sending each claim to a server or to a second language model. This one carries the laws with it: twenty-one of its twenty-five domains run inside the page, and the whole thing is a handful of files you can read.

Download — under 20 KB

Free. No account, and nothing leaves your browser.

Version 0.1.0 · 35,852 bytes · SHA-256 609ac00fa4b996ea878230734f60c9bececd6e6bb1a181cf7bc895ba60f4619c
Check it before you unzip: shasum -a 256 physwall-extension.zip on macOS or Linux, certutil -hashfile physwall-extension.zip SHA256 on Windows. A download outside the Chrome store carries no signature, so this is the only way to know the file is the one we published.

What it does

Everybody knows a model can state a number that is simply wrong — the polite word is hallucination, and no amount of asking it to be careful fixes it. What is missing is a way to fact check an AI answer without leaving the conversation to go and look things up.

This does that for one narrow thing, and it is worth being exact about which: numerical hallucinations. Numbers that carry a physical or statistical claim. It reads the reply on the page, finds a figure with a unit and a word it recognises, and underlines it. Click, and it tells you either what is missing or that the number is above a published limit.

A model's answer
In steady wind the rotor captures about 65% of the kinetic energy passing through it, and the newer blade designs do better still.
NOT ACHIEVABLE

65% is above the 59.3% limit. No turbine can take more than that from the air passing its rotor — the air has to keep moving to get out of the way.

Betz 1919. Checked in your browser.

One underline. The rest of the reply is untouched, including the numbers inside code blocks.

It takes two words to mark anything: the field and the quantity. “A wind turbine gearbox runs at 97% efficiency” has the first and not the second, and is true — Betz bounds the rotor, not the gearbox. So it is left alone, along with inverters, uptime and fill factors. The cost is that some true cases are missed too.

Installing it

It runs inside ChatGPT, Claude and Gemini, and installs in Chrome, Edge, Brave and anything else built on Chromium. It is not in the Chrome Web Store yet, so it loads from a folder — which takes about a minute.

1
Unzip it

Download above, then unzip somewhere you will not delete — Chrome reads the folder every time it starts.

physwall-extension.zip → unzip it
2
Open the extensions page

Type chrome://extensions into the address bar. It will not come up in a search.

chrome://extensionstype it in the address bar(not a search — the address bar)
3
Turn on Developer mode

A switch at the top right of that page. It only means “allow an extension that did not come from the store”.

chrome://extensionsExtensionsDeveloper modethe switch is at the TOP RIGHT of that page
4
Load unpacked

A button that appears once the switch is on. Pick the folder you unzipped.

chrome://extensionsLoad unpackedPackthen choose the folder you unzipped — the FOLDER,not the zip and not a file inside it

Firefox: about:debugging → This Firefox → Load Temporary Add-on → pick manifest.json.

It asks for no permissions at all. Not one — the manifest lists four sites it may run on and an empty permission list, because static content scripts need none. Most extensions ask for more than they use, and that is the usual reason one gets rejected from the store.

Developer mode sounds alarming and is not. It is what Chrome calls loading an extension that did not come from its store, and you can read every one of the six files in a text editor — the whole thing is under 20 KB.

What it refuses to do

Most of what it says checks nothing at all, and that is the design rather than a shortfall:

Where the answers come from

Twenty-five domains, and in each one the law was published by somebody else and is named when you click: Betz 1919, Carnot 1824, Fano 1950, Manning 1889, Landauer 1961, Shockley & Queisser 1961 (at 33.16%, from Rühle 2016 — the widely quoted 33.7% is an older figure at a different band gap), Wilson 1927.

Not all of it is physics. A percentage with no count behind it is a claim you can check with no physical threshold anywhere in sight — that one is Wilson 1927, and it is statistics. What the domains share is not a subject. It is that each rests on a closed published law: a formula somebody wrote down, that can be run backwards, and that says where it stops applying.

Twenty-one of them carry their arithmetic with them, so clicking a mark opens a small form: fill in what was missing and the answer appears there, with no network and no account. Four need the engine — and offer a button that opens it in a new tab — because they rest on a coefficient we fitted, and those say so rather than pretending to have checked.

Where it stops. It only recognises phrasings in its table, so “how much power comes back” is return loss and will be missed. It reads English only. It cannot see a claim spread across a paragraph. Every one of those is a miss, and none of them produces a wrong mark — which is the trade it was built to make.
Download — under 20 KB

If you would rather not install anything

The same checks run as ordinary pages. Three checks on a number takes a percentage and a count and tells you whether it settles anything; how close an engine is to its limit does the heat-engine one; and the rest are there too. The extension is those same laws, moved to where you already are.

There are others, and here is the difference

Several extensions mark claims in an AI's reply, and one of them is a funded company making the same argument we do — that asking a second model to judge the first reproduces the failure it was meant to catch. They are right about that.

What we looked for and did not find: a checker that asks whether a number is POSSIBLE rather than whether somebody has written it down. Every one we could examine works by retrieval — it sends the claim to a server or to a second model, and looks for a source that agrees.

Those are different questions, and the difference matters when the sources disagree. Wikipedia carries two figures for the Shockley-Queisser limit in adjacent sentences, 33.16% and 33.7%. A source-based checker will confirm whichever it reaches first. The law confirms one of them.

Which also means: a source can be wrong and get approved, and a true statement with no source can get refused. Neither happens when the check is arithmetic against a published law.

Retrieval also means your conversation leaves your machine. One of them says so plainly: “no automated checker is perfect — treat the result as a prioritised list of what to double-check, not a final ruling.” That sentence is honest, and it is forced by the method.

This one has no second model to ask. It carries the laws, and where a law does not settle something it says so instead of estimating. Nothing is sent, so nothing can be logged — which matters more since Microsoft reported in March 2026 on AI browser extensions harvesting chat history, with telemetry re-enabled by updates after users had declined it.

What this is not

It is not a fact checker. It says nothing about whether a claim is true in general — only whether a number can be checked against a published law, and what would be needed to do it.

And it does nothing about a model agreeing with you. What it does instead is remove its own reason to: there is nothing in it that wants you pleased, because the only thing it weighs is whether a number holds. You can read all of that in under twenty kilobytes of plain files.

“You are absolutely right” has no number in it, so there is nothing here to mark. Sycophancy is a real problem and a different one, and anything claiming to solve both with one mechanism is worth doubting.

What it mostly does is teach you to ask better. It does not make the model cleverer. It shows you which of its numbers carry a claim and what each one is missing — and after a few of "a return loss with no bandwidth is true at one frequency", you start giving the bandwidth. The better answer then comes from the model, not from us.

Beta. Tested against saved pages and not yet against every model in the wild. If it marks something it should not, that is a fault and worth telling us about.