## 🚀 概要
**CubeEye** は、3x3 ルービックキューブを解くために設計された高度な Android アプリケーションです。コンピュータービジョンを活用して実際のキューブをスキャンし、インタラクティブな 3D アニメーションガイドを表示して、最適な動きでキューブを解く方法を学習します。
## ✨ 主な機能
### 📷 スマートスキャンシステム
* **リアルタイム色検出:** カスタム `ColorAnalyzer` を介してカメラでキューブの面の色を自動識別します。
* **ガイド付きスキャン:** 直感的な UI オーバーレイが、6 面すべてを正しくキャプチャするプロセスをガイドします。
* **検証ロジック:** 組み込みの `CubeValidator` が、スキャンされた状態が物理的に解けることを確認してから処理を進めます。
* **手動修正:** 照明条件によって自動検出がうまくいかない場合、ユーザーが手動で色を調整できる `ColorPickerDialog` が含まれています。
### 🧩 インテリジェントソルバー
* **Kociemba アルゴリズム:** 有名な 2 フェーズアルゴリズム(*min2phase* ライブラリ経由)を統合し、多くの場合 20 手以内で近似解を導き出します。
* **高速ローカル計算:** ネットワーク接続を必要とせず、デバイス上で直接、複雑なスクランブルを数秒で解きます。
### 🎥 インタラクティブ 3D ガイド
* **3D ビジュアライゼーション:** 実際のキューブの状態を正確に模倣する、完全にインタラクティブな 3D レンダリング(`Cube3DView`)を備えています。
* **ステップバイステップアニメーション:** ユーザーは自分のペースで、解の動きを再生、一時停止、スクラブできます。
## 🛠 技術的なハイライト
* **最新の Android スタック:** Kotlin と Jetpack Compose(Material 3)のみを使用して構築されています。
* **堅牢なアーキテクチャ:** クリーンアーキテクチャの原則に従い、MVVM パターン、依存性注入のための Hilt、非同期操作のためのコルーチンを活用しています。
* **CameraX:** ライブプレビューと画像分析のための、安定性と効率性に優れたカメラ基盤を実装しています。
* **SceneView:** 高性能な 3D レンダリングのために SceneView ライブラリを活用しています。
## 🐛 既知の問題 / TODO
* 極端な照明条件への対応を改善するため、色検出しきい値を最適化しました。
* 「min2phase」ライブラリ(現在は手動ソースファイルとして含まれています)の統合を自動化しました。