๐Ÿ–๏ธ 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


๐Ÿ”ง 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

  1. Python code runs on your computer and uses your webcam to detect hand gestures.
  2. It sends the volume level over your Wi-Fi.
  3. 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

  1. ๐Ÿ“ Distance between your thumb and index controls the volume

  2. ๐Ÿค If they touch, the system mutes

  3. ๐ŸŸข 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