## 🚀 Агляд
**CubeEye** — гэта прасунутае прыкладанне для Android, прызначанае для зборкі кубікаў Рубіка памерам 3x3. Яно выкарыстоўвае камп'ютэрны зрок для сканавання фізічнага куба і забяспечвае інтэрактыўны аніміраваны 3D-даведнік для яго зборкі з выкарыстаннем амаль аптымальных рухаў.
## ✨ Асноўныя характарыстыкі
### 📷 Інтэлектуальная сістэма сканавання
* **Выяўленне колеру ў рэжыме рэальнага часу:** Аўтаматычна вызначае колеры граняў куба з дапамогай камеры праз карыстальніцкі `ColorAnalyzer`.
* **Кіраванае сканаванне:** Інтуітыўна зразумелы інтэрфейс карыстальніка праводзіць карыстальнікаў праз працэс правільнага захопу ўсіх 6 граняў.
* **Логіка праверкі:** Убудаваны `CubeValidator` гарантуе фізічную магчымасць зборкі сканаванага стану перад працягам.
* **Ручная карэкцыя:** Уключае `ColorPickerDialog`, які дазваляе карыстальнікам уручную рэгуляваць колеры, калі ўмовы асвятлення ўплываюць на аўтаматычнае выяўленне.
### 🧩 Інтэлектуальны рашальнік
* **Алгарытм Косіембы:** Інтэгруе знакаміты двухфазны алгарытм (праз бібліятэку *min2phase*) для пошуку амаль аптымальных рашэнняў, часта патрабуючы менш за 20 крокаў.
* **Хуткія лакальныя вылічэнні:** Вырашае складаныя задачы за секунды непасрэдна на прыладзе без неабходнасці падключэння да сеткі.
### 🎥 Інтэрактыўнае 3D-кіраўніцтва
* **3D-візуалізацыя:** Прадстаўляе цалкам інтэрактыўны 3D-рэндэрынг (`Cube3DView`), які дакладна імітуе стан рэальнага куба.
* **Пакрокавая анімацыя:** Карыстальнікі могуць прайграваць, прыпыняць і пракручваць крокі рашэння ў сваім уласным тэмпе.
## 🛠 Тэхнічныя асаблівасці
* **Сучасны Android Stack:** Цалкам пабудаваны з выкарыстаннем Kotlin і Jetpack Compose (Material 3).
* **Надзейная архітэктура:** Адпавядае прынцыпам чыстай архітэктуры, выкарыстоўваючы шаблоны MVVM, Hilt для ўвядзення залежнасцей і саўпраграмы для асінхронных аперацый.
* **CameraX:** Рэалізуе стабільную і эфектыўную аснову камеры для папярэдняга прагляду ў рэжыме рэальнага часу і аналізу малюнкаў.
* **SceneView:** Выкарыстоўвае бібліятэку SceneView для высокапрадукцыйнага 3D-рэндэрынгу.
## 🐛 Вядомыя праблемы / Задачы
* Аптымізацыя парогаў выяўлення колеру для лепшай працы з экстрэмальнымі ўмовамі асвятлення.
* Аўтаматызацыя інтэграцыі бібліятэкі "min2phase" (у цяперашні час уключана ў якасці файлаў ручнога зыходнага кода).