Deep dive into diagram layout engines: Minimizing hierarchical edge crossings
terrastruct.com
terrastruct.com
Regarding improvements to crossing minimization, we're fans of Brandes and Köpf, "Fast and Simple Horizontal Coordinate Assignment" GD2001 that guarantees linear time and at most two bends per edge. (If anyone would like to implement this in Graphviz let us know!)
Regarding introducing additional constraints to address the problem that the algorithm "doesn't understand the sensible or hierarchical relationship between the blocks in my diagram" we're fans of Yoghourdjian, Dwyer et al, "High-quality ultra-compact grid layout of grouped networks" from IEEEVIS 2015. It looks quite difficult to implement. The figures in the paper took several minutes to generate and probably involved cutting and pasting between several tools.
A different approach was taken by Dwyer, Koren and Marriott, in "IPSep-CoLa: An Incremental Procedure for Separation Constraint Layout of Graphs" IEEEVIS 2006 where they introduce a kind of layering or asymmetry into force-directed energy models. This is implemented in Graphviz neato -Gmode=hier
So I think a complete genealogy tree would be impossible to represent in 2d without crossing but most genealogy trees aren't that exhaustive so there must be an algorithm that creates a good representation when it is possible.
The reality is like that xkcd meme of some random dev in midwest US supporting critical infra with their open source efforts. GitHub natively runs Mermaid which runs Dagre, which has been unmaintained for many years now because the one guy working on it left and nobody's touched it since, despite many holes in the algorithm.
ELK has been continuously worked on by a research team for over a decade, and we can produce better looking layouts just by specializing for different cases. The space is so large. I hope that a great FOSS open-source layout engine comes along, I'll gladly integrate it into D2, but I don't fear it'll make TALA moot.