Three.js is a great library. I used it for BrainBrowser, the neurology project I mentioned in the post. But I disagree with the attitude that because a great library exists to do something, you shouldn't learn how to do that thing yourself. It's like saying that because jQuery exists, web devs shouldn't learn how to manipulate the DOM directly. Part of my reasoning is that I think using these libraries effectively for anything non-trivial requires an understanding of how they work. The other part is that the more people understand how an open-source library works, the more they can contribute and make it better.