## 🚀 Pregled
**CubeEye** je napredna Android aplikacija dizajnirana za rješavanje 3x3 Rubikovih kocki. Koristi računalni vid za skeniranje fizičke kocke i pruža interaktivni, animirani 3D vodič za rješavanje gotovo optimalnim potezima.
## ✨ Ključne značajke
### 📷 Pametni sustav skeniranja
* **Detekcija boja u stvarnom vremenu:** Automatski identificira boje strana kocke pomoću kamere putem prilagođenog `ColorAnalyzera`.
* **Vođeno skeniranje:** Intuitivni sloj korisničkog sučelja vodi korisnike kroz proces ispravnog snimanja svih 6 strana.
* **Logika validacije:** Ugrađeni `CubeValidator` osigurava da je skenirano stanje fizički rješivo prije nastavka.
* **Ručna korekcija:** Uključuje `ColorPickerDialog` koji korisnicima omogućuje ručno podešavanje boja ako uvjeti osvjetljenja utječu na automatsko otkrivanje.
### 🧩 Inteligentni rješavač
* **Kociemba algoritam:** Integrira poznati dvofazni algoritam (putem biblioteke *min2phase*) kako bi pronašao gotovo optimalna rješenja, često zahtijevajući manje od 20 poteza.
* **Brzo lokalno računanje:** Rješava složene probleme u sekundama izravno na uređaju bez potrebe za mrežnom vezom.
### 🎥 Interaktivni 3D vodič
* **3D vizualizacija:** Sadrži potpuno interaktivni 3D render (`Cube3DView`) koji točno oponaša stanje stvarne kocke.
* **Animacija korak po korak:** Korisnici mogu reproducirati, pauzirati i pomicati kroz poteze rješenja vlastitim tempom.
## 🛠 Tehničke značajke
* **Moderni Android Stack:** Izgrađen u potpunosti pomoću Kotlina i Jetpack Composea (Material 3).
* **Robustna arhitektura:** Slijedi principe čiste arhitekture, koristeći MVVM obrasce, Hilt za ubrizgavanje ovisnosti i korutine za asinhrone operacije.
* **CameraX:** Implementira stabilnu i učinkovitu osnovu kamere za pregled uživo i analizu slike.
* **SceneView:** Koristi biblioteku SceneView za visokoučinkovito 3D renderiranje.
## 🐛 Poznati problemi / Zadaci
* Optimizirajte pragove detekcije boja kako biste bolje podnijeli ekstremne uvjete osvjetljenja.
* Automatizirajte integraciju biblioteke "min2phase" (trenutno uključene kao ručne izvorne datoteke).