For example there was a time when i wanted to write a Java3D application of a Rubik's cube, but Java3D wasn't ported to Linux yet. With my math background i was able to write my own implementation. Admittedly it was slow, but it did all the scaling, rotations, translations, and polygon rasterizations.
http://derocher.org/~brian//trackback.php?ParentId=997