AirWrite Studio
- 4 Devlogs
- 4 Total hours
A hands-free digital canvas that lets you draw, erase, and annotate using nothing but your hand gestures in front of a webcam.
A hands-free digital canvas that lets you draw, erase, and annotate using nothing but your hand gestures in front of a webcam.
I have been working on this project since two months, now. And finally with the help of the Hack Club Tester Team, I am Finally able to make a final release of this Project. I have also updated the demo link so that you all can now directly download a .exe file without any problem. At first you may see a warning as I have not bought a certificate for the .exe program but you can click on Run Anyway to use it. But if you still want a web one navigate here
AirWrite Studio is a hands-free digital canvas built with Python and PyQt6. It uses webcam-based hand tracking and gesture detection to let users draw, erase, select, and manipulate canvas content without a mouse or stylus.
main.py, UI modules, tracking modules, and canvas rendering.tracking/voice_commander.py module.main.py — Application entry pointconfig.py, utils.py — configuration and helper utilitiescanvas/ — canvas engine, widgets, object rendering, serialization, shape recognition, exporttracking/ — hand tracker, gesture detector, smoother, voice commanderui/ — main window, sidebar, camera widget, toast notifications, stylesassets/ — model files, Vosk speech resources, hand landmarker task filesREADME.md to describe features, installation, and usage..air saves.requirements-dev.txt for development tooling, formatting, and testing.CHANGELOG.md or release notes for future version tracking.venv/ and __pycache__/ ignored in source control, and preserve only source files and assets.AirWrite Studio - Devlog
AirWrite Studio is a hands-free digital canvas built using Python, PyQt6, and MediaPipe. The idea behind the project is to allow users to draw, erase, select, and manipulate objects on a digital canvas entirely through hand gestures detected via a webcam.
The core structure of the application is now functional. The project currently includes the main application window, canvas rendering system, tracking modules, UI components, and asset management. Real-time hand tracking is handled through MediaPipe landmark detection, which is then translated into different canvas actions.
Several gesture interactions are already implemented. Users can draw using a thumb-and-index pinch gesture, erase using a fist gesture, select objects using a pointing gesture, and drag or scale objects using multi-finger gestures. An open palm acts as a neutral or stop state to reduce accidental interactions.
A major focus during development has been making gesture controls feel natural and stable. Small hand movements, lighting changes, and different webcam qualities often create false triggers or unstable tracking, so additional smoothing and gesture filtering logic has been added to improve consistency during real-time interaction.
The canvas system already supports freehand drawing, object movement, shape recognition, and undo/redo architecture. Smart shape snapping can detect rough circles, rectangles, triangles, and straight lines and convert them into cleaner geometry automatically.
Additional drawing tools have also been added, including:
The project also includes the architecture for OCR text conversion and offline voice command support. OCR integration pathways are connected for future editable text workflows, while the voice command system is being developed using Vosk through the tracking/voice_commander.py module.
The repository is currently organized into separate modules for better maintainability:
main.py handles application startupcanvas/ contains rendering, serialization, export, and shape recognition systemstracking/ contains hand tracking, gesture detection, smoothing, and voice command modulesui/ contains interface components such as the sidebar, camera widget, and notificationsassets/ stores speech models and hand tracking resourcesRecent development work focused on stabilizing gesture interactions, improving the canvas workflow, refining the UI layout, and integrating voice command resources. Documentation was also added through the README.md file to explain installation, features, and project usage.
One of the biggest challenges so far has been balancing responsiveness with stability. Gesture systems need to react quickly without triggering unintended actions from natural hand movement. Maintaining smooth performance while simultaneously handling camera input, landmark processing, UI rendering, and drawing operations has also required ongoing optimization.
The next stage of development will focus on:
.air export supportFuture improvements may also include a dedicated requirements-dev.txt, release tracking through a CHANGELOG.md, and additional development tooling for testing and formatting.
The project has now reached a stage where the core systems are functional and connected together. Most upcoming work will focus on refinement, optimization, and improving overall usability.
Which is usually the phase where software projects politely reveal twice as many problems as originally expected.