๐๏ธ Hand Gesture Volume Controller
Control your Android phoneโs volume using your hand gestures โ no buttons needed!
This Flutter package works with a small Python server that reads your hand movements from a webcam and updates the volume on your phone in real-time.
๐ฝ๏ธ Demo
๐ฝ Demo Videos
- โถ๏ธ Short preview of mobile
- ๐บ geature detector
๐ง What You Need
- A Windows PC or laptop with a webcam
- Your Android phone connected to the same Wi-Fi
- Python 3.8 or later
- Flutter 3.x
๐ How It Works
- Python code runs on your computer and uses your webcam to detect hand gestures.
- It sends the volume level over your Wi-Fi.
- Your Flutter app receives that volume level and applies it on your phone.
๐ฆ How to Use
Step 1: Clone This Package
git clone https://github.com/ZyadWKhedr/hand_gesture_volume_controller
cd hand_gesture_volume_controller
Step 2: Run the Python Server
Open a terminal inside the server/ folder.
Install the required Python packages:
pip install flask opencv-python mediapipe numpy Run the server:
python hand_control_server.py
- If everything works, it will say:
Running on http://192.168.xx.xx:5000 ๐ Copy that IP address โ youโll use it in the Flutter app!
Step 3: Open the Flutter Example App
Open the example/ folder in VS Code.
In main.dart, set your local server IP like this:
final controller = GestureVolumeController( serverUrl: 'http://192.168.xx.xx:5000/volume-data', ); Run the app:
flutter run Youโll see a volume level on your phone screen that changes when you move your fingers ๐
โ Supported Gestures
-
๐ Distance between your thumb and index controls the volume
-
๐ค If they touch, the system mutes
-
๐ข Volume bar is displayed in real time
๐ค Contribute or Fork
Want to help? You can:
Add more gestures (pause, swipe, next/prev)
Improve UI
Help port to iOS (if possible)
๐ License
MIT ยฉ 2025 Zyad Made using Flutter, Python, and MediaPipe