During a semester-long computer science project I created what was essentially a three-dimensional bitmap paint program. But instead of drawing with 2D pixels, the program uses 3D voxels.

The most difficult part of the project was finding a way to map the two-dimensional motion of the mouse into three-dimensional motion inside the drawing space.

I did this by displaying a 3D crosshair when the user clicks inside the “canvas” (although it is not shown in this screen shot). If the mouse pointer traces along one of the cross-hair axes, that axis remains stationary while the other two move along it. In this way, the 2D mouse movements are constrained to movement along a single 3D axis.