Hi! I'm Nicolas and I'm interested in information visualization, JavaScript and web standards.
I currently work as a Data Visualization Scientist at Twitter. I wrote PhiloGL, the JavaScript InfoVis Toolkit and V8-GL.
This is just a quick post to tell you that I started adding WebGL support to the JavaScript InfoVis Toolkit. Things are quite stable in the repo and if you have a WebGL enabled browser you can start playing around with some Force-Directed 3D demos in the project. I also made a short video of it:
WebGL support is important because:
Just like with 2D Canvas, this is something that will be implemented by major browsers in the next couple of years.
It's the right way to do 3D, since 2D Canvas is very inefficient and generally is where the bottleneck of 3D rendering happens.
If possible, WebGL can use the GPU to render graphics. That means that there's a way to radically scale the number of nodes being rendered by the visualizations. We can take advantage of this even for 2D visualizations, since they also can be rendered through WebGL.
I will continue working on integrating WebGL into the JavaScript InfoVis Toolkit by:
Adding WebGL rendering support to 2D visualizations.
Adapting the Event module to handle mouse/touch events on 3D visualizations.
Adapting the Navigation module to handle 3D navigation.
I'm aware that Chromium has been working on adding GPU support for 2D Canvas rendering, something that could be thought as the backend for what I'd be implementing in the front-end, but don't get confused, this is quite different for a couple of reasons: I don't like to depend on browser vendors if I can provide a feature that can target more users, and besides 2D Canvas remains a 2D drawing API, as opposed to WebGL that is more open to doing 2D and 3D and much more flexible in many other aspects (think shaders!).
I will try to find the time to do this, considering that I'm still organizing lots of things to move to California.
But there it is, an interesting roadmap, and a good amount of code pushed to start dashing items on the list.