I draw a lot diagrams with computers talking to each other. I'll draw one now that I'll use to help explain my motivation. So, 1 minute in Visio yields this:
Simple observations
What is desired
Can it be done?
GLEE
GLEE is a graph layout engine released by Microsoft Research in 2006. You can download version 1.0 it here. The demo project builds up a graph using GLEE and renders it via the extension methods inthe AutoVisioExt library.
An example
Here is a snippet of the source code to specify the diagram
----- MG.Node a = graph.CreateBox("a", 30, 40, ServerMasters.None); MG.Node b = graph.CreateBox("b", 30, 40, ServerMasters.Server); MG.Node c = graph.CreateBox("c", 30, 40, ServerMasters.WebServer); MG.Node d = graph.CreateBox("d", 30, 40, ServerMasters.None); MG.Node e = graph.CreateBox("e", 30, 40, ServerMasters.FileServer); MG.Node f = graph.CreateBox("f", 30, 40, ServerMasters.Server); graph.CreateEdge(a, b, false); graph.CreateEdge(a, f, true); graph.CreateEdge(b, d, false); graph.CreateEdge(d, a, false); graph.CreateEdge(e, a, false); graph.CreateEdge(c, a, false); graph.CreateEdge(f, c, true); graph.CreateEdge(e, c, false); graph.CreateEdge(d, f, false); -----
The Output
Very nice. Given the limited data provided, GLEE did a fantastic job in the layout of the nodes and the curves.
Planned improvements
Issues
A Fantasy of Axonometric Projection