SolveCube

The simplest method of solving a Rubik's Cube is to make random moves. While it may be fun to calculate how long that would take, there are better methods which are both faster and more efficient. We use Jaap Scherphuis's implementation of Thistlethwaite's algorithm to find a solution in around 150 milliseconds.

Ways of Defining the Cube

Each aspect of the program defines the cube in a different way. The GUI uses an unordered collection of arrays for each face. The cube module converts the GUI's output into facet notation (see Cube.print_facets). It then converts facet notation in the cubie (Singmaster) notation by matching the facets to a key set in a dictionary. A cubie is simply a block. Cubecompo.cpp inputs the cubies and spits out Singmaster solving notation. Arduino.py puts the solution into a machine readable format and then keeps track of the cubes position relative to its absolute orientation. It does not keep track of the cubies themselves.

A Solution

How to See in Color

The goal is the use a webcam and OpenCV to scan the cube. We first tried to use photocells and an RGB LED to scan the cube, but we ran into a number of problems.You can see what progress we made at https://github.com/jcoray/ColorSensor.

Authors and Contributors

Created by Jakob Coray @jcoray and Gabriel Norris @Labyrinth-Maker.

Support or Contact

Take a look at the README or shoot us an email.