Integer programming based layout engine for graphs
Since Maikel van de Lisdonk/ OCWG : Open Canvas Interchange Format I been thinking it might be possible to write a generic graph layout engine. I also been thinking that historically graph layout engines concentrate on the spatial constraints (including grids), but now we have LLM/embedding vectors it might be fruitful to integrate semantic similarity into the objective function so nodes representing similar things are near to each other as well.
I'm very interested in new graph layout ideas.
One idea I had was to show the same infinite canvas in a projective 3D view, so that the user can use WASD keys to navigate the graph like games. Nodes would be buildings, edges would be roads. Nested nodes would require entering the building etc. Perhaps it would invoke humans' ability to memorize things spatially better than plain 2D canvas.
In code flow canvas I dont have auto-graph layout yet (but it is on my wish-list).. I do have (limited) keyboard navigation with the tab-key though
Layout algorithms also need to take z-position into account. For eg, child nodes should be drawn on top of the parent node, to ensure that they are always visible. I ran into a bug yesterday when I added a keyboard shortcut for inserting a parent in the parent hierarchy.
what I liked about the grids is they had a fairly straight forward objective function which is extensible userinterfaces.aalto.fi/grids/resources/GRIDS-Formulation.pdf