Results

We visualized the real-time 3D cube, the color inputs for all six faces, and the final solving process on VGA. The system is interactive and responsive due to the dual-core split, though occasional flicker can occur due to asynchrony.

Live 3D view Face input UI Solver playback

State 0: Live IMU-Tracked 3D Visualization

Start state
Start state (live 3D cube) — images/0_start_state.png

States 1–6: Face-by-Face Color Entry

The user enters one face at a time (UP, FRONT, BACK, LEFT, RIGHT, DOWN). The 3×3 grid is filled using color buttons, with a preview shown at the bottom to reduce input mistakes.

UP input
UP — images/1_input_up.png
FRONT input
FRONT — images/2_input_front.png
BACK input
BACK — images/3_input_back.png
LEFT input
LEFT — images/4_input_left.png
RIGHT input
RIGHT — images/5_input_right.png
DOWN input
DOWN — images/6_input_down.png

State 7: Solver Playback (Step-by-Step)

After all faces are entered, we compute a solution using IDDFS over a restricted move set, then display and apply moves one-by-one. Each press of NEXT applies exactly one move from the saved sequence.

Solve step 1
Step 1 — images/s1_solve_1.png
Solve step 2
Step 2 — images/s2_solve_2.png
Solve step 3
Step 3 — images/s3_solve_3.png
Solve done
Step 4 — images/s4_solve_done.png

Notes

Execution is fast and interactive, and concurrency is strong due to the two-core design. However, because of asynchrony, the display can sometimes flicker.