## 🚀 Oversigt
**CubeEye** er en avanceret Android-applikation designet til at løse 3x3 Rubiks terninger. Den bruger computer vision til at scanne en fysisk terning og giver en interaktiv, animeret 3D-guide til at løse den ved hjælp af næsten optimale bevægelser.
## ✨ Nøglefunktioner
### 📷 Smart Scanning System
* **Farvedetektion i realtid:** Identificerer automatisk terningens ansigtsfarver ved hjælp af kameraet via den brugerdefinerede `ColorAnalyzer`.
* **Guidet scanning:** Et intuitivt brugergrænsefladeoverlay guider brugerne gennem processen med at optage alle 6 ansigter korrekt.
* **Valideringslogik:** Den indbyggede `CubeValidator` sikrer, at den scannede tilstand er fysisk løsbar, før den fortsætter.
* **Manuel korrektion:** Inkluderer en `ColorPickerDialog`, der giver brugerne mulighed for manuelt at justere farver, hvis lysforholdene påvirker automatisk detektion.
### 🧩 Intelligent løsningsløsning
* **Kociemba-algoritme:** Integrerer den berømte tofasealgoritme (via *min2phase*-biblioteket) for at finde næsten optimale løsninger, der ofte kræver færre end 20 træk.
* **Hurtig lokal beregning:** Løser komplekse forvrængning på få sekunder direkte på enheden uden behov for en netværksforbindelse.
### 🎥 Interaktiv 3D-guide
* **3D-visualisering:** Indeholder en fuldt interaktiv 3D-gengivelse (`Cube3DView`), der nøjagtigt efterligner den virkelige ternings tilstand.
* **Trin-for-trin-animation:** Brugere kan afspille, sætte på pause og scrubbe gennem løsningsbevægelserne i deres eget tempo.
## 🛠 Tekniske højdepunkter
* **Moderne Android-stak:** Bygget udelukkende ved hjælp af Kotlin og Jetpack Compose (Material 3).
* **Robust arkitektur:** Følger principperne for ren arkitektur og bruger MVVM-mønstre, Hilt til afhængighedsinjektion og Coroutines til asynkrone operationer.
* **CameraX:** Implementerer et stabilt og effektivt kamerafundament til live preview og billedanalyse.
* **SceneView:** Bruger SceneView-biblioteket til højtydende 3D-rendering.
## 🐛 Kendte problemer / TODO'er
* Optimer farvedetektionstærskler for bedre at håndtere ekstreme lysforhold.
* Automatiser integrationen af "min2phase"-biblioteket (i øjeblikket inkluderet som manuelle kildefiler).