## 🚀 Översikt
**CubeEye** är en avancerad Android-applikation designad för att lösa 3x3 Rubiks kuber. Den använder datorseende för att skanna en fysisk kub och ger en interaktiv, animerad 3D-guide för att lösa den med nästan optimala rörelser.
## ✨ Viktiga funktioner
### 📷 Smart skanningssystem
* **Färgdetektering i realtid:** Identifierar automatiskt kubens ansiktens färger med hjälp av kameran via den anpassade `ColorAnalyzer`.
* **Guidad skanning:** Ett intuitivt gränssnittsöverlägg guidar användarna genom processen att fånga alla 6 ansikten korrekt.
* **Valideringslogik:** Den inbyggda `CubeValidator` säkerställer att det skannade tillståndet är fysiskt lösbart innan det fortsätter.
* **Manuell korrigering:** Inkluderar en `ColorPickerDialog` som gör det möjligt för användare att manuellt justera färger om ljusförhållandena påverkar automatisk detektering.
### 🧩 Intelligent lösare
* **Kociemba-algoritm:** Integrerar den berömda tvåfasalgoritmen (via *min2phase*-biblioteket) för att hitta nästan optimala lösningar, vilket ofta kräver färre än 20 drag.
* **Snabb lokal beräkning:** Löser komplexa problem på några sekunder direkt på enheten utan att behöva en nätverksanslutning.
### 🎥 Interaktiv 3D-guide
* **3D-visualisering:** Har en helt interaktiv 3D-rendering (`Cube3DView`) som exakt efterliknar den verkliga kubens tillstånd.
* **Steg-för-steg-animering:** Användare kan spela, pausa och bläddra igenom lösningsdragen i sin egen takt.
## 🛠 Tekniska höjdpunkter
* **Modern Android Stack:** Byggd helt med Kotlin och Jetpack Compose (Material 3).
* **Robust arkitektur:** Följer principerna för ren arkitektur och använder MVVM-mönster, Hilt för beroendeinjektion och Coroutines för asynkrona operationer.
* **CameraX:** Implementerar en stabil och effektiv kameragrund för live-förhandsvisning och bildanalys.
* **SceneView:** Använder SceneView-biblioteket för högpresterande 3D-rendering.
## 🐛 Kända problem / TODOs
* Optimera tröskelvärden för färgdetektering för att bättre hantera extrema ljusförhållanden.
* Automatisera integrationen av "min2phase"-biblioteket (för närvarande inkluderat som manuella källfiler).
Uppdaterades den
6 jan. 2026