A computer-vision Rubik’s cube solver that runs in your browser

Why I created this project
There are a lot of Rubik’s cube solvers on the web. However, most of them either have instructions that are hard to follow or are apps that require you to input colors manually.
My goal is to prove that problems are solvable once you have the right ontology model and the technology to run it.
If you have a scrambled Rubik’s cube somewhere at home, now is the right time to make it make sense: vladflaks.com/cube
How it works
It’s not a tutorial; it’s problem-solving.
- Roll your cube in front of the camera, and its shape will be recognized automatically. It can be an NxN cube where N is from 2 to 5, a pyraminx, a megaminx, etc.
- Keep rolling, and the colors and state will be recognized automatically as well. No manual inputs, no semantic layer tax (if you know what I mean).
- Feel free to adjust every step. You are the human in the loop, and you control how it goes.
What makes it unique
No data is sent to a backend; everything works in your browser. No ads, no paywalls.
Contribute
Thank you to Lucas Garron
Lucas GarronMain author of cubing.js, the library for twisty puzzles, and of Twizzle. Senior member of the WCA Regulations Committee and a member of the WCA Software Team. and Tomas Rokicki
Tomas RokickiProgrammerOne of the four people who proved in 2010 that every Rubik’s Cube position can be solved in 20 moves or fewer, using about 35 CPU-years of Google’s spare compute. Wrote twsearch, a solver for twisty puzzles. for cubing.js, including Tomas’s PuzzleGeometry, and to Chen Shuang
Chen ShuangAnt GroupWrote csTimer, the open-source web timer and scrambler for speedcubers, and min2phase, a Java implementation of Kociemba’s two-phase solver. for min2phase, the 3×3 solver inside it.
If you run into any issues, open vladflaks.com/cube?debug=1, record your session and share the JSON file you get. You’ll find my email in your subscription confirmation.