AIR·HAND

gesture bridge // on-device hand tracking via LiteRT.js — no server, no upload, no mouse
BACKEND
MODEL hand_landmark_full · 5.4 MB
INFERENCE — ms
🔒demo.airhand.dev
100%
The Signal Post — Interfaces

Your Hands Are the New Mouse

Thirty years of pointing devices, and it turns out the best one was attached to your wrist the whole time.

Every science-fiction film since 2002 has promised the same thing: a person standing in front of a screen, conducting information with bare hands. What the films never showed was the server farm those gestures were supposedly streamed to. The real unlock isn't the gesture — it's running the perception locally, in the browser tab itself, fast enough that the interface feels wired to your nervous system.

That's what this page demonstrates. A 5.4-megabyte neural network watches the webcam and regresses 21 skeletal landmarks per frame. No video leaves this machine. Swipe left in the air and this fake browser goes back a page. Hold up a flat palm and the video on the next page pauses. Pinch your fingers and the page zooms under your grip.

Try it now: swipe your open hand left to go back to the home page, or follow the links below.

airhand.dev

A tiny web to control with your hands.

This window is a sandbox browser with its own history, its own pages, and its own video player. Everything in it responds to the gestures listed below the fold.

1. Swipe. Move your open hand quickly left or right in front of the camera. Left goes back through history, right goes forward — exactly like the buttons in the toolbar above.

2. Hold a flat palm. On the video page, raise a flat hand and hold it still for a moment, like you're telling the page to stop. The video pauses. Do it again to resume.

3. Pinch. Touch your thumb and index finger together, then raise or lower your hand while pinched. The page zooms in and out under your fingers. Release to lock the zoom.

TubeStream

Big Buck Bunny — The Flat-Palm Test

⏸ PAUSED BY GESTURE

This is a standard HTML5 player standing in for YouTube. Raise a flat, open palm toward the camera and hold it steady — the telemetry panel will show a ring filling up. When it completes, the video toggles between play and pause. It's the universal "stop" sign, understood by crossing guards and now by your browser.

airhand.dev — Specimen

The Pinch-Zoom Specimen Sheet

A page designed to be squinted at — unless you pinch.

21 landmarks. 63 floats. One tensor per frame. wrist · thumb ×4 · index ×4 middle ×4 · ring ×4 · pinky ×4

Pinch your thumb and index finger together, then move your hand up to zoom in and down to zoom out. The zoom readout in the toolbar tracks your grip live.

Fine print, for testing: the hand landmark model regresses coordinates in the 224×224 crop space of its input tensor, normalized here against the region-of-interest box that tracks your palm between frames. The pipeline bootstraps on a full-frame scan, then follows the previous frame's bounding box expanded 2.4×, which is the same trick MediaPipe's tracking graph uses to skip re-detection. If you can read this without zooming, you are sitting far too close to your monitor.

OPTICAL FEED — MIRRORED
AWAITING OPTICS
· CAMERA OFFLINE ·
TELEMETRY
Hand presence
0.00
Pinch distance
Palm velocity ·x
0.00 fw/s
Fingers extended
👁
STANDBY
enable the camera to begin
EVENT LOG
NO CAMERA? SIMULATE:
👈

Swipe — Back / Fwd

Flick an open hand left to go back, right to go forward. Displacement > 18% of frame width inside 300 ms.

Flat palm — Pause

Hold a still, open palm for 600 ms to toggle play / pause on the current page's video. The ring shows your hold.

🤏

Pinch — Zoom

Pinch thumb + index, then move your hand up / down to zoom the page between 50% and 250%.

🔒

On-device only

Frames go webcam → tensor → LiteRT.js in this tab. Nothing is uploaded, recorded, or sent anywhere. Close the tab, it's gone.

WEBCAM 640×480 ROI CROP → 224×224×3 f32 LiteRT.js · hand_landmark_full.tflite · ? 21 LANDMARKS + presence GESTURE FSM BROWSER ACTION
SWIPE ◀ BACK
/// DEMO — LITERT.JS WEB AI INFERENCE

AIR·HAND

Control a browser with your bare hands. A 5.4 MB neural network tracks 21 hand landmarks per frame — swipe to navigate, flat palm to pause video, pinch to zoom.

PRIVACY: inference runs 100% on this device inside your browser via LiteRT.js (WebGPU / WASM). No video frame ever leaves this machine.

standby — camera permission will be requested