{"id":28906115,"url":"https://github.com/vijaykr338/gesture-control","last_synced_at":"2026-03-14T21:03:32.025Z","repository":{"id":292308256,"uuid":"980443389","full_name":"vijaykr338/gesture-control","owner":"vijaykr338","description":"A Hand-Gesture Recognition System","archived":false,"fork":false,"pushed_at":"2025-07-31T21:32:13.000Z","size":13038,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-01T00:03:35.063Z","etag":null,"topics":["mediapipe","opencv","openvino-toolkit"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vijaykr338.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-09T06:20:46.000Z","updated_at":"2025-07-30T16:26:24.000Z","dependencies_parsed_at":"2025-07-31T23:22:14.189Z","dependency_job_id":null,"html_url":"https://github.com/vijaykr338/gesture-control","commit_stats":null,"previous_names":["vijaykr338/gesture-control"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vijaykr338/gesture-control","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijaykr338%2Fgesture-control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijaykr338%2Fgesture-control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijaykr338%2Fgesture-control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijaykr338%2Fgesture-control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vijaykr338","download_url":"https://codeload.github.com/vijaykr338/gesture-control/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vijaykr338%2Fgesture-control/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30517679,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-14T19:51:21.629Z","status":"ssl_error","status_checked_at":"2026-03-14T19:51:12.959Z","response_time":57,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["mediapipe","opencv","openvino-toolkit"],"created_at":"2025-06-21T14:02:34.238Z","updated_at":"2026-03-14T21:03:32.019Z","avatar_url":"https://github.com/vijaykr338.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🖐️ PalmPilot: Gesture Control with OpenVINO\n\nPalmPilot is a high-performance, real-time hand gesture control system for your desktop. Built with Python and powered by Intel's OpenVINO toolkit, it offers a fast and intuitive way to interact with your applications without a mouse or keyboard.\n\n---\n\n## ✨ Features\n\n-   **High-Performance Inference**: Leverages the OpenVINO™ toolkit for optimized, low-latency gesture recognition on Intel hardware.\n-   **Modern GUI**: A clean and user-friendly dashboard built with PyQt6 to manage the engine, select modes, and view gesture mappings.\n-   **Customizable Application Modes**: Pre-configured modes for presentations, media players, and general desktop use. Easily create and edit your own modes.\n-   **Direct System Control**: Seamlessly controls the mouse cursor, performs clicks, scrolls, and executes keyboard shortcuts based on your hand movements.\n-   **Robust Hand Tracking**: Utilizes a multi-stage pipeline for accurate hand detection and 21-point landmark tracking.\n\n---\n\n## 🛠️ Technology Stack\n\n-   **Core Engine**: Python\n-   **Inference**: OpenVINO™\n-   **GUI**: PyQt6\n-   **CV \u0026 Image Processing**: OpenCV, NumPy\n-   **System Automation**: PyAutoGUI\n\n---\n\n## 🧠 Model Pipeline\n\nPalmPilot uses a chain of OpenVINO IR models (`.xml` and `.bin`) to process the video feed and recognize gestures.\n\n| Model                     | Description                                          |\n| ------------------------- | ---------------------------------------------------- |\n| `hand_detector`           | Detects the presence and bounding box of a hand.     |\n| `hand_landmarks_detector` | Locates 21 key hand landmarks within the box.        |\n| `gesture_embedder`        | Encodes landmark vectors into a feature representation.|\n| `canned_gesture_classifier`| Classifies the feature vector into a specific gesture. |\n\n---\n\n## ⚙️ Setup and Installation\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/vijaykr338/gesture-control.git\ncd gesture-control\n```\n\n### 2. Create a Virtual Environment\n\nUsing a virtual environment is strongly recommended to keep dependencies isolated.\n\n```bash\n# Create the environment\npython -m venv venv\n\n# Activate the environment\n# On Windows:\nvenv\\Scripts\\activate\n# On macOS/Linux:\nsource venv/bin/activate\n```\n\n### 3. Install Dependencies\n\nThe project's dependencies are listed in `requirements.txt`. Install them using pip.\n\n```bash\npip install -r requirements.txt\n```\n*(Note: The requirements file contains all packages, including development tools like Jupyter.)*\n\n---\n\n## 🚀 How to Run\n\nOnce the setup is complete, launch the main application:\n\n```bash\npython gui_main.py\n```\n\nFrom the GUI, you can:\n-   **Start/Stop** the gesture detection engine.\n-   **Select** the active application mode from the dropdown.\n-   **View** the gestures and their assigned actions for the current mode.\n-   **Create or Edit** custom modes to fit your workflow.\n\n---\n\n## 📁 Project Structure\n\n```\n.\n├── mediapipeModels/            # OpenVINO IR models (.xml, .bin)\n├── application_modes.py        # Handles loading and managing control modes.\n├── config_manager.py           # Manages gesture configurations from JSON.\n├── detection_models.py         # Loads and manages the OpenVINO models.\n├── event_system.py             # A simple event bus for component communication.\n├── gesture_config.json         # Main JSON configuration for gestures and modes.\n├── gesture_engine.py           # Core logic for the gesture recognition pipeline.\n├── gesture_processor.py        # Translates gestures into system actions (e.g., mouse clicks).\n├── gui_main.py                 # The main entry point for the PyQt6 GUI.\n├── gui_worker.py               # QThread worker to run the engine without freezing the GUI.\n├── hand_landmark.py            # Constants for hand landmark points.\n├── requirement.txt             # Python dependencies.\n└── README.md                   # This file.\n```\n\n---\n\n## 📄 License\n\nThis project is licensed under the MIT License. See the `LICENSE` file for details.\n*(You should add a LICENSE file to your repository)*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvijaykr338%2Fgesture-control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvijaykr338%2Fgesture-control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvijaykr338%2Fgesture-control/lists"}