## 🚀 Przegląd
**CubeEye** to zaawansowana aplikacja na Androida przeznaczona do układania kostek Rubika 3x3. Wykorzystuje ona technologię rozpoznawania obrazu do skanowania fizycznej kostki i zapewnia interaktywny, animowany przewodnik 3D, który pomaga w jej układaniu, wykonując niemal optymalne ruchy.
## ✨ Najważniejsze funkcje
### 📷 Inteligentny system skanowania
* **Wykrywanie kolorów w czasie rzeczywistym:** Automatycznie identyfikuje kolory ścianek kostki za pomocą kamery za pomocą dedykowanego narzędzia `ColorAnalyzer`.
* **Skanowanie wspomagane:** Intuicyjna nakładka interfejsu użytkownika prowadzi użytkowników przez proces prawidłowego uchwycenia wszystkich 6 ścianek.
* **Logika walidacji:** Wbudowany `CubeValidator` zapewnia, że zeskanowany stan jest fizycznie możliwy do rozwiązania przed kontynuacją.
* **Korekcja ręczna:** Zawiera okno dialogowe `ColorPickerDialog`, które umożliwia użytkownikom ręczną regulację kolorów, jeśli warunki oświetleniowe wpływają na automatyczne wykrywanie.
### 🧩 Inteligentny Solver
* **Algorytm Kociemby:** Integruje słynny algorytm dwufazowy (za pośrednictwem biblioteki *min2phase*) w celu znalezienia niemal optymalnych rozwiązań, często wymagających mniej niż 20 ruchów.
* **Szybkie obliczenia lokalne:** Rozwiązuje złożone równania w ciągu kilku sekund bezpośrednio na urządzeniu, bez konieczności połączenia sieciowego.
### 🎥 Interaktywny przewodnik 3D
* **Wizualizacja 3D:** Zawiera w pełni interaktywny render 3D (`Cube3DView`), który dokładnie odzwierciedla stan rzeczywistej kostki.
* **Animacja krok po kroku:** Użytkownicy mogą odtwarzać, wstrzymywać i przewijać ruchy rozwiązywania we własnym tempie.
## 🛠 Najważniejsze cechy techniczne
* **Nowoczesny stos Androida:** Zbudowany w całości z wykorzystaniem Kotlina i Jetpack Compose (Material 3).
* **Solidna architektura:** Zgodna z zasadami Czystej Architektury, wykorzystująca wzorce MVVM, Hilt do wstrzykiwania zależności oraz Coroutines do operacji asynchronicznych.
* **CameraX:** Implementuje stabilną i wydajną platformę kamer do podglądu na żywo i analizy obrazu.
* **SceneView:** Wykorzystuje bibliotekę SceneView do wydajnego renderowania 3D.
## 🐛 Znane problemy / zadania do wykonania
* Zoptymalizuj progi wykrywania kolorów, aby lepiej radzić sobie z ekstremalnymi warunkami oświetleniowymi.
* Zautomatyzuj integrację biblioteki „min2phase” (obecnie dołączonej jako pliki źródłowe).
Ostatnia aktualizacja
6 sty 2026