Using C and OpenGL, I created a 3D Rubik’s Cube with the ability to “play” the Rubik’s cube by rotating any face, generate a random sequence of moves to shuffle the cube, rotate the cube using the mouse, and solve the cube. In addition to these basic functions, the project includes animation when any of the faces are rotated, and it has a basic lighting model to make the cube look more realistic.