Learning three.js and webgl and javascript the hard way.