Every real instrument has a small plate riveted to the back: what it is, what it draws, what it can take. This is yours. What the browser will admit about this device, which sensors it will actually let a page read, and how hard the rest of the bench should push before the fluid simulation starts dropping frames. Measured here, kept here, sent nowhere.
01 · the profile
Six instruments on the bench solve something real every frame: a lattice-Boltzmann fluid, a Gray–Scott reactor, a pair of live FFTs off the microphone. They shipped with one set of constants, tuned on a laptop, which is generous to a phone and stingy to a workstation. This is the one dial that changes all of them.
Not a vague quality slider. Each instrument multiplies its own defaults by the profile, so here are the numbers it will use the next time you open one. Reload an instrument that is already open for the change to take.
| Instrument | Knob | Now | Costs |
|---|
02 · the measurement
Auto guesses from core count and memory, which the browser rounds off before it tells you, so the guess is coarse. This runs the actual work instead: the reaction–diffusion kernel from the bench, a canvas fill loop, and a look at how fast frames really arrive. Nothing is uploaded and nothing is compared against anyone else's machine, because there is no one else's machine here.
03 · the machine
Deliberately vague, everywhere. Core counts are real, memory is rounded down to a power of two, and the model name is only offered if you ask for it by name.
The renderer string is one of the most identifying things a browser will hand out unasked, which is why Firefox and Safari file the serial number off it before they do.
None of this was looked up. Your time zone is the clock's own answer, and it is a sharper location hint than most people expect.
Accessibility and appearance preferences are readable by any page without permission, on purpose: a page that cannot see “reduce motion” cannot honor it. The bench honors the reduced-motion one, and lets you override it in section 01.
These are the operating system's own numbers, handed over. Nothing here measured a network by using one.
Only what this site itself is using, and the browser's estimate is padded on purpose so the exact figure cannot be used to identify you.
04 · sensors and interfaces
Presence is checked by looking for the interface. Permission state is asked with the Permissions API, which reports what you have already decided and never raises a prompt on its own. Where a live reading is available and harmless, there is a button, and the button is the only thing that will ever ask you for anything.
| Interface | Present | Permission | Reading |
|---|
| Not available | Why not |
|---|---|
| WiFi survey | A list of nearby access point BSSIDs is a street-address-precision location fingerprint that needs no permission dialog to collect. No browser has ever exposed one. |
| Cell identity | No tower ID, no signal strength, no IMSI, no carrier beyond what the user agent string chooses to say. The Network Information API's “4g” is a bandwidth hint, not a radio measurement. |
| Raw GNSS | Geolocation gives a fix. It does not give pseudoranges, per-satellite carrier-to-noise ratios, or ephemeris. Those are a native Android API with no web equivalent. |
| Installed applications | No enumeration, ever. Even the related-applications check only answers about apps this same site published. |
| Thermals and CPU load | No die temperature, no governor state, no load average. A thermal trace is a side channel, and it also tells an attacker when the machine is idle. |
| Barometer | No web API exposes absolute pressure, on any platform, although the sensor is sitting right there in most phones. Pressure against a public weather reading is an altitude, and altitude inside a building is a floor number. |
| Other tabs and windows | No enumeration of what else is open, in this browser or any other, beyond the pages this same origin opened itself. |
05 · what it can play, and what it can run
Which decoders this device admits to having. On a phone the answer is usually “the ones in the silicon”.
What a page could run here if it wanted to, which is most of the reason the bench needs no libraries.
06 · the fingerprint you did not know you were wearing
There is no API that lists your installed fonts without asking. There does not need to be one. A page can draw a string in a candidate font, draw it again in a known fallback, and compare the two widths; a difference means the font resolved, which means it is installed. Run it against a list and you get a set that is close to unique, because your font set is a history of every application you have ever installed.
This is shown here for exactly one reason: it is the clearest demonstration of why “we do not collect personal data” and “we cannot identify you” are different sentences. Nothing on this page is hashed, stored, or sent. Safari has already started refusing to answer honestly, which is why its list will look implausibly tidy.
07 · take it with you
Everything above, flattened into plain text on your clipboard, for a bug report or a note to yourself. It goes to the clipboard and nowhere else, and what you do with it after that is between you and the paste target.