4 ms·
I, too, have been looking for a tool that will generate clean, styleable structural diagrams, but I haven't found the perfect one yet. The best I've found is M
by lobster_johnson 10y ago
I, too, have been looking for a tool that will generate clean, styleable structural diagrams, but I haven't found the perfect one yet.
The best I've found is Mermaid [1], which has a Graphviz-like grammar. Unlike Graphviz, it can generate very clear, orthogonally laid-out diagrams with minimal effort, and it works better because it's designed for flowcharting (it supports classic flow diagrams, too). On the other hand, because it was designed for flowcharting, the automatic layout can generate less reasonably clutter when you have many entities with many connections. In particular, if you tried to generate the OP's diagram, I suspect it would accidentally lay out the boxes in a way that made some arrows cross — but I didn't actually try.
I've been considering writing a better tool for some time, but the layout is a hard theoretical nut to crack, and I'm not sure I would be up for it. The best idea I've had so far is to use genetic algorithms with some a fitness measurement that promotes cleanness (overlapping lines, density, horizontal/vertical extent and so on).
[1] https://knsv.github.io/mermaid/ https://knsv.github.io/mermaid/
- 15155 10y agoTry https://www.omnigroup.com/omnigraffle https://www.omnigroup.com/omnigraffle (not affiliated, it just does this very well)
- lobster_johnson 10y agoThat's a manual tool, though. I personally use Illustrator whenever the need comes for something that is to be shiny, but my desire is for an automatic layout tool that can be driven from a DSL, Graphviz-style. Aside from efficiency (lots of diagrams for documentation or blogging), one benefit would be the ability to enforce a single theme (font, colours, etc.) across many diagrams, and push out new versions by tweaking the styles. Illustrator can't do that, and OmniGraffle is very weak at it. I tried using Sketch, which has a support for reusable symbols, but it's pretty terrible at it.