Project Info
Inspiration
Klaw was inspired by the need for more intuitive, hands-free ways to interact with technology, especially for individuals with mobility or speech impairments. As technology becomes increasingly integrated into daily life, traditional input methods like keyboards and mice are sometimes insufficient for the nuanced interactions that modern applications demand. We wanted to create an accessibility tool that bridges the gap between users and their devices, allowing the former to take a more relaxed, agile approach towards making the most of their laptops.
What it does
Klaw enables seamless laptop control through hand gestures, facial expressions, and voice recognition, allowing users to navigate without a keyboard or mouse. It specifically supports features like gesture-based clicking, head-tilt volume control, and real-time speech-to-text captions, making technology more accessible and intuitive for users with mobility and speech impairments. Hand Gesture Control: Move your cursor by pointing with your index finger, perform clicks by pinching your fingers together, and navigate with swipe gestures. This mechanism creates a touch-free alternative to traditional input methods and ensures smooth and responsive tracking, allowing users to interact naturally without additional hardware. Hand Gesture Control: Move your cursor by pointing with your index finger, perform clicks by pinching your fingers together, and navigate with swipe gestures. This mechanism creates a touch-free alternative to traditional input methods and ensures smooth and responsive tracking, allowing users to interact naturally without additional hardware. Facial Expression Detection: Tilt your head left or right to adjust volume, raise your eyebrows to trigger actions, or smile to confirm selections. Facial Expression Detection: Tilt your head left or right to adjust volume, raise your eyebrows to trigger actions, or smile to confirm selections. Real-Time Speech-to-Text: Converts spoken words into live subtitles, aiding users with speech impairments or those in environments where typing is difficult. This feature opens the door for more effective communication and accessibility in various settings, from workspaces to online education platforms. Real-Time Speech-to-Text: Converts spoken words into live subtitles, aiding users with speech impairments or those in environments where typing is difficult. This feature opens the door for more effective communication and accessibility in various settings, from workspaces to online education platforms. Accessible Interaction: Klaw eliminates the need for a physical mouse or keyboard, making laptops more accessible for users with limited mobility. Accessible Interaction: Klaw eliminates the need for a physical mouse or keyboard, making laptops more accessible for users with limited mobility.
How we built it
We used Google MediaPipe for hand and face tracking, OpenCV for image processing, SpeechRecognition for real-time subtitles, Numpy for the joint angle calculations, Pyautogui for the scrolling behavior, and Pygame to render the test interface. The project was written in Python and with the assistance of related libraries. The core of gesture tracking relies on MediaPipe Hands, which detects hand landmarks and extracts the index finger and thumb positions to enable cursor movement and gesture-based clicking. The program continuously reads frames from the webcam using OpenCV, processes them, and updates the cursor position via PyAutoGUI. Pinch detection, which is used for clicking, is implemented by calculating the Euclidean distance between the index fingertip and thumb tip (mostly by way of Numpy functions). For facial expression-based controls, MediaPipe Face Mesh extracts key facial landmarks to detect movements such as head tilting. The head tilt feature actually compares the vertical positions of the left and right ear landmarks to determine the direction of tilt, which then triggers volume up or down commands. Speech recognition runs in a separate thread to prevent lag, utilizing the SpeechRecognition library to capture microphone input and convert spoken words into real-time text subtitles. This text is then rendered using Pygame, ensuring that subtitles update dynamically on-screen while other interactions remain smooth. Also, to prevent unintended rapid gestures or speech inputs, we implemented threshold-based debouncing for clicking and volume control, as well as speech recognition cooldown timers to avoid excessive updates and oversensitive cursor activity.
Challenges we ran into
Fine-tuning gesture detection to avoid false positives. Fine-tuning gesture detection to avoid false positives. Handling speech recognition delays and improving accuracy in noisy environments. Handling speech recognition delays and improving accuracy in noisy environments. Preventing over-sensitive cursor clicking when user pinches. Preventing over-sensitive cursor clicking when user pinches. Integrating the real-time angle calculations into the PyGame simulation Integrating the real-time angle calculations into the PyGame simulation
Accomplishments we're proud of
Successfully integrating multi-modal input (gesture, face, and voice) into a single tool. Successfully integrating multi-modal input (gesture, face, and voice) into a single tool. Improving gesture accuracy for seamless, hands-free control. Improving gesture accuracy for seamless, hands-free control. Making an accessible and already functional prototype that can genuinely help users right away. Making an accessible and already functional prototype that can genuinely help users right away.
What we learned
How to apply CV libraries in order to track body movements How to apply CV libraries in order to track body movements How to fine-tune thresholds for gesture recognition to balance sensitivity with accuracy How to fine-tune thresholds for gesture recognition to balance sensitivity with accuracy Challenges in live speech-to-text processing and how to improve clarity Challenges in live speech-to-text processing and how to improve clarity
What's next
Some type of customizable gestures for more personalized controls Some type of customizable gestures for more personalized controls Machine learning enhancements to improve speech-to-text accuracy Machine learning enhancements to improve speech-to-text accuracy Less sensitive mouse controls Less sensitive mouse controls
KlawTreeHacks2025
Klaw is an accessibility tool that enables seamless laptop interaction through hand gestures, facial expressions, and voice recognition, empowering individuals with mobility and speech challenges.
Inspiration
Klaw was inspired by the need for more intuitive, hands-free ways to interact with technology, especially for individuals with mobility or speech impairments. As technology becomes increasingly integrated into daily life, traditional input methods like keyboards and mice are sometimes insufficient for the nuanced interactions that modern applications demand. We wanted to create an accessibility tool that bridges the gap between users and their devices, allowing the former to take a more relaxed, agile approach towards making the most of their laptops.
What it does
Klaw enables seamless laptop control through hand gestures, facial expressions, and voice recognition, allowing users to navigate without a keyboard or mouse. It specifically supports features like gesture-based clicking, head-tilt volume control, and real-time speech-to-text captions.
Hand Gesture Control: Move your cursor by pointing with your index finger, perform clicks by pinching your fingers together, and navigate with swipe gestures.
Facial Expression Detection: Tilt your head left or right to adjust volume, raise your eyebrows to trigger actions, or smile to confirm selections.
Real-Time Speech-to-Text: Converts spoken words into live subtitles, aiding users with speech impairments or those in environments where typing is difficult.
Accessible Interaction: Klaw eliminates the need for a physical mouse or keyboard, making laptops more accessible for users with limited mobility.
How we built it
We used Google MediaPipe for hand and face tracking, OpenCV for image processing, SpeechRecognition for real-time subtitles, Numpy for the joint angle calculations, and Pygame to render the test interface. The project was entirely done in Python.
Challenges we ran into
Fine-tuning gesture detection to avoid false positives.
Handling speech recognition delays and improving accuracy in noisy environments.
Preventing over-sensitive cursor clicking when user pinches.
Integrating the real-time angle calculations into the PyGame simulation
Accomplishments that we're proud of
Successfully integrating multi-modal input (gesture, face, and voice) into a single tool.
Improving gesture accuracy for seamless, hands-free control.
Making an accessible and already functional prototype that can genuinely help users right away.
What we learned
How to apply CV libraries in order to track body movements
How to fine-tune thresholds for gesture recognition to balance sensitivity with accuracy
Challenges in live speech-to-text processing and how to improve clarity
What's next for Klaw
Some type of customizable gestures for more personalized controls
Machine learning enhancements to improve speech-to-text accuracy
Less sensitive mouse controls
Analysis
View
Metric
- 11
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- PythonIn code
1 of 1 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
13 KB
Source files
2
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
NikhilSura04/KlawTreeHacks2025
2 files · 13 KB · @ 85c61e4
Structure
Application logic
1 file · 50%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python78%
- Markdown22%
Share of indexed source by file size. Binary and vendored files are excluded.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.