REC 00:00
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
VIEW
1.00×
pan three-finger pinch
zoom thumb + middle
SNAP · 8 FAMILIES
linearccircleellipsetrianglerectanglepolygonpolyline
SCULPT
RopeRubber
length 100%
keeps its length
ERASER
pinch opening
10 px
eraser size · 10 → 80
SESSION3 strokes
↩Undo
◎Snapshot
●Record
↓Save
◐Hide Canvas
⤢Fullscreen
▦Background
✕Clear
Ctrl/⌘Z
BACKGROUND
Type
CameraFrosted
Solid Color
Gradients
Animated
Grain Texture
Camera
⠿NOTE✕
OffDrawEraseSculptMarkerNeonVelocityRainbowMonoSparks
Neon · picked with a pinch
✓ detected
Step 1 of 6 · Draw
1Draw
2Erase
3Session Menu
4Pan Canvas
5Zoom In / Out
6Star Pointer
SKIP appears after 30 s
HOLD YOUR HAND OPEN
0.0 s
camera samples · a slow camera drops frames
the stroke · latched, continuous
frame edge — tracking holds past it
for lessons · streams · rooms
LANDSCAPE · desks & demos
CAPTURE
SnapshotPNG · full resolution
RecordMP4 · WebM00:00 / 60:00
TIMELAPSE
1×2×3×5×
getairva.com/app.html⊕
Install AirVA?Opens in its own window, like an app.
CancelInstall
layerspressureoffline exports carry a small getairva.com mark — image and video alike

Six brushes

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

drawing.js:38

A real highlighter

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

brush-panel.js:108

48 colours + a wheel

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

drawing.js:12

An infinite canvas

Strokes live in world coordinates — the screen is only a window. Pinch three fingers to pan, thumb + middle to zoom.

viewport.js

Snap to a perfect shape

Draw it rough, hold still, and it becomes exact — eight families, from a line to a rectangle.

shape-fit.js:398

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

Open your pinch wider and the eraser grows with it — then sweeps clean.

main.js:3658

Undo, everywhere

Three fingers open the session menu; Undo takes the last stroke back. Ctrl/Cmd+Z does it from a keyboard.

file-menu.js:16

Twenty-six grounds

Your camera, frosted or clear; 13 solid colours, 6 gradients, 5 that move — and grain over any colour.

file-menu.js:26

A floating notepad

A note that rides over the canvas — six colours, dragged by its grip, resized from its corner.

notepad.js:162

Panels, without touching

Point to aim, pinch to choose — the brush panel blooms from your hand and is operated bare-handed.

brush-panel.js:1221

A full gesture lesson

Six guided steps with the app's own demos, checked live against your camera — a skip appears after 30 s of struggle.

gesture-guide.js:322

Measured on your hand

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

calibration.js:90

Built steady

A pinch latch bridges the frames a slow camera drops; tracking holds with the wrist off-frame.

pinch-latch.js · pinch.js:63

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 · recorder.js:17

Timelapse replay

The whole session, replayed at 2×, 3× or 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 full spec · 25 elements · 5 families · every one traced to its source

The periodic table
of AirVA.

Everything above, plus what a performance cannot show. Hover an element — or find the one we don't ship.

Ink · 8Space · 5Hand · 4Capture · 3Platform · 5
Ink8
01Br

Brushes

drawing.js:38

Marker · Neon · Velocity · Rainbow · Mono · Sparks — six distinct render behaviours

02Hl

Highlighter

brush-panel.js:108

Marker at reduced opacity is a true highlighter; opacity is pinched along a bar

03Co

Colour

drawing.js:12 · brush-panel.js:109

Six 8-colour palettes; full HSV wheel stores any hex

04Sk

Stroke quality

pinch.js:27 · pinch-latch.js

Speed-adaptive smoothing; pinch latch bridges dropped frames on ~7fps devices

05Sn

Shape snap

shape-fit.js:398

Eight families — line, arc, circle, ellipse, triangle, rectangle, polygon, polyline

06Sc

Sculpt

sculpt.js:68

Two modes: rope keeps length and drags like cord; rubber stretches

07Er

Eraser

main.js:3658

Sizes itself from your pinch width, against your own calibration

08Ud

Undo

file-menu.js:16

Session menu by gesture; Ctrl/Cmd+Z by keyboard

Space5
09Cv

Canvas

viewport.js

Infinite world coordinates; the screen is a viewport

10Bg

Backgrounds

file-menu.js:26

26 grounds — camera or frosted camera, 13 solid colours, 6 gradients, 5 animated — plus a grain texture

11Pn

Panels

brush-panel.js:1221 · pinch-latch.js

Brush rack, palettes and menus are spatial panels operated bare-handed — point to aim, pinch to choose

12Np

Notepad

notepad.js:162

Floating overlay, dragged and resized by gesture

13Md

Modes

app.html

Landscape and portrait sessions

Hand4
14Ls

Lessons

gesture-guide.js:322

Six guided steps with picture-in-picture demos; a skip appears after 30s of struggle

15Cb

Calibration

calibration.js:90

One open hand + one pinch; thresholds placed inside your measured gap

16Eg

Edge stability

pinch.js:63

Wrist-extrapolation was built, proven unnecessary live, and deleted — stability stayed

∞Yh

Your hand

not in the code

The only element we do not ship — and the one AirVA reads. Bring it: open the canvas.

Capture3
18St

Stills

recorder.js:242

PNG at full canvas resolution, lossless

19Vd

Video

modal.js:159 · recorder.js:17

MP4 where the browser remuxes, WebM otherwise; recordings to one hour

20Tl

Timelapse

modal.js:9

2× · 3× · 5×

Platform5
21Kb

Shortcuts

app.html

Ctrl/Cmd+Z · E · [ ] · F · Esc

23Pv

Privacy

mediapipe.js

Hand tracking runs on-device; the camera feed is never uploaded

24Fr

Price

verified: no billing code exists

Free — no account, no trial, no paywall

25Su

Support

—

support@getairva.com — a human answers, usually within the day

01Ink
Br

Brushes

same family
traced to
Not on the tablewhat AirVA does not do — said plainly
—Ly

Layers

undiscovered

No layer stack — one canvas; strokes are vector data you can grab and bend.

—Ps

Pressure

undiscovered

No pressure sensitivity — nothing touches anything; width follows hand speed.

—Of

Offline

undiscovered

No offline mode — it loads like a web page; a fresh start needs a connection.

Exports carry a small getairva.com corner mark — image and video alike.