The Book of Trees is now available!      See other retailers
Home     About     VC Book     Stats     Blog     Books     Links     Contact  
Search the VC database:
    Multi-Domain Representation   < Prev | 39 of 70 | Next >
The materials shown on this page are copyright protected by
their authors and/or respective institutions.
Michael Schmuhl
Project Description:
graphopt is a graph layout optimizer based on the iterative application of laws of physics instead of using finite-pass algorithms. It is meant to become a replacement for graphviz.

Graphopt takes a graph description file as input and calculates the optimal layout of the nodes and edges. Graphs can be imported using a subset of the dot format from the Graphviz tools. There is also a module to export graphs in a Visio-importable format. The graph is displayed in a GUI where certain parameters can be tweaked and the result can be seen immediately. Each node is given mass and an electric charge, and each edge is represented as a spring. Node mass, electric charge, optimal spring length, and the spring constant are tweakable in the gui in realtime.

To accomodate very large graphs, an additional mechanism called layering was added. When a graph is loaded, nodes are assigned to layers based on their relative positions. During optimization, you can choose to hide any number of layers. Any nodes assigned to a layer lower than the selected layer are not only hidden, but neither their electric charges nor the forces of the springs attached to them are figured into the forces acting on the visible nodes. In effect, those nodes cease to exist, and a smaller graph is allowed to lay itself out without being constrained by an excessive number of nodes.

Comments (3):
Schmuhl's comparisons of graphopt to graphviz make graphopt look tempting as "a replacement for graphviz." graphopt seems to be getting a steady trickle of downloads on But is it really a suitable replacement? In limited circumstances, maybe. But be warned: (a) it is far less feature-complete than graphviz. No edge labels, no attributes to control presentation of nodes/edges/graphs. Simplicity is a plus, but for many uses some needed features will be lacking. (b) Apparently no development has been done for 4 years. There's no evidence of ongoing support and little documentation. (c) As far as I can tell there's no way to generate graphs without user interaction (which seems to require a *nix machine) ... but again, without documentation, you have to download and compile it to be sure. This cuts out our application, which needs to serve graphs automatically to web-browsing users. If anybody knows more about graphopt I would be happy to hear it.

Posted by Lars on Aug 6, 2007 at 4:17 PM (GMT)

graphopt was never intended to be a Graphviz replacement -- it's curious to me that this thought continues to propagate. As Lars noted, graphopt is far less feature-complete than graphviz. Its original goal was simply to provide optimized layouts for networks that I couldn't get meaningful visual representations out of with any other program I could find. It became fairly apparent early on that any available solution, graphopt included, could not produce a finished product, so the Visio export was born. Active development tapered off when Microsoft decided to do away with textfile imports. My intent was to take the next step and make graphopt work from the command line. If Visio ever supports textfile imports again, I will likely pick it back up and take that step -- or if anyone really wants it.

Posted by Michael Schmuhl on Aug 15, 2007 at 3:45 AM (GMT)

You could maybe polish your graphs up with Dia or Open Office draw instead of visio.

Posted by Alexander Fairley on Aug 28, 2007 at 7:48 PM (GMT)

*Note* Before you submit your comment, bear in mind there's no guarantee it will be seen by this project's author. In case you want to contact the author directly, please follow the provided URL.
Leave a Comment:
(We're looking for the best solution to avoid unwanted SPAM)
Manuel Lima |