
Rubik's Cube Solver
This project is an interactive 3D implementation of the Rubik's Cube puzzle with an automated solving workflow based on the CFOP method. Using Three.js for realistic 3D rendering, this application allows users to manipulate a virtual 3x3 Rubik's Cube while the automated solver orchestrates systematic move sequences to reach the solved state. The workflow pipeline identifies cube positions, calculates optimal movement plans, and executes rotations through an event-driven architecture.
Features
- Automated Solving Workflow: Orchestrated solver pipeline based on the CFOP method (Cross, F2L, OLL, PLL) with sequential stage execution.
- State Recognition Pipeline: Automated identification of cube state, triggering appropriate solving algorithms based on current configuration.
- Manual Cube Manipulation: Intuitive controls for rotating cube faces and layers with mouse interface.
- Event-Driven Architecture: Move sequences triggered by state changes with real-time visual feedback.
- Position Recognition: Automated identification of edge and corner cube positions and their respective colors.
Simplified Algorithm process
- Cube State Recognition: Identifies the positioning of cubes (edges and corners) and their associated colors.
- Movement Planning: Calculates the sequence of moves required to reach the solved state.
- Transformation Calculation: Determines how to transport cube pieces from their current position to target positions.
- Position Indexing: Maps the relative positions of cubes on each face using cube indices.
- Edge and Corner Solving: Special handling for edge and corner pieces to ensure correct positioning while maintaining the global color scheme.
Stack
• Frontend
- Three.js - A progressive JavaScript framework for building user interfaces.
- [Three.interaction] - Interaction extension for Three.js.
- Bootstrap - Responsive UI components and layout framework ensuring compatibility across devices.
- jQuery - JavaScript library for DOM manipulation and event handling.
- Vite - Next generation frontend tooling for faster development and builds.