## 🚀 Общ преглед
**CubeEye** е усъвършенствано приложение за Android, предназначено за решаване на 3x3 кубчета на Рубик. То използва компютърно зрение, за да сканира физически куб и предоставя интерактивно, анимирано 3D ръководство за решаването му с почти оптимални движения.
## ✨ Основни характеристики
### 📷 Интелигентна система за сканиране
* **Разпознаване на цветове в реално време:** Автоматично идентифицира цветовете на страните на куба с помощта на камерата чрез персонализирания `ColorAnalyzer`.
* **Насочвано сканиране:** Интуитивен потребителски интерфейс насочва потребителите през процеса на правилно заснемане на всичките 6 страни.
* **Логика за валидиране:** Вграденият `CubeValidator` гарантира, че сканираното състояние е физически разрешимо, преди да се продължи.
* **Ръчна корекция:** Включва `ColorPickerDialog`, който позволява на потребителите ръчно да коригират цветовете, ако условията на осветление влияят на автоматичното разпознаване.
### 🧩 Интелигентен решател
* **Алгоритъм на Кочиемба:** Интегрира известния двуфазен алгоритъм (чрез библиотеката *min2phase*), за да намери почти оптимални решения, често изискващи по-малко от 20 хода.
* **Бързо локално изчисление:** Решава сложни задачи за секунди директно на устройството, без да е необходима мрежова връзка.
### 🎥 Интерактивно 3D ръководство
* **3D визуализация:** Включва напълно интерактивен 3D рендер (`Cube3DView`), който точно имитира състоянието на реалния куб.
* **Анимация стъпка по стъпка:** Потребителите могат да възпроизвеждат, поставят на пауза и да превъртат през ходовете на решението със собствено темпо.
## 🛠 Технически акценти
* **Модерен Android стек:** Изграден изцяло с помощта на Kotlin и Jetpack Compose (Material 3).
* **Надлежна архитектура:** Следва принципите на чистата архитектура, използвайки MVVM шаблони, Hilt за инжектиране на зависимости и корутини за асинхронни операции.
* **CameraX:** Внедрява стабилна и ефикасна основа на камерата за преглед на живо и анализ на изображения.
* **SceneView:** Използва библиотеката SceneView за високопроизводително 3D рендиране.
## 🐛 Известни проблеми / TODO
* Оптимизира праговете за разпознаване на цветове, за да се справя по-добре с екстремни условия на осветление.
* Автоматизира интеграцията на библиотеката "min2phase" (в момента е включена като ръчни изходни файлове).
Актуализирано на
6.01.2026 г.