REC 00:00
MarkerNeonVelocity RainbowMonoSparks
PNG · full resMP4 / WebMtimelapse 1×
BRUSHES
Marker
Neon
Velocity
Rainbow
Mono
Sparks
SIZE
12
OPACITY
100%
grab the eye.keep it moving.mark what matters.
PALETTES
Neon
Sunset
Ocean
Y2K
Monochrome
Forest
ANY HEX
Ctrl/⌘ ZE[]FEsc
step 3 of 6 · open the tools
Install AirVA
layerspressureoffline exports carry a small getairva.com mark — image and video alike
getairva.com

Six brushes

Marker, Neon, Velocity, Rainbow, Mono, Sparks — six behaviours, not six colours of one pen.

drawing.js:35

A real highlighter

Drop the Marker's opacity and it becomes a highlighter — for notes, screenshots, lessons.

brush-panel.js:84

48 colours + a wheel

Six palettes that agree with each other; an HSV wheel behind them stores any hex.

drawing.js:9

An infinite canvas

Strokes live in world coordinates — pan with three fingers, zoom with thumb + middle.

viewport.js

Snap to a perfect shape

Draw rough, hold, and it becomes real — seven families, line to polygon.

shape-fit.js

Sculpt — rope & rubber

Grab a finished line and bend it. Rope keeps its length; rubber stretches.

sculpt.js:68

An eraser that fits your hand

It sizes itself from how wide you open your pinch — then sweeps clean.

main.js:3245

Undo, everywhere

The session menu takes it back by gesture — or Ctrl/Cmd+Z, E, brackets, F, Esc by key.

file-menu.js:16

Thirteen grounds

Live camera, frosted blur, six gradients, five animated — the ground moves while you draw.

background.js

A floating notepad

Sketchy, draggable, resized by gesture — notes riding over the canvas.

notepad.js

Panels, without touching

Point to aim, pinch to choose — every dock and menu is operated bare-handed.

brush-panel.js · pinch-latch.js

A full gesture lesson

Six guided steps with picture-in-picture demos, checked live against your camera.

gesture-guide.js

Measured on your hand

One open hand, one pinch — every threshold placed inside your own measured gap.

calibration.js

Built steady

A pinch latch bridges dropped frames at 7fps; tracking holds with the wrist off-frame.

pinch-latch.js · pinch.js:55

Air writing

Words written in the air — for teaching, streams and rooms.

/air-writing/

Landscape & portrait

A wide canvas for desks and demos; a tall one for phones and reels.

app.html

Capture

Full-resolution PNG stills; MP4 or WebM video, up to an hour.

recorder.js:242

Timelapse replay

The whole session, replayed at 2×, 3×, 5× — the format process videos are made of.

modal.js:9

Keep it on your device

One tap installs it from the browser — no store, no admin password.

manifest.webmanifest

What it does not do

No layers · no pressure · no offline · exports carry a small corner mark.

the honest half

The full spec · every claim read from the code

Every feature,performed.

This is a live AirVA session. Scroll, and the session plays — scroll back and it runs in reverse. Twenty features, every one implemented in the file it cites.

The spec sheet.

Everything above, plus what a performance cannot show — each line traced to source.

Brushes
Marker · Neon · Velocity · Rainbow · Mono · Sparks — six distinct render behaviours
drawing.js:35
Highlighter
Marker at reduced opacity is a true highlighter; opacity is pinched along a bar
brush-panel.js:84
Colour
Six 8-colour palettes; full HSV wheel stores any hex
drawing.js:9 · brush-panel.js:102
Stroke quality
Speed-adaptive smoothing; pinch latch bridges dropped frames on ~7fps devices
pinch.js:27 · pinch-latch.js
Shape snap
Seven families — line, circle, ellipse, arc, triangle, polygon, polyline
shape-fit.js
Sculpt
Two modes: rope keeps length and drags like cord; rubber stretches
sculpt.js:68
Eraser
Sizes itself from your pinch width, against your own calibration
main.js:3245
Undo
Session menu by gesture; Ctrl/Cmd+Z by keyboard
file-menu.js:16
Canvas
Infinite world coordinates; the screen is a viewport
viewport.js
Backgrounds
Camera · frosted blur · solid · six gradients · five animated
background.js
Panels
Brush rack, palettes and menus are spatial panels operated bare-handed — point to aim, pinch to choose
brush-panel.js · pinch-latch.js
Notepad
Floating overlay, dragged and resized by gesture
notepad.js
Stills
PNG at full canvas resolution, lossless
recorder.js:242
Video
MP4 where the browser remuxes, WebM otherwise; recordings to one hour
modal.js:220 · recorder.js:17
Timelapse
2× · 3× · 5×
modal.js:9
Lessons
Six guided steps with picture-in-picture demos; a skip appears after 30s of struggle
gesture-guide.js
Calibration
One open hand + one pinch; thresholds placed inside your measured gap
calibration.js
Edge stability
Wrist-extrapolation was built, proven unnecessary live, and deleted — stability stayed
pinch.js:55
Shortcuts
Ctrl/Cmd+Z · E · [ ] · F · Esc
app.html
Install
One tap from the browser; no store, no admin rights — how, for every device →
manifest.webmanifest
Privacy
Hand tracking runs on-device; the camera feed is never uploaded
mediapipe.js
Modes
Landscape and portrait sessions
app.html
Air writing
Words in the air for lessons and streams — the teaching guide →
/air-writing/
Price
Free — no account, no trial, no paywall
verified: no billing code exists
Support
support@getairva.com — a human answers, usually within the day

Not in the spec

No layers. No pressure sensitivity — width follows hand speed. No offline mode. Exports carry a small getairva.com corner mark, image and video alike.