aboutsummaryrefslogtreecommitdiff
path: root/math/py-grandalf/pkg-descr
blob: 0c0e04ac268c3875de076aa06256d5b7e7bc04d7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Grandalf is a python package made for experimentations with graphs and drawing
algorithms. It is written in pure python, and implements two layouts: the
Sugiyama hierarchical layout and the force-driven or energy minimization
approach. While not as fast or featured as _graphviz_ or other libraries like
_OGDF_ (C++), _GDToolkit_ (C), _tulip_ (Java), it provides a way to draw and
navigate graphs no larger than thousands of nodes, while keeping the source code
simple enough to make it possible to easily tweak and hack any part of it for
experimental purpose. With a total of about 1500 lines of python, the code
involved in drawing the Sugiyama (dot) layout fits in less than 600 lines.
The energy minimization approach is comprised of only 250 lines!

Grandalf does only two not-so-simple things:
* computing the nodes (x,y) coordinates (based on provided nodes dimensions, and
  a chosen layout)
* routing the edges with lines or nurbs

WWW: https://github.com/bdcht/grandalf