About Rubik's Cube solver

The Rubik's Cube is an interesting puzzled that have baffled many a programmers and logicians for decades. While there are solutions and methodologies to solve the cube, the solving of a given cube is hard to come by. Thus the Rubik's Cube Solver is an application which reads a certain Rubik's cube and then provides a step-by-step animated guide to solving the problem. However, there are certain considerations that are required to build such a software and it may not seem as straightforward as it seems.

Previous Work Done

The previous work that has been done for the Rubik's Cube solver has been paramount in guiding the development of the current project. The most interesting is the Fridrich Solver that set up a competitive benchmark for the development of the new and improved android solver. The main difference lies in the methodologies of how the solving algorithm works.

Vision Statement

For Rubik's cube enthusiasts who wish to have their cubes solved step-by-step, the Cube Solver is an Android application that reads your Rubik's cube from the camera and produces a guide that will help you solve the cube within 3 seconds. Unlike the current Solving application present on Play Store, the Cube solver is lightweight and has a user friendly, and provides sequential user interface that gets the problem solved with complete ease.

Solving Algorithms

In course of completing this project, there were several solving algoriths that were tested in order to achieve the required results. Below is an overview of all the algorithms that were tested, and the algorithms that proved to be successful.

Fridrich Method / Layering

Essentially a human algorithm. This method works by solving a particular layer of the Rubik's Cube first. This method was tested but NOT USED.

Learn more

Brute Force algorithm

Brute Force algorithm means the reading of all possible moves that could be made and selecting the particular move that will be best suited. This method was fast but, on account of not having a sequential algorithm, could lead to deadlocks. Hence it was tested but NOT USED.

Learn more

Thistlethwaithe Algorithm

This algorithm pioneered a range of computer solving algorithms. Based on group theory, this algorithm follows a range of steps to achieve a predictable permutation. This method was tested but NOT USED.

Learn more

Kociemba 2-phase Algorithm

Mostly used by robots, this method was key in solving the Rubik's cube. Having a similar framework to thistlethwaithe, kociemba uses previously developed prune tables to achieve record time in bringing the solution. This algorithms was used.

Learn more