Above is a snapshot image. Here’s the real thing.
It works for any size of cube from 2 x 2 x 2 up to 11 x 11 x 11. Actually, 11 is an arbitrary limit – the same code would work for any size of cube. Use the little + and – buttons up in the top left hand corner to select the size of the cube.
Turning a face or slicing a layer is pretty intuitive – just click somewhere on the cube, hold down the mouse button and drag.
Turning the whole cube around is the same but you have to double-click, hold the mouse button down on the second click and then drag.
There’s a bug in the turning of the whole cube which causes the orientation to jump occasionally. I think I can fix it by using quaternions to do the whole-cube rotation, but with the demise of Flash I’m thinking this would be a good project to migrate to HTML5 – and then I could patch in the quaternion stuff at the same time.
You can also use the keyboard to turn layers (there’s a sort of agreed way of doing this among speed-cubers, and the simulation mostly uses the agreed keys),