Software Development Process

The development of this application is divided into the development of three different aspects of this project: Cube Solver, Cube Reader and the Virtual Cube.

Platform

The given software is 5.41 MB in size and has a minimum SDK of 15 while the Target SDK is 23.

Software Design Considerations

Beginning with the functional requirements, the Rubik's Cube Solver was divided into 3 particular tasks, which mainly influenced the design decisions of the Project. However, a change in the business requirements led to shifts from in the design of the Model-View-Controller.

This project saw several changes in design decisions as can be made out from the above outline. Changes moved from demonstrating an interface based "Virtual Cube" object-oriented, to simple object-per-activity model, as can be seen in the image below.

Components of this project

The given project made use of several Artificially Intelligent Tools: Computer Vision for the detection of the Cube, 3D Object Animation and Game solving algorithms. To use them in Android Studio, the following tools were used:

Computer Vision

OpenCV 3.0.0 was used in order to detect the Rubik's cube sides and faces.

Learn more

Solving Algorithm

Kociemba library was used and modified for an android device so as to be able to get a solution in record time,

Learn more

3D Object Animation

The 3D Rubik's Cube was supported with the help of OpenGL and AnimationCallBack.

Learn more