Hi Andrew

I did commercial work on mind-map like tools in the 2000's, and have a soft
spot for graph and tree visualisation.

Example: https://www.researchgate.net/figure/221249211_fig1_Fig-1-
Example-hi-tree-laid-out-in-the-standard-layout-style-It-shows-the-logical

I didn't work on the deep layout algorithms, but have some handy peripheral
knowledge.There's a tension between the manual effort of the interactive
tools and more automated layout algorithms. In my ideal world the
auto-layout does most of the heavy lifting, but the layout doesn't jump
around too much in interactive work, and the user can easily play with
styles, aesthetic criteria, and nudge the layout to some extent. It's not
easy to get all at once!

In practice, I tend to settle for GraphViz for my occasional
graph-diagramming needs, but would welcome a Rackety competitor. My sense
is that it may be feasible to do better for specific needs, and challenging
to beat GraphViz as a general purpose tool.

Here's a nice introduction to the evolution of tree-layout algorithms
<https://llimllib.github.io/pymag-trees/>, explaining how aesthetic
criteria were gradually captured in a series of principles for layout
algorithms to satisfy:

*Principle 1*: *The edges of the tree should not cross each other.*

*Principle 2*:
*All nodes at the same depth should be drawn on the same horizontal line.
This helps make clear the structure of the tree.*

*Principle 3*: *Trees should be drawn as narrowly as possible.*

*Principle 4*: *A parent should be centered over its children.*

*Principle 5*: *A subtree should be drawn the same no matter where in the
tree it lies.*

*Principle 6*: *The child nodes of a parent node should be evenly spaced.*
The author of the first reference, Kim Marriott, is an active academic in
the area of constraint-based graph and tree layout. I collaborated with him
and his student Peter Sbarski on the above-mentioned commercial work. Kim's
a good source.

Dan

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to