Gephi is a popular network analysis open source software written in Java. This talk about its future is a joint effort by the Gephi dev team and Javascript experts to explore the issues and opportunities of web technologies for large-scale network analysis and visualization.
Gephi relies on the Swing library for the general user interface plus an OpenGL insert for network visualization. This choice made more than 10 years ago was one of the very few options available for a multiplatform software able to harness GPU power for displaying millions of nodes and edges. Despite a number of issues, the situation was considered relatively satisfying.
However two long-term trends force the Gephi dev team to reconsider its future: computer infrastructures are moving away from true multiplatform software to web-based interfaces, and Java is moving away from user interface development to server-side computation. Most if not all UX developers agree that web technologies are better supporting modern UX design than the Java ecosystem. However the specific use of OpenGL puts Gephi is a special situation. We know from user surveys that scaling up your network is key to most users. No Gephi user has only small networks, and many of them has tried to analyze networks with hundred thousands nodes or more. This use case is far from usual in the world of web technologies. Is WebGL up to the task of visualizing such amount of objects?
We used existing Javascript libraries to build a stack comparable to the basic features of Gephi. Graphology was used as a Javascript equivalent of Gephi's GraphStore library, and a tweaked version of Sigma JS WebGL renderer was used as display engine. We used this prototype to benchmark the performance of web technologies for rendering large graphs in OpenGL.
In parallel we explored the possibility to keep the project in the Java world but stop relying on the JOGL library that is at risk of being less and less maintained. In this mind we developed a new OpenGL visualisation engine prototype, with a better code base and better performance than current implementation.
In this talk we will showcase both the Javascript proof-of-concept and the new Java prototype. We will present state of our reflections and the results of our benchmarks. Of course technological choices are not only (and even not primarily) a question of performance, and we will take the time to discuss the various issues and limits we met in this exercise of prospective technological exploration. we will conclude with a broader reflection on how Gephi as an open source project tries to adapt to global technological changes.
We expect this talk to be useful to Java and/or Javascript developers/engineers dealing with graphs.
Eduardo Ramos Ibáñez is lead developer of Gephi
Mathieu Jacomy is co-author of Gephi
Alexis Jacomy is co-author of the Sigma JS library
Guillaume Plique is author of Graphology and co-author of Sigma JS