## 🚀 Gambaran Umum
**CubeEye** adalah aplikasi Android canggih yang dirancang untuk menyelesaikan Kubus Rubik 3x3. Aplikasi ini memanfaatkan penglihatan komputer untuk memindai kubus fisik dan menyediakan panduan 3D interaktif dan animasi untuk menyelesaikannya menggunakan gerakan yang mendekati optimal.
## ✨ Fitur Utama
### 📷 Sistem Pemindaian Cerdas
* **Deteksi Warna Real-time:** Secara otomatis mengidentifikasi warna sisi kubus menggunakan kamera melalui `ColorAnalyzer` khusus.
* **Pemindaian Terpandu:** Overlay UI intuitif memandu pengguna melalui proses pengambilan gambar keenam sisi dengan benar.
* **Logika Validasi:** `CubeValidator` bawaan memastikan keadaan yang dipindai secara fisik dapat diselesaikan sebelum melanjutkan.
* **Koreksi Manual:** Termasuk `ColorPickerDialog` yang memungkinkan pengguna untuk menyesuaikan warna secara manual jika kondisi pencahayaan memengaruhi deteksi otomatis.
### 🧩 Pemecah Cerdas
* **Algoritma Kociemba:** Mengintegrasikan Algoritma Dua Fase yang terkenal (melalui pustaka *min2phase*) untuk menemukan solusi yang mendekati optimal, seringkali hanya membutuhkan kurang dari 20 langkah.
* **Komputasi Lokal Cepat:** Memecahkan teka-teki kompleks dalam hitungan detik langsung di perangkat tanpa memerlukan koneksi jaringan.
### 🎥 Panduan 3D Interaktif
* **Visualisasi 3D:** Menampilkan render 3D interaktif penuh (`Cube3DView`) yang secara akurat meniru keadaan kubus sebenarnya.
* **Animasi Langkah demi Langkah:** Pengguna dapat memutar, menjeda, dan mempercepat langkah-langkah solusi sesuai kecepatan mereka sendiri.
## 🛠 Sorotan Teknis
* **Bahan Android Modern:** Dibangun sepenuhnya menggunakan Kotlin dan Jetpack Compose (Material 3).
* **Arsitektur yang Kokoh:** Mengikuti prinsip Arsitektur Bersih, menggunakan pola MVVM, Hilt untuk injeksi dependensi, dan Coroutine untuk operasi asinkron.
* **CameraX:** Mengimplementasikan fondasi kamera yang stabil dan efisien untuk pratinjau langsung dan analisis gambar.
* **SceneView:** Menggunakan pustaka SceneView untuk rendering 3D berkinerja tinggi.
## 🐛 Masalah yang Diketahui / TODO
* Optimalkan ambang batas deteksi warna untuk menangani kondisi pencahayaan ekstrem dengan lebih baik.
* Otomatiskan integrasi pustaka "min2phase" (saat ini disertakan sebagai file sumber manual).