Metadata-Version: 2.4
Name: gesturevision
Version: 0.1.3
Summary: A professional gesture-based screen capture system using MediaPipe and FastAPI
Author-email: Your Name <your.email@example.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/yourusername/gesturevision
Project-URL: Bug Tracker, https://github.com/yourusername/gesturevision/issues
Keywords: gestures,mediapipe,automation,opencv,fastapi
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: POSIX :: Linux
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi>=0.109.0
Requires-Dist: uvicorn>=0.27.0
Requires-Dist: python-dotenv>=1.0.0
Requires-Dist: opencv-python
Requires-Dist: mediapipe
Requires-Dist: mss
Requires-Dist: numpy
Requires-Dist: pydantic
Dynamic: license-file

<p align="center">
  <img src="logowithname.png" width="250" alt="Gesture Vision Logo">
</p>

<p align="center">
  <a href="#"><img src="https://img.shields.io/badge/build-passing-brightgreen" alt="Build"></a>
  <a href="#"><img src="https://img.shields.io/badge/Python-3.12-blue" alt="Tech"></a>
  <a href="#"><img src="https://img.shields.io/badge/license-MIT-lightgrey" alt="License"></a>
</p>

| Branch | Version | Status |
| :--- | :--- | :--- |
| `master` | `0.1.0` | ![passing](https://img.shields.io/badge/build-passing-brightgreen) |

| Platform | Python | System Dependencies |
| :--- | :--- | :--- |
| Linux (x86_64) | `3.12+` | `libgl1`, `libglib2.0-0`, `notify-send` |
| macOS (ARM64) | `N/A` | `N/A` |
| Windows (x86_64) | `N/A` | `N/A` |

* **Docs:** [Enlace a documentación]
* **Website:** [Enlace a web]

## Introducción

Gesture Vision es un sistema de automatización de grado de producción, desarrollado en Python para la captura de pantallas mediante el reconocimiento de gestos en tiempo real.

El sistema funciona mediante un pipeline de visión artificial donde MediaPipe procesa el flujo de la cámara para detectar puntos clave de la mano, coordinado por un backend asíncrono en FastAPI. Esto proporciona un control preciso de eventos con un impacto mínimo en los recursos del sistema.

## Arquitectura

![Diagrama de Arquitectura](arquitecture.png)

## Características Principales

* **Rastreo de Alta Precisión:** Implementación de MediaPipe Hand Landmarker para la detección de puntos clave manuales con baja latencia.
* **Control de Disparo Robusto:** Sistema de validación basado en tiempo de mantenimiento del gesto y periodos de cooldown para eliminar falsos positivos.
* **Modo Invisible (Background):** Operación totalmente en segundo plano sin ventanas de previsualización, optimizando el uso de la GPU/CPU.
* **Notificaciones Nativas:** Integración con el sistema de alertas del escritorio para confirmar capturas exitosas instantáneamente.
* **Despliegue Nativo:** Instalación simplificada vía `pip` con comandos CLI dedicados para la gestión del servicio.

## Quick Start

### 1. Dependencias del Sistema
Instale las librerías necesarias para OpenCV y notificaciones:
```bash
sudo apt-get update && sudo apt-get install -y libgl1 libglib2.0-0 libnotify-bin
```

### 2. Instalación
Se recomienda el uso de un entorno virtual:
```bash
# Clonar repositorio
git clone <repo-url>
cd gesture-vision

# Configurar entorno virtual
python3 -m venv venv
source venv/bin/activate

# Instalación en modo editable
pip install -e .
```

### 3. Ejecución y Control
El sistema expone comandos directos en la terminal:

```bash
# Iniciar el sistema y la API
gesturevision-start

# Detener el sistema
gesturevision-stop
```

### 4. Gestión y Configuración
Acceda al panel de control web para editar gestos y tiempos de respuesta:
**http://localhost:8080**

Los ajustes se almacenan localmente en: `~/gesturevision/config.json`

## Estructura del Proyecto

- `src/gesturevision/main_vision.py`: Motor de detección de gestos y captura.
- `src/gesturevision/api/`: Backend FastAPI para control y configuración.
- `src/gesturevision/static/`: Interfaz de usuario del panel de control.
- `pyproject.toml`: Definición de dependencias y entry points del paquete.
- `assets/hand_landmarker.task`: Modelo de IA pre-entrenado.
