Hardware hackers Ben Katz and Jared Di Carlo have smashed the previous record for solving the Rubik's cube robotically. Their machine solved the puzzle in 0.38 seconds—a 40-percent improvement over the previous record of 0.637.

"We noticed that all of the fast Rubik's Cube solvers were using stepper motors and thought that we could do better if we used better motors," Di Carlo wrote in a blog post.

A custom-built motor controller allows a single turn of the Rubik's Cube to be completed in around 10 milliseconds. With a a typical Rubik's Cube solution taking 19 to 23 turns, that should allow a cube to be solved in around 0.25 seconds—but the pair say the current iteration of the machine makes a move every 15 milliseconds instead.

"The machine can definitely go faster, but the tuning process is really time consuming since debugging needs to be done with the high-speed camera, and mistakes often break the cube or blow up FETs," Katz wrote on his blog. "For the time being, Jared and I have both lost interest in playing the tuning game, but we might come back to it eventually and shave off another 100 ms or so."

While a human player would be inclined to loosen the cube up to make it easier to turn, Katz says they found the opposite approach works better for robot solving.

"When the cube is loose (like it would be if a person were trying to solve it fast), the outer faces just cam outwards when you try to turn the center faces quickly," Katz wrote. "It took tightening the cube way past what intuitively felt appropriate in order to stop the camming action from happening."

To detect the current state of the cube, Katz and Di Carlo acquired a pair of Playstation 3 Eye webcams for $7 each. They positioned them at opposite corners of the cube, allowing each camera to observe three faces.

The cameras had trouble distinguishing red and orange faces, so they painted the orange faces black to make them stand out better.

"The software identifies all the colors, builds a description of the cube, and passes it to the min2phase solver," Di Carlo wrote. The solution is then sent out via a serial cable to the six motors, one for each face of the cube. The whole process—from capturing the image to sending the instructions to the motors—takes around 45 milliseconds.

There's even more detail on the project on Katz and Di Carlo's blog posts.

Listing image by Ben Katz