+
Skip to content

GestureBind is a cross-platform desktop app that maps hand gestures (via webcam) to system actions like hotkeys, app launches, or shell commands. Built with Python, OpenCV, MediaPipe (YOLOv8 planned), and PyQt5, it features YAML configs, profile management, system tray support, and on-screen feedback — all processed locally for privacy.

License

Notifications You must be signed in to change notification settings

rk-vashista/guess

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👋 GestureBind

Control your computer with hand gestures ✌️ 👆 👍

Python 3.8+ License: MIT OpenCV MediaPipe


🪄 Overview

GestureBind transforms how you interact with your computer by mapping hand gestures to system actions. Wave goodbye to keyboard shortcuts and mouse clicks—literally!

Using your webcam and advanced computer vision, GestureBind recognizes hand gestures and instantly triggers corresponding actions, from launching apps to executing keyboard shortcuts.

✨ Features

🎯 Real-time Detection

Continuous webcam monitoring using MediaPipe and OpenCV for instant response to your gestures.

🎮 Action Mapping

Map gestures to keyboard shortcuts, mouse movements, app launches, or system commands.

🔄 Profile Management

Create and switch between gesture maps for different applications and contexts.

🔒 Privacy-Focused

All processing happens locally—your camera feed never leaves your device.

Additional Features

  • Predefined Gestures: Out-of-the-box support for common hand positions
  • Custom Gesture Training: (Coming soon) Create your own personalized gestures
  • Visual Feedback: On-screen confirmation when gestures are detected
  • Adjustable Settings: Fine-tune sensitivity, cooldown periods, and detection thresholds
  • Background Operation: Runs quietly in your system tray
  • Cross-Platform: Works on Windows, Linux, and macOS

🛠️ Requirements

  • Python 3.8 or later
  • Webcam/camera device
  • Required Python packages (installed automatically):
    • OpenCV
    • MediaPipe
    • PyQt5
    • PyAutoGUI
    • TensorFlow
    • PyYAML
    • NumPy
    • pynput

🚀 Installation

# Clone the repository
git clone https://github.com/yourusername/guess.git
cd guess/gesturebind

# Create a virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run the application
python gesturebind/main.py

Quick Install Scripts

Windows
scripts\install.bat
Linux/macOS
chmod +x scripts/install.sh
./scripts/install.sh

🎮 Usage

Getting Started in 3 Simple Steps

  1. Launch GestureBind

    Run python gesturebind/main.py and allow camera access

  2. Start Detection

    Click the "Start Detection" button in the main window

  3. Control with Gestures

    Perform gestures in front of your camera to trigger actions

Mapping Gestures to Actions

  1. Navigate to the Settings panel
  2. Select or create a profile
  3. Configure gesture mappings:
    • Choose from predefined gestures
    • Select an action type (hotkey, mouse action, app launch)
    • Configure the specific parameters
    • Save your mapping

⚙️ Configuration

GestureBind uses YAML configuration files:

  • Default configuration: gesturebind/config/default_config.yaml
  • User configuration: gesturebind/data/config/user_config.yaml

Example Configuration

# Core detection settings
detection:
  engine: mediapipe  # Options: mediapipe, yolov8 (placeholder)
  confidence_threshold: 0.7
  min_detection_duration_ms: 200

# UI preferences
ui:
  theme: system  # Options: system, dark, light
  show_preview: true
  camera_preview_fps: 15
  overlay_feedback: true
  minimize_to_tray: true
  start_minimized: false
  
# Gesture mappings by profile
profiles:
  default:
    gesture_mappings:
      peace:
        type: hotkey
        data: Ctrl+V
        description: 'Paste clipboard content'
      thumb:
        type: shell_command
        data:
          command: flatpak run com.spotify.Client
          terminal: false
        description: 'Launch Spotify'

📋 Development Status

GestureBind is in active development

✅ Already Implemented

  • MediaPipe hands integration with landmark detection
  • Landmark smoothing for more stable gesture recognition
  • Rule-based gesture classification for basic gestures
  • Action mapping system (keyboard, apps, shell commands)
  • Configuration management with YAML
  • PyQt5 UI framework with system tray integration
  • Cross-platform support foundation

🚧 In Progress

  • Visual feedback overlay for gestures
  • UI organization and navigation improvements
  • YOLOv8 integration (placeholder implementation)
  • Profile management interface enhancements

🔮 Coming Soon

  • Custom gesture training interface
  • Machine learning-based gesture classification
  • Gesture embedding storage and similarity matching
  • Built-in application presets
  • Import/Export for gesture profiles
  • Drag-and-drop action mapping interface
  • Enhanced action confirmation feedback

🔍 Next Steps & Priorities

High Priority

  1. Implement Gesture Training UI
  2. Integrate ML-based gesture classification
  3. Complete action configuration interface
  4. Enhance visual feedback system

Medium Priority

  1. Complete YOLOv8 integration
  2. Add built-in application presets
  3. Implement import/export functionality
  4. Improve test coverage

🤝 Contributing

Contributions are welcome! Here's how to help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run the tests (pytest gesturebind/tests/)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Check our implementation status and priorities for areas that need attention.

📝 License

GestureBind is available under the MIT License. See the LICENSE file for details.

🔒 Privacy

We take your privacy seriously. GestureBind processes all camera feeds locally on your device. No video or gesture data is uploaded externally, ensuring your privacy is maintained at all times.


Have questions or feedback? Open an issue on GitHub or reach out to the maintainers.

About

GestureBind is a cross-platform desktop app that maps hand gestures (via webcam) to system actions like hotkeys, app launches, or shell commands. Built with Python, OpenCV, MediaPipe (YOLOv8 planned), and PyQt5, it features YAML configs, profile management, system tray support, and on-screen feedback — all processed locally for privacy.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载