## 🚀 Resumen
**CubeEye** es una aplicación avanzada para Android diseñada para resolver cubos de Rubik 3x3. Utiliza visión artificial para escanear un cubo físico y proporciona una guía 3D interactiva y animada para resolverlo con movimientos casi óptimos.
## ✨ Características principales
### 📷 Sistema de escaneo inteligente
* **Detección de color en tiempo real:** Identifica automáticamente los colores de las caras del cubo usando la cámara mediante el analizador de color personalizado.
* **Escaneo guiado:** Una interfaz intuitiva superpuesta guía a los usuarios a través del proceso de captura de las 6 caras correctamente.
* **Lógica de validación:** El validador de cubo integrado garantiza que el estado escaneado sea físicamente solucionable antes de continuar.
* **Corrección manual:** Incluye un cuadro de diálogo "ColorPickerDialog" que permite a los usuarios ajustar manualmente los colores si las condiciones de iluminación afectan la detección automática.
### 🧩 Solucionador Inteligente
* **Algoritmo Kociemba:** Integra el famoso algoritmo de dos fases (a través de la biblioteca *min2phase*) para encontrar soluciones casi óptimas, que a menudo requieren menos de 20 movimientos.
* **Cálculo local rápido:** Resuelve problemas complejos en segundos directamente en el dispositivo sin necesidad de conexión a la red.
### 🎥 Guía 3D interactiva
* **Visualización 3D:** Incluye un renderizado 3D totalmente interactivo (`Cube3DView`) que imita con precisión el estado real del cubo.
* **Animación paso a paso:** Los usuarios pueden reproducir, pausar y explorar los movimientos de la solución a su propio ritmo.
## 🛠 Características técnicas destacadas
* **Stack Android moderno:** Desarrollado íntegramente con Kotlin y Jetpack Compose (Material 3).
* **Arquitectura robusta:** Sigue los principios de la arquitectura limpia, utilizando patrones MVVM, Hilt para la inyección de dependencias y corrutinas para operaciones asíncronas.
* **CameraX:** Implementa una base de cámara estable y eficiente para la vista previa en vivo y el análisis de imágenes.
* **SceneView:** Utiliza la biblioteca SceneView para renderizado 3D de alto rendimiento.
## 🐛 Problemas conocidos / Pendientes
* Optimizar los umbrales de detección de color para gestionar mejor las condiciones de iluminación extremas.
* Automatizar la integración de la biblioteca "min2phase" (actualmente incluida como archivos fuente manuales).