Computer vision · Python Open source

Eye-Control Mouse

کنترل موس با چشم

An open-source computer-vision project that moves the mouse cursor using only your eyes and an ordinary webcam. I built it for the Omid event, where it won 2nd place, and I keep developing it.

Webcam frames are processed on their own thread: MediaPipe Face Landmarker finds the face, eye and iris landmarks (478 points), each iris position relative to its own eye corners becomes the gaze feature, and a calibrated mapping turns it into screen coordinates.

A fullscreen 9-point calibration shows a gaze-stability indicator and supports affine, polynomial and RBF mappings. Cursor motion is smoothed with a Kalman or EWMA filter, and clicks come from blinks, dwell or left/right winks. A system-wide emergency-stop hotkey works in any application, and calibration and settings persist between sessions.

The UI is PyQt6 and runs on Windows, macOS and Linux. All video is processed locally; no frame is stored or sent anywhere. The code is tested with pytest on GitHub Actions. Its main use is accessibility for people who cannot use a regular mouse.

Key features

  • 2nd place at the Omid event
  • Face, eye and iris tracking with MediaPipe Face Landmarker
  • 9-point calibration with affine, polynomial and RBF mapping
  • Kalman or EWMA cursor smoothing
  • Clicks by blink, dwell or left/right wink
  • System-wide emergency-stop hotkey
  • Fully local processing; no frame is stored or sent
  • PyQt6 UI for Windows, macOS and Linux with automated tests

Technologies

PythonMediaPipeOpenCVNumPySciPyPyQt6PyAutoGUIpynputpytestGitHub Actions

My role

Developer — computer vision

This project is open source; the code is available on GitHub.