The instrument case · the phone is the sensor

Six instruments.
No wire at all.

A spirit level, a compass, a seismograph drum, a sound meter, a tap timer and a frame counter — each one a face drawn on the page, each one reading the device in your hand. There is no feed behind any of them: the accelerometer, the magnetometer and the microphone your phone already carries are the entire apparatus.

Every instrument arms on its own button, because that is how the permissions work and how they should work — the page asks for nothing on load, and a denial is reported as a denial. Every reading is taken, drawn, and thrown away. On a desk-bound machine with no sensors, each face says so plainly instead of pretending.

6 instruments · 0 feeds · 0 readings recorded · armed by your hand only

The case

Arm one. Read it. Put it back.

Nothing below asks for a permission until you press its button. iOS in particular releases motion and orientation only on a press — so each instrument carries its own switch, remembers that you armed it before, and still asks the browser fresh every visit.

The level

not armed

A spirit level off the orientation sensor: the vial reads roll, the bullseye reads both axes at once, and the figures are degrees.

Pitch
Roll
Off level

Reads DeviceOrientation. Lay the phone flat for the bullseye, on its long edge for the vial.

The compass

not armed

A drawn rose. Where the device offers a true compass heading the needle means north; where it offers only a relative angle, the face says so rather than letting you walk off by it.

Heading
Reference

Hold the phone flat. A reading marked relative is measured from wherever the sensor woke up, not from north.

The drum

not armed

A strip-chart seismograph: three traces — the accelerometer’s x, y and z — inked right to left across the paper as the readings arrive, with the strongest jolt held on the peak dial.

Now
Peak held
Sample gap

Reads DeviceMotion. Set the phone on a table and knock the table; the knock is on the strip before your hand is back.

The meter

not armed

A needle VU off the microphone. The scale is dBFS — decibels below the microphone’s own ceiling — because without a calibrated reference this page cannot honestly print dB SPL, and it will not pretend to.

Level
Peak held

Uncalibrated and relative: good for “louder than a moment ago”, useless in a lawsuit. Audio is analysed and discarded on the spot.

The tap timer

ready — no permission needed

Tap a tempo; the dial reads it back. The interesting figure is not the tempo but the steadiness — the spread of your intervals, in milliseconds. Fall silent for three seconds and the run starts over.

Tempo
Steadiness σ
Taps0

Works on anything with a button — this one needs no phone and asks for nothing.

The frame counter

stopped

An instrument about the device itself: how often the browser actually paints, measured frame by frame against the clock — the rate, the jitter, and the worst frame of the last few seconds.

Rate
Jitter σ
Worst frame

Runs only while you watch — a hidden tab is throttled by design, and counting it would be measuring the throttle.

About

The case, opened.

Everything here runs on the standard sensor surfaces a browser already exposes: DeviceOrientation for the level and the compass, DeviceMotion for the drum, getUserMedia for the meter, and the page’s own clock for the tap timer and the frame counter. There is no server component, no library, and no feed — the drawing is the canvas element and arithmetic.

Permissions are taken seriously because the platforms take them seriously. iOS releases motion and orientation only from a user gesture, so every instrument arms on its own button and the page never asks on load. If the browser says no, the instrument says denied and stops there. If the machine simply has no such sensor — most desks — the face stays drawn and says this bench needs a phone, which is the truth.

Nothing is recorded and nothing is sent. Sensor readings and microphone audio are processed in this page, drawn, and discarded; no reading ever leaves the device. The one thing stored is a note in this browser of which instruments you have armed before — and even then, the browser is asked afresh every time. The site’s ordinary visit counter counts the visit; it never sees a reading. And the limits are printed on the faces: the meter is uncalibrated and relative, a compass without an absolute reference says relative, and what a sensor does not report, no dial here invents.