## 🚀 Ülevaade
**CubeEye** on täiustatud Androidi rakendus, mis on loodud 3x3 Rubiku kuubikute lahendamiseks. See kasutab arvutinägemist füüsilise kuubiku skannimiseks ja pakub interaktiivset animeeritud 3D-juhendit selle lahendamiseks peaaegu optimaalsete käikudega.
## ✨ Peamised omadused
### 📷 Nutikas skaneerimissüsteem
* **Reaalajas värvituvastus:** Tuvastab automaatselt kuubiku tahkude värvid kaamera abil kohandatud värvianalüsaatori abil.
* **Juhendatud skaneerimine:** Intuitiivne kasutajaliidese kiht juhendab kasutajaid kõigi 6 tahu õigesti jäädvustamise protsessis.
* **Valideerimisloogika:** Sisseehitatud kuubivalidaator tagab skannitud oleku füüsilise lahendatavuse enne jätkamist.
* **Käsitsi korrigeerimine:** Sisaldab värvivalija dialoogi, mis võimaldab kasutajatel värve käsitsi reguleerida, kui valgustingimused mõjutavad automaatset tuvastamist.
### 🧩 Intelligentne lahendaja
* **Kociemba algoritm:** Integreerib kuulsa kahefaasilise algoritmi (*min2phase* teegi kaudu), et leida peaaegu optimaalseid lahendusi, mis nõuavad sageli vähem kui 20 käiku.
* **Kiire lokaalne arvutus:** Lahendab keerulisi segamini ülesandeid sekunditega otse seadmes ilma võrguühenduseta.
### 🎥 Interaktiivne 3D-juhend
* **3D-visualiseerimine:** Sisaldab täielikult interaktiivset 3D-renderdust (`Cube3DView`), mis jäljendab täpselt tegeliku kuubiku olekut.
* **Samm-sammult animatsioon:** Kasutajad saavad lahenduskäike omas tempos esitada, peatada ja sirvida.
## 🛠 Tehnilised tipphetked
* **Moodne Androidi stack:** Ehitatud täielikult Kotlini ja Jetpack Compose'i (Material 3) abil. * **Jõuline arhitektuur:** Järgib puhta arhitektuuri põhimõtteid, kasutades MVVM-mustreid, Hilti sõltuvuste süstimiseks ja korutiine asünkroonsete operatsioonide jaoks.
* **CameraX:** Rakendab stabiilse ja tõhusa kaamerabaasi reaalajas eelvaate ja pildianalüüsi jaoks.
* **SceneView:** Kasutab SceneView teeki suure jõudlusega 3D-renderdamiseks.
## 🐛 Teadaolevad probleemid / TODO-d
* Optimeerib värvide tuvastamise lävesid, et paremini toime tulla äärmuslike valgustingimustega.
* Automatiseerib "min2phase" teeki integreerimise (praegu kaasas käsitsi lähtekoodifailidena).
Värskendatud:
6. jaan 2026