ā§§ā§Ļ+
āĻĄāĻžāωāύāĻ˛â€™āĻĄ
āϏāĻŽāϞ⧰ āĻŽā§‚āĻ˛ā§āϝāĻžāĻ‚āĻ•āύ
āϏāĻ•āϞ⧋
āĻ¸ā§āĻ•ā§ā§°ā§€āύāĻļā§āĻŦāϟ⧰ āĻĒā§āϰāϤāĻŋāĻšā§āĻ›āĻŦāĻŋ
āĻ¸ā§āĻ•ā§ā§°ā§€āύāĻļā§āĻŦāϟ⧰ āĻĒā§āϰāϤāĻŋāĻšā§āĻ›āĻŦāĻŋ
āĻ¸ā§āĻ•ā§ā§°ā§€āύāĻļā§āĻŦāϟ⧰ āĻĒā§āϰāϤāĻŋāĻšā§āĻ›āĻŦāĻŋ
āĻ¸ā§āĻ•ā§ā§°ā§€āύāĻļā§āĻŦāϟ⧰ āĻĒā§āϰāϤāĻŋāĻšā§āĻ›āĻŦāĻŋ
āĻ¸ā§āĻ•ā§ā§°ā§€āύāĻļā§āĻŦāϟ⧰ āĻĒā§āϰāϤāĻŋāĻšā§āĻ›āĻŦāĻŋ
āĻ¸ā§āĻ•ā§ā§°ā§€āύāĻļā§āĻŦāϟ⧰ āĻĒā§āϰāϤāĻŋāĻšā§āĻ›āĻŦāĻŋ

āĻāχ āĻ—ā§‡â€™āĻŽāĻŸā§‹ā§° āĻŦāĻŋāĻˇā§Ÿā§‡

## 🚀 Overview

**CubeEye** is an advanced Android application designed to solve 3x3 Rubik's Cubes. It leverages computer vision to scan a physical cube and provides an interactive, animated 3D guide to solve it using near-optimal moves.

## ✨ Key Features

### 📷 Smart Scanning System

* **Real-time Color Detection:** Automatically identifies cube face colors using the camera via the custom `ColorAnalyzer`.
* **Guided Scanning:** An intuitive UI overlay guides users through the process of capturing all 6 faces correctly.
* **Validation Logic:** The built-in `CubeValidator` ensures the scanned state is physically solvable before proceeding.
* **Manual Correction:** Includes a `ColorPickerDialog` allowing users to manually adjust colors if lighting conditions affect automatic detection.

### 🧩 Intelligent Solver

* **Kociemba Algorithm:** Integrates the famous Two-Phase Algorithm (via the *min2phase* library) to find near-optimal solutions, often requiring fewer than 20 moves.
* **Fast Local Computation:** Solves complex scrambles in seconds directly on the device without needing a network connection.

### đŸŽĨ Interactive 3D Guide

* **3D Visualization:** Features a fully interactive 3D render (`Cube3DView`) that accurately mimics the real cube's state.
* **Step-by-Step Animation:** Users can play, pause, and scrub through the solution moves at their own pace.

## 🛠 Technical Highlights

* **Modern Android Stack:** Built entirely using Kotlin and Jetpack Compose (Material 3).
* **Robust Architecture:** Follows Clean Architecture principles, utilizing MVVM patterns, Hilt for dependency injection, and Coroutines for asynchronous operations.
* **CameraX:** Implements a stable and efficient camera foundation for live preview and image analysis.
* **SceneView:** Utilizes the SceneView library for high-performance 3D rendering.

## 🐛 Known Issues / TODOs

* Optimize color detection thresholds to better handle extreme lighting conditions.
* Automate the integration of the "min2phase" library (currently included as manual source files).
āφāĻĒāĻĄā§‡â€™āϟ āϕ⧰āĻž āϤāĻžā§°āĻŋāĻ–
ā§Ļā§Ŧ-ā§Ļā§§-⧍ā§Ļ⧍ā§Ŧ

āĻĄā§‡āϟāĻž āϏ⧁⧰āĻ•ā§āώāĻž

