## ๐ Pangkalahatang-ideya
**Ang CubeEye** ay isang advanced na Android application na idinisenyo upang malutas ang 3x3 Rubik's Cubes. Ginagamit nito ang computer vision upang i-scan ang isang pisikal na cube at nagbibigay ng isang interactive, animated na 3D na gabay upang malutas ito gamit ang halos pinakamainam na mga galaw.
## โจ Mga Pangunahing Tampok
### ๐ท Smart Scanning System
* **Real-time na Pagtukoy ng Kulay:** Awtomatikong tinutukoy ang mga kulay ng mukha ng cube gamit ang camera sa pamamagitan ng custom na `ColorAnalyzer`.
* **Guided Scanning:** Isang intuitive UI overlay ang gumagabay sa mga user sa proseso ng pagkuha ng lahat ng 6 na mukha nang tama.
* **Validation Logic:** Tinitiyak ng built-in na `CubeValidator` na ang na-scan na estado ay pisikal na malulutas bago magpatuloy.
* **Manual na Pagwawasto:** May kasamang `ColorPickerDialog` na nagpapahintulot sa mga user na manu-manong ayusin ang mga kulay kung ang mga kondisyon ng ilaw ay nakakaapekto sa awtomatikong pagtukoy.
### ๐งฉ Matalinong Tagalutas
* **Kociemba Algorithm:** Pinagsasama ang sikat na Two-Phase Algorithm (sa pamamagitan ng *min2phase* library) upang makahanap ng halos pinakamainam na mga solusyon, na kadalasang nangangailangan ng wala pang 20 galaw.
* **Mabilis na Lokal na Pagkalkula:** Nilulutas ang mga kumplikadong pag-scramble sa loob ng ilang segundo nang direkta sa device nang hindi nangangailangan ng koneksyon sa network.
### ๐ฅ Interactive na Gabay sa 3D
* **3D Visualization:** Nagtatampok ng ganap na interactive na 3D render (`Cube3DView`) na tumpak na ginagaya ang estado ng totoong cube.
* **Hakbang-hakbang na Animasyon:** Maaaring i-play, i-pause, at i-scrub ng mga user ang mga galaw ng solusyon sa sarili nilang bilis.
## ๐ Mga Teknikal na Highlight
* **Modernong Android Stack:** Ganap na binuo gamit ang Kotlin at Jetpack Compose (Material 3).
* **Matibay na Arkitektura:** Sumusunod sa mga prinsipyo ng Clean Architecture, gamit ang mga pattern ng MVVM, Hilt para sa dependency injection, at Coroutine para sa mga asynchronous na operasyon.
* **CameraX:** Nagpapatupad ng matatag at mahusay na pundasyon ng camera para sa live preview at pagsusuri ng imahe.
* **SceneView:** Ginagamit ang SceneView library para sa high-performance na 3D rendering.
## ๐ Mga Kilalang Isyu / TODO
* I-optimize ang mga limitasyon sa pagtukoy ng kulay upang mas mahusay na mahawakan ang matinding mga kondisyon ng pag-iilaw.
* I-automate ang integrasyon ng "min2phase" library (kasalukuyang kasama bilang mga manual source file).
Na-update noong
Ene 6, 2026