From a Pre-Teen Mind, a Robot That Solves Rubik's Cube

A self-taught programming prodigy joins the ranks of technology buffs applying digital systems to the ultimate analogue puzzle
Rubik's Cube


When the Rubik's Cube burst on the scene in the U.S. in 1980, it sparked a fascination with the puzzle that continues to this day, even among fans born decades after the Cube's debut. Except that, instead of humans attempting to "speed cube" to a solution in less than 10 seconds, many Rubik's Cube fans today build robots to do it for them. This A.I.-enthusiasm offers the added challenge of not only solving the puzzle but also of creating a robot that can physically manipulate the cube based on that solution.

For 12-year-old Connor Abbott, building a Rubik's Cube-solving bot gave him a chance to practice his computer programming skills and learn from other accomplished bot makers. Abbott's bot also served as a competitor to challenge 10-year-old brother Ryan's speed-cubing prowess. Both boys were introduced to the puzzle by their father, Michael Abbott, a General Electric Money executive and former IBM Research engineer.

Connor Abbott got the idea for his robot from reading about Cube enthusiasts who had built bots to solve the puzzle using the Lego Mindstorms NXT kit. "I said, 'Hey, I have an NXT kit,'" says Connor, a native of New Canaan, Conn., who will be in the eighth grade when he returns to school this fall. For the uninitiated, Mindstorms is a Lego product that includes most of the components needed to build a robot, including the company's trademark bricks as well as three servo motors, four sensors (ultrasonic, sound, touch, and light), gears and axles.

"At first I didn't know [Mindstorms] could be used to solve a Rubik's Cube because I didn't think it had enough motors," Connor says. This changed last year when Connor discovered a robot via the Web that was built from a single NXT kit by Daniele Benedettelli, 24, a programmer studying robotics and automation at Italy's University of Siena. (Benedettelli's bot can be seen at his Web site.) "People are amazed by the fact that a Lego (thus a toy) robot can solve such a brainy puzzle so easily," Benedettelli says, adding that Rubik's Cube has come to be seen as "the" symbol of complex problems that can be solved by applying "intelligence and dexterity."

Of course, the robot cannot solve the puzzle without explicit instructions on how to do so. For the software, Connor used a freely available cube-solving program called Optimal Cube Solver in the Quarter Turn Metric (OPTIQTM) created by Herbert Kociemba, 55, a mathematics and physics teacher from Darmstadt, Germany. Kociemba expressed surprise at Connor's choice to use OPTIQTM, given that the program can take anywhere from minutes to hours to find the "optimal" solution for solving a Cube, depending on how many times the puzzle has been twisted and turned. The program can, however, compute a solution "in a reasonable time" if the puzzle is scrambled using 19 moves or fewer, he says.

This worked just fine for Connor, who says he wrote his own program using the C++ computer programming language to get the OPTIQTM solver to work with his system. Connor's robot, like Benedettelli's, uses a Web camera to read the Cube's different colors (and their configuration on the scrambled Cube), data that is then sent to the puzzle-solving software.

Cube enthusiasts have been building robots for years to solve the puzzle, and it is common for them to learn from one another's work. One of the earliest examples of a Rubik's Cube-solving bot was created by Jonathan Brown, 45, an archaeological conservator at Chicago's Field Museum, in 2001 using an earlier version of Mindstorm.

Although Connor benefited from the work of several other Cube enthusiasts as well, his programming abilities have raised eyebrows. Connor "was quite evidently a masterful C++ programmer," says Robert Thompson, a 19-year-old University of Delaware sophomore studying computer science who taught Connor about Java during a weeklong computer camp earlier this month. "He started right off talking about things in C++ that they haven't even covered in my college courses."

How did Connor's robot do in its showdown against Ryan? Despite Connor's hard work, the bot's best time was 90 seconds, good enough to beat Ryan only once out of five times. Ryan's best time during the head-to-circuit competitions was 75 seconds, although Connor says his brother has since trimmed that to 45 seconds. (A video of the robot's victory is available via YouTube, as is a video of Ryan's revenge.)

Connor, who taught himself to program by reading books such as Sams Teach Yourself C in 21 Days, written by Bradley Jones and Peter Aitken, is hardly discouraged. He is now writing his own Cube-solving software to eventually replace Kociemba's in his system. The reason "I want to use my algorithm instead of somebody else's is because of it's complexity," he says, "and being able to say that I wrote a version of it."

Rights & Permissions
Share this Article:


You must sign in or register as a member to submit a comment.
Scientific American Special Universe

Get the latest Special Collector's edition

Secrets of the Universe: Past, Present, Future

Order Now >


Email this Article