AirMouse
Webcam-based desktop input system for Linux. Real-time hand landmark tracking drives a calibrated absolute pointer, pinch click and drag, right click, and scrolling, plus user-recorded poses and drawn gestures bound to keyboard shortcuts, app commands, or shell commands.
Problem: webcam landmarks are noisy, and pinching moves the same fingertip you point with. A naive mapping jitters, drifts during clicks, and turns clicks into drags. Most of the work is the filtering, gating, and state design that make the pointer predictable and safe to hand control to.
- Platform
- Linux: X11 and Wayland
- Processing
- Local only; no frames saved or uploaded
- Testing
- Closed-loop tests on seeded landmark traces
- Python
- MediaPipe
- OpenCV
- PySide6 / Qt
- NumPy
- evdev / uinput
- pynput
- pytest
Highlights
- Absolute pointer map with a gated low-speed precision clutch in place of velocity gain.
- Click versus drag decided on the middle knuckle, so the pinch itself doesn't move the target.
- Two hands with position-based roles; held modifier poses act as modes.
- Recorded poses and direction-preserving $1 strokes bound to shortcuts or commands.