Highlighted Project: Virtual Rubik's Cube
I've been an avid Cuber ever since I was in elementary school and given my coursework and focus, I decided to combine my longstanding hobby of Rubik's Cube with my software engineering skills to bring to life an interactive virtual Rubik's Cube that can take in user inputs to perform certain move and algorithms.

I also felt that it would be a fun challenge to implement a way for a program to generate a solution to a scrambled Rubik's Cube. To really apply some classic computer science principles, I used A* search with a custon Rubik's Cube heuristic function in C++ in order to search through the different possible moves of the Rubik's Cube to find the right moves to solve the Rubik's Cube. The program is not only robust and can reliably find a solution, but it's also fast. With a search space that is comparable to the total grains of sand on the planet, the program took anywhere from around a minute, all the way down to its personal record of 250 ms. That's similar to finding a precise grain of sand in the time it takes to blink.

Using Blender's 3D graphics to bring the cube to life and using Python to animate the cube, I was able to visualize the solution and play out the turns needed to replicate the solution. This project was a fun mix of computer science principles with 3D art that lives at the intersection of my creative hobbies and technical expertise.