A hub for webcam-powered gesture tools · MediaPipe · Tone.js

Control your PC
with bare hands

A growing collection of browser-based tools that turn any webcam into a gesture interface. No install, no accounts, everything runs locally.

21-point tracking~10ms inferenceReal-time audioNo cloudHezha Khaledi
21
hand landmarks tracked
~10ms
per-frame inference
8
interactive tools
0
cloud dependencies

Why AirTouch

Engineered for precision

Every detail — from depth normalisation to hysteresis bands — is tuned so the cursor feels like an extension of your hand, not a novelty toy.

Anti-jitter EMA smoothing

An exponential moving average filters out hand tremors and frame-drop stutter, so the cursor glides fluidly instead of vibrating.

True mouse-button clicks

Tuck your thumb to press, release to lift. Hold to drag, double-tap to double-click — it behaves exactly like a physical button.

Proximity volume control

Open palm and push toward the camera to raise volume, pull back to lower. Depth is inferred from hand-size changes — no extra sensors.

21-point hand skeleton

Every joint is tracked and rendered live. The index-fingertip drives the cursor; the thumb-to-index-MCP distance drives clicks.

Depth-invariant thresholds

All pinch distances are normalised by the wrist-to-MCP reference size, so thresholds stay correct no matter how close or far your hand is.

Zero cooldowns

Actions respond the instant your hand forms a gesture. No artificial delays — just real-time, level-triggered control.

Single-process & lightweight

One Python process, one MediaPipe model, one OpenCV window. Runs comfortably on a laptop CPU with the XNNPACK delegate.

Active bounding box

Only the centre of the camera frame maps to the screen, so you never have to stretch your arm to reach the display edges.

Failsafe & private

PyAutoGUI's corner-abort is always one move away, and every frame stays on your machine — nothing is uploaded anywhere.

The gesture set

Four gestures. Full control.

A deliberately minimal vocabulary so every action is unmistakable. No combos to memorise, no cooldowns to fight.

01

Move cursor

Index finger only

Point with your index finger. The fingertip drives the cursor; an EMA filter smooths out jitter.

02

Left click / drag

Thumb tip → index knuckle

Tuck your thumb to the base of your index finger. Hold to keep the button down and drag; release to click. Double-tap = double-click.

03

Right click

Thumb + middle pinch

Pinch your thumb and middle fingertips together while keeping the index extended. The cursor freezes during the click so it lands exactly where you aimed.

04

Volume up / down

Open palm — push / pull

Open your hand fully, then push it toward the camera to raise the volume or pull it back to lower. Each nudge fires multiple key presses for fast changes.

The camera feed is mirrored, so left and right feel natural — just like a selfie.

Under the hood

From pixels to pointer

Four stages, one process, zero external services. The entire pipeline runs on your machine in a single Python process.

01

Capture

OpenCV grabs each frame from your webcam and flips it horizontally for a natural selfie view.

02

Detect

MediaPipe's HandLandmarker infers all 21 hand joints in ~10 ms per frame on a laptop CPU.

03

Map & smooth

The index fingertip is mapped through a centre bounding box to the screen, then EMA-smoothed.

04

Act

A level-triggered state machine fires mouseDown / mouseUp / scroll / volume through PyAutoGUI.

Built with

Python 3.10+
Runtime
OpenCV
Camera + UI
MediaPipe
Hand tracking
PyAutoGUI
System control
NumPy
Math + smoothing
pycaw
Windows volume

Where to take it next

Make it your own

AirTouch's engine is a solid foundation. Here are eight directions to expand it into something useful, fun, or genuinely life-changing.

High impact

Accessibility first

AirTouch is a lifeline for users with motor impairments who struggle with a physical mouse. Package it as a always-on system tray app with profile switching.

Fun

Gesture gaming

Map gestures to game inputs — swipe to cast spells, pinch to shoot, open palm to block. Build a lightweight virtual-gamepad layer on top of the engine.

Productivity

Presentation pilot

A kiosk mode for lecturers: pinch to advance slides, open palm to show a laser pointer, swipe to go back. No clicker hardware needed.

Power user

Custom macro studio

A visual editor where users record their own gestures and bind them to any keystroke, app launch, or PowerShell script. Share profiles as JSON.

Ambitious

Air keyboard

Project a virtual QWERTY onto the camera view; tap keys by pinching over them. Fingertip-to-key distance does the hit-testing.

Hardware

Phone-as-camera

Stream your phone's camera to the Python backend over WebSocket, so a laptop without a webcam can still use AirTouch.

Research

Voice + gesture fusion

Combine AirTouch with a speech engine: say 'scroll' while swiping, or 'click there' while pointing. Multimodal commands are far more expressive.

IoT

Smart-home air remote

Pinch to dim the lights, rotate your wrist to change the thermostat. Bridge AirTouch to Home Assistant or MQTT.