Rubik's cube solver

  • Development

  • Image Processing

  • Machine Learning

Mentors :

  • Chaithanya Naik Mude

Mentees :

  • Amol Girish Shah
  • Manas Jain
  • Rohinee Joshi

Rubik’s cube is one of the most fascinating 3-D combination puzzles we encounter. It is simple to understand the game, given a permutation we need to reduce the cube to a single goal state by rotating it. In this project, we will accomplish solving this cube with as minimum rotations as possible using the ideas of reinforcement learning.

There will be three modules that need to be completed.
1. Given the details about the faces of the cube, solve the puzzle in the back-end
2. Given an image, extract the details about the faces of the cube using various image processing and possibly ML techniques
3. Develop an user interface for the above solution


Tentative Timeline :

Week Work
Week 1 Learn python and python-on-android, play with Rubik’s cubes to get a clear grasp about the problem. Try pycuber, a python package for dealing with Rubik’s cubes, which helps in creating graphical user interface.
Week 2 Go through the available literature on the problem. Understand basic algorithms and concepts of Reinforcement learning pertaining to the problem.
Week 3 Try out various Q-learning, Deep Q-learning examples and MCTS.
Week 4 Implement Deep Q-learning and MCTS for our problem.
Week 5 Measure performance against benchmark and hyper-parameter tuning.
Week 6 Buffer week to finish up with documentation
Week 7 Given an image taken from a good viewpoint, extract the details.
Week 8 Create a graphical user interface to upload the images of the cubes and return with an animation of the solution.
Week 9 Buffer week to finish up with presentation and documentation