An app that allows the user to play around with a virtual Rubik's cube. In addition, there is an algorithm implemented to solve the cube step by step. If needed, A user is given the option to scan in a physical Rubik's cube and use the algorithm to solve it. This is written in Java with JavaFX. The algorithm avarages about 140 moves.