| ▲ | mcv 27 minutes ago | |
I'm working on Eland (Extensible Layered Algorithm for Network Drawing), a graph layout library strongly inspired by Elk, but a complete reimplementation. The reason I need a complete reimplementation is that existing graph layout libraries tend to be black boxes that you can't really fiddle with. If you want to tweak part of the algorithm, you have to fork it or write your own. With Eland, you can replace individual steps with your own implementation while keeping the rest of the algorithm unchanged. To ensure validity of the various steps, I've introduced contracts where every step specifies what properties it requires from the graph, which properties it promises to add, and which it invalidates, which I think is pretty cool. The reason I need all of this is that I'm working on a system to display and browse through data lineage graphs. I've noticed through experience that existing graph layout libraries don't do quite what I need, so I ended up building my own. | ||