āĻŦāĻŋāĻ•āĻžāĻļāĻ•ā§°ā§āϤāĻžāϏāĻ•āϞ⧇ āφāĻĒā§‹āύāĻžā§° āĻĄā§‡āϟāĻž āϕ⧇āύ⧇āĻ•ā§ˆ āϏāĻ‚āĻ—ā§ā§°āĻš āφ⧰⧁ āĻļā§āĻŦā§‡ā§ŸāĻžā§° āϕ⧰⧇ āĻ¸ā§‡ā§ŸāĻž āĻŦ⧁āϜāĻŋ āĻĒā§‹ā§ąāĻžā§° āϜ⧰āĻŋ⧟āϤ⧇ āϏ⧁⧰āĻ•ā§āώāĻž āφ⧰āĻŽā§āĻ­ āĻšā§ŸāĨ¤ āĻĄā§‡āϟāĻžā§° āĻ—ā§‹āĻĒāĻ¨ā§€ā§ŸāϤāĻž āφ⧰⧁ āϏ⧁⧰āĻ•ā§āώāĻž āĻĒā§ā§°āĻŖāĻžāϞ⧀ āφāĻĒā§‹āύāĻžā§° āĻŦā§āĻ¯ā§ąāĻšāĻžā§°, āĻ…āĻžā§āϚāϞ āφ⧰⧁ āĻŦāϝāĻŧāϏ⧰ āĻ“āĻĒā§°āϤ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āϕ⧰āĻŋ āĻ­āĻŋāĻ¨ā§āύ āĻšâ€™āĻŦ āĻĒāĻžā§°ā§‡āĨ¤ āĻŦāĻŋāĻ•āĻžāĻļāĻ•ā§°ā§āϤāĻžāĻ—ā§°āĻžāĻ•ā§€ā§Ÿā§‡ āĻāχ āϤāĻĨā§āϝāĻ–āĻŋāύāĻŋ āĻĒā§ā§°āĻĻāĻžāύ āϕ⧰āĻŋāϛ⧇ āφ⧰⧁ āϏāĻŽā§Ÿā§° āϞāϗ⧇ āϞāϗ⧇ āĻā§ŸāĻž āφāĻĒāĻĄā§‡â€™āϟ āϕ⧰āĻŋāĻŦ āĻĒāĻžā§°ā§‡āĨ¤
āĻāχ āĻāĻĒā§â€ŒāĻŸā§‹ā§ąā§‡ āĻāχ āϧ⧰āĻŖā§° āĻĄā§‡āϟāĻžā§° āĻĒā§ā§°āĻ•āĻžā§° āϤ⧃āĻ¤ā§€ā§Ÿ āĻĒāĻ•ā§āώ⧰ āϏ⧈āϤ⧇ āĻļā§āĻŦ⧇āϝāĻŧāĻžā§° āϕ⧰āĻŋāĻŦ āĻĒāĻžā§°ā§‡
āĻ…ā§ąāĻ¸ā§āĻĨāĻžāύ
āϕ⧋āύ⧋ āĻĄā§‡āϟāĻž āϏāĻ‚āĻ—ā§ā§°āĻš āϕ⧰āĻž āĻšā§‹ā§ąāĻž āύāĻžāχ
āĻŦāĻŋāĻ•āĻžāĻļāĻ•ā§°ā§āϤāĻžāχ āĻĄā§‡āϟāĻž āϏāĻ‚āĻ—ā§ā§°āĻš āϕ⧰āĻžā§° āĻŦāĻŋāĻˇā§Ÿā§‡ āϕ⧇āύ⧇āĻ•ā§ˆ āĻ˜ā§‹āώāĻŖāĻž āϕ⧰⧇ āϏ⧇āχ āĻŦāĻŋāĻˇā§Ÿā§‡ āĻ…āϧāĻŋāĻ• āϜāĻžāύāĻ•
āĻĄā§‡āϟāĻž āĻŸā§ā§°ā§‡āύāϜāĻŋāϟāϤ āĻāύāĻ•ā§ā§°āĻŋāĻĒā§āϟ āϕ⧰āĻž āĻšā§Ÿ

āύāϤ⧁āύ āĻ•āĻŋ āφāϛ⧇

This is our very first release!