First Version - v1.0
Eye-tracking drawing application that allows people with motor disabilities to draw and control computers using eye movements.
Приложение с eye-tracking, которое позволяет людям с ограниченными двигательными функциями рисовать и управлять компьютером с помощью движений глаз.
- 🥈 2nd place WRO 2026 Regional
- Assistive technology for people with motor disabilities / Assistive technology для людей с моторными нарушениями
- Affordable alternative to expensive commercial solutions / Доступная альтернатива дорогим коммерческим решениям
- Eye Tracking - Real-time eye movement detection / Отслеживание движений глаз в реальном времени
- Calibration - Precise eye-to-screen coordinate mapping (9-point calibration) / Точное сопоставление координат глаз с экраном (9-точечная калибровка)
- Drawing - Gaze-controlled cursor, dwell-time based drawing / Управление курсором взглядом, рисование с помощью "dwell time" (задержки взгляда)
- Intuitive Interface - No complex setup, works out of the box / Никаких сложных настроек, все работает из коробки
# Clone the repository / Клонировать репозиторий
git clone https://github.com/ulacoder/veya-first-version.git
cd veya-first-version
# Install dependencies / Установить зависимости
pip install -r requirements.txtpython main.pyTAB- Switch between calibration and drawing / Переключение между калибровкой и рисованиемR- Reset calibration / Сброс калибровкиP- Pause/unpause / Пауза/продолжитьE- Toggle eye preview / Показать/скрыть превью камерыESC- Exit / Выход
U- Undo last stroke / Отменить последний штрихC- Clear canvas / Очистить холстG- Toggle grid / Показать/скрыть сеткуS- Save drawing / Сохранить рисунок
- Look at the point where you want to start drawing / Смотрите на точку где хотите начать рисовать
- Hold your gaze for 1.5 seconds (green indicator will appear) / Задержите взгляд на 1.5 секунды (появится зеленый индикатор)
- Drawing will begin - move your gaze / Начнется рисование - двигайте взглядом
- Hold your gaze again to stop drawing / Задержите взгляд снова чтобы остановить рисование
veya/
├── eye_tracker.py # Eye tracking with MediaPipe
├── calibration_manager.py # Coordinate calibration
├── drawing_canvas.py # Drawing canvas
├── main.py # Main application
└── requirements.txt # Dependencies
- Uses MediaPipe Face Mesh for eye detection / Использует MediaPipe Face Mesh для детекции глаз
- Tracks iris for precise gaze direction / Отслеживает iris (радужку) для точного определения направления взгляда
- Coordinate smoothing for stable cursor / Сглаживание координат для стабильного курсора
- 9-point calibration for accurate mapping / 9-точечная калибровка для точного маппинга
- Homography transform for perspective correction / Homography transform для perspective correction
- Automatic transition to drawing after calibration / Автоматический переход к рисованию после калибровки
- Dwell-based interaction (gaze hold for activation) / Dwell-based interaction (задержка взгляда для активации)
- Smooth drawing with adjustable thickness / Сглаженное рисование с настраиваемой толщиной
- Stroke undo, clear, and save / Отмена штрихов, очистка, сохранение
- Python 3.8+
- OpenCV - Video processing / Обработка видео
- MediaPipe - Face and eye detection / Детекция лица и глаз
- Pygame - GUI and drawing / GUI и рисование
- NumPy/SciPy - Mathematical transformations / Математические трансформации
The original EyeWriter project was created in C++ using OpenFrameworks. This version is a complete port to Python with modern computer vision libraries.
Оригинальный проект EyeWriter был создан на C++ с использованием OpenFrameworks. Данная версия - полный порт на Python с современными computer vision библиотеками.
- ✅ C++/OpenFrameworks → Python/MediaPipe
- ✅ Manual pupil/glint detection → MediaPipe iris tracking / Ручная детекция pupil/glint → MediaPipe iris tracking
- ✅ Complex setup → Works out of the box / Сложная настройка → работает из коробки
- ✅ Requires IR camera → Works with regular webcam / Требует IR камеру → работает с обычной веб-камерой
- Assistive Technology - For people with cerebral palsy, ALS, spinal cord injuries / Для людей с ДЦП, ALS, травмами спинного мозга
- Education - Computer skills training / Обучение работе с компьютером
- Creativity - Creating digital art hands-free / Создание цифрового искусства без рук
- Communication - Text input, application control / Печать текста, управление приложениями
- FPS: 30 (adjustable / настраивается)
- Latency: ~50ms from eye movement to cursor / ~50ms от движения глаз до курсора
- Accuracy: Depends on calibration, typically ±20-30px / Зависит от калибровки, обычно ±20-30px
Open source project. Pull requests welcome! / Проект open source. Pull requests приветствуются!
- Text typing mode (virtual keyboard) / Режим печати текста (виртуальная клавиатура)
- Enhanced calibration (more points, automatic) / Улучшенная калибровка (больше точек, автоматическая)
- Multiple drawing modes (lines, shapes, fill) / Поддержка разных drawing modes (линии, фигуры, заливка)
- Export to different formats (SVG, PDF) / Экспорт в разные форматы (SVG, PDF)
- Raspberry Pi version for standalone operation / Raspberry Pi версия для автономной работы
Next evolution: From assistive drawing to medical screening
Следующая эволюция проекта — трансформация в AI-powered smart glasses для диагностики глазных заболеваний:
- AI Disease Detection - Detect cataracts, conjunctivitis, pterygium using computer vision / Диагностика катаракты, конъюнктивита, птеригиума с помощью компьютерного зрения
- Raspberry Pi-based - Portable, wearable form factor with edge AI / Портативный формат в виде очков с edge AI
- Accessible Screening - Bring eye health screening to underserved communities in Central Asia / Доступный скрининг для удаленных регионов Центральной Азии
- Affordable Healthcare - <$350 device vs $10,000+ professional equipment / <$350 устройство vs $10,000+ профессиональное оборудование
Status: Hardware design & AI model training in progress (NASA SEES x Stardance Summer 2026)
Статус: Разработка железа и обучение AI модели в процессе (NASA SEES x Stardance лето 2026)
Open Source - free to use for helping people / Open Source - используйте свободно для помощи людям.
Nurtas Ulagat
Contact: nurtasulagat@gmail.com
"Technology should be accessible to everyone, regardless of physical abilities." "Технология должна быть доступна всем, независимо от физических возможностей."