-
Notifications
You must be signed in to change notification settings - Fork 4
Home
Welcome to the wiki of NETVisualizer, an Open Source network and graph visualization framework based on OpenGL.
The structure of the project is kept simple on purpose. The main functionality is contained in the class library NETVisualizer. The architecture is shown in the following diagram.
In addition to the main rendering library, the project contains a parallel implementation of the Fruchterman-Reingold graph layout algorithm, which is included in the class library NETVisualizer.Layouts.FruchtermanReingold. The main library NETVisualizer contains an abstract class LayoutProvider which serves as the basis for implementing your own layouting scheme. Furthermore, you can use youw own implementation of a network or graph (static or dynamic, directed or undirected, weighted or unweighted, based on adjacency matrix or linkes lists). It just has to implement the very simple interface NETVisualizer.IRenderableNet.
The use of the library is demonstrated in the command line exectuable NETVisualizer.Demo. The project contains a maximally simple (and inefficient) network implementation which also allows to generate a random graph for test purposes. Creating a random network, firing up an interactive and asynchronous OpenGL visualization, layouting the graph in parallel and modifying the network while the visualization is running is as simple as follows:
SimpleNetwork net = SimpleNetwork.CreateRandomNetwork(300, 1000);
Renderer.Start(net, new NETVisualizer.Layouts.FruchtermanReingold.FRLayout(10));
Renderer.Layout.DoLayoutAsync();
net.AddEdge("a", "5");
net.AddEdge("a", "42");
Have fun with the library and feel free to contact me for feedback and questions.
