No discredit to you; this is great work, but for me, personally: The world does not need more diagram editors.
Diagrams are fundamentally not the right tool for the problem I have.
The problem I have is that I have a technical system, for example, a network diagram, or an architecture diagram of a system or set of systems; and I need the data that represents that system, to be visualised in multiple diagrams, in such a way that you can have multiple views of the same data.
This means that when you make a change to the data, all of the diagrams are updated to reflect that change.
As an analogy to explain what I mean, consider a 3D model:
If you have a 3D model, you want to save it as a 3D model.
What you don't want, is to manually draw the way that model looks from 5 different perspectives; because if you alter the model, to say, add a new cube, or change the color of a face; you have to redraw every single diagram.
What would be actually novel, would be to allow you tag / label / whatever the components of your diagrams in some way, and they apply filters to the diagram to generate different views of the data, while maintaining one single master diagram.
I know, this is a hard problem, because layouts are fundamentally hard (if you've ever worked on layout engines you'll know exactly what I mean), and you end up looking like graphviz as soon as you try to use constraint solving to layout the elements in a diagram... I guess.
...but, at least it would be genuinely novel to try.
I don't really see much here that would, eg. get to use it over the many other indistinguishable diagram editors out there.
I know what you mean though; but it has to be IMO just enough data, that can then be tweaked by a human to help with the key purpose of such diagrams - human understanding.
like https://nominatim.openstreetmap.org/ but for IT technologies.
https://architecture-center.com/blog/125-archimate-metamodel...
The problem I experience is that the gap between raw data and an elegant diagram is really quite large. You mention layout problems. Hairballs and insane wiring is bad (and sometimes unsolvable without abstracting detail) but something even harder is that layout has strong semantic meanings, not too far from the order of words in a sentence. Even a small neat diagram can be really confusing or even misleading e.g. closely conceptually related things get spatially separated, the most important things get tucked into a corner, utter trivia looks like the main flow etc. Layout is a subtle language all of it's own.
In practice I find it requires one-off programs to inject case specific guidance to produce tolerable results e.g. styling certain things, grouping others, complex rules on what to ignore etc. You could wrap up some of these in a gui but it's so computational that it would be a retrograde step.
My workflow is something like this:
- define the elements at various zoom levels https://structurizr.com/share/1/explore/tree
- define the relations https://structurizr.com/share/1/explore/component-dependenci...
- create diagrams by selecting subsets of what was defined in the first two steps https://structurizr.com/share/36141/diagrams#SystemLandscape
...and the low level resource group names, networks, firewall rules, etc. so it would actually work.
Exactly the same data, but less detail in the former.
Then the same diagram again, only this time it shows the data flows for the BI team.
The nodes in the diagrams are not different, the connections between them are, and some nodes (eg. Resource groups and NSGs aren’t relevant to some audiences.
Why can’t I have one diagram with layers (I can) that changes the layout to still be a nice diagram when I toggle some layers off (not possible in basically any diagramming tool I’ve ever used).
I run into this kind of issue which detailed architecture diagrams all the time; someone modified a design (or system) and the documentation is instantly out of date in all places except the one they remembered to update.
Um... so tldr; if you’ve ever had to document the exact network architecture down to protocol and port between systems because you actually need that level of detail to make it work, but also want to surface the same data to other people who really don’t care what the different network ranges in dev/sit/prod are.
An overview of modern Javascript tools https://app.terrastruct.com/diagrams/788622353