This was something I put together back in late 2008. XNA application that models a Rubik's cube. XBox controller is used for changing the orientation of the cube and zooming out the camera, as well as choosing the selected row+column on the cube. One of the XBox controller sticks spins the selected row/column of the cube around (with vibrating feedback). Unfortunately I didn't get time to finish the project.
This is another example of how Matrices are so cool for representing positions and orientations. All of the "cubelets" get the position of the main rubiks + the cumulative net effect of every single transformation since the application started.