## Inspiration

In sophomore year, Arnav and Dhruv attempted to build a Rubik's Cube solver from scratch. Using two-dimensional arrays they were able to build a foundation for their ideas. However, they were not able to refine their ideas and address the profound drawbacks of using two-dimensional arrays. Now, with help from Hrishi and Akshit, the team was able to succeed.

## What it does

The program creates an interactive cube with the use of matrices, mapping out each piece of the cube. The program then shuffles the cube. The user is then able to manipulate the cube and rotate its sides. This interactive cube allows users to test their knowledge on Rubik's Cubes and practice on an online interactive cube in which they can use any time without the use of an actual cube. Users will be able to solidify their skills on the Rubix Cube so that when they use an actual cube they are experienced.

## How we built it

We utilized matrix math implementing a 2D rotation matrix to create an interactive Rubix Cube. We created a function to shuffle the cube to a random assortment, in which the user would be able

## Challenges we ran into

At one point in its construction, launching the turning mechanism of the cube enabled the program to remove an entire side from the cube making it into a 2 x 3 x 3 cube instead of a 3 x 3 x 3 cube. Needless to say, that required quite a bit of debugging.

## Accomplishments that we're proud of

We are proud of the fact that we were able to complete such a difficult task in such a short amount of time. Of course, it helped that we had looked into this project before, but all code was more or less written in the last 24 hours.

## What we learned

In this project, we learned how to implement matrices into our Java code. We also learned how to use the processing tool to create a digital render of our cube.

## What's next for Interactive Rubik's Cube

In the future, we aim to create and implement an algorithm that will allow the cube to be solved, regardless of its current orientation. Users should also be able to input their own Rubik's Cube into the program, and the program should output the most efficient solution to the cube.