Originally by David DeSandro Modified and toyed with by Keith Baker
Project home: github.com/desandro/3dtransforms
Fork home: github.com/keif/3dtransforms