So far all I can say is that I'm absolutely floored (in a good way) by three.js. The documentation is 9/10 which is saying a ton. So far, as someone who generates a lot of content in Illustrator, I'm a little distraught by the lack of proper SVG instancing in the WebGL rendering library. I lost a solid day on that. There are other rendering engines, Canvas and SVG-native, but none of them have the richness of OpenGL; shadows, reflection maps etc. I spent a big part of the summer building an OpenGL app in python only to finally accept that python isn't the tool for it. I'm excited to work using three.js because it lets me experiment OpenGL (well, WebGL) in a highly portable environment.

I'm currently using the dev version of three.js which can be found at:

For the past several years, I've been looking at how to use 3d engines (even home-rolled) for displaying static hierarchical data. I found that the best responsiveness so far was using OpenGL in OBJC apps. The disadvantage is OBJC itself, which is painful to learn as well as being platform-specific. I've looked at/developed in Python because there are utilities that can export Python apps to both Apple and PC platforms but the way Python uses memory really started to get in the way. In many ways, native applications will always offer better performance than non-native. While I wait for that reality to change, I'm going back to browser-based development.

Current work in progress can be found here:

This is a filesystem view of the site's public asset folder. The folder is traversed and exported as JSON by a python-wsgi app on the backend. That blob of json (a flattened nodal representation of the folder) is then displayed using objects in three.js.