I've had indeed various integration issues with my Java application, despite the fact I use Processing so I can switch to the 100% software implementation (to avoid issues regarding native libraries and OpenGL). Typically, I've had, and still have issues on Macs, because of the variety of JVM versions on this platform.
I tried a couple of pure-web solutions:
- Processing.js (pixel-canvas, great for shading, Processing compatibility)
- RaphaelJS (SVG-canvas, great for curved edges and flash-like animations, by example)
- WebWorker (safe multi-threading for JavaScript) for data processing (like spatialization or filtering)
- First, about the WebWorkers, this is an interesting way to achieve good processing performances, without blocking the interface. I've used them a bit and it works as expected (these real threads that do not share states but instead do exchange JSON messages, catched asynchronously by JS callbacks), no performance issue here.
- Now, about Processing.js and Raphael : they have a cool "web-oriented" design. You can control them from your favorite JS framework (like JQuery), which means great flexibility (ajax, DOM event-based programming). But unfortunately, canvas rendering is slow. It just don't scale (to the graph size, to the screen resolution..).
- On the other side, as Mathieu pointed it out, there is WebGL. Although it is still in its infancy, is an interesting emergent technology, that could be used for a cutting edge web-based Gephi. Creating such WebGL-based graph visualization library could be a great strategical investment.
- Finally, about SeaDragon AJAX : I agree with Mathieu on it. I used it too in the past. It is a lightweight solution, the same kind of technology used by Google Maps. Yes, it is lead by Microsoft, but it is still alive, and works on every platform. It can show very large graph, and could be extended with layers and JavaScript animations or events. This is probably the best short-term solution.Statistics:Posted by jbilcke — 07 Jul 2010 14:58
]]>