Canvas elements respect other elements in their arrangement / Alternative logic for arranging elements on the canvas

Use case or problem

As I wrote earlier in a couple of my comments:

… one of the drawbacks of canvas is that elements do not take into account other elements in their arrangement, which makes canvas look less visually presentable, less visually ordered, and, as a result, the information visualized on it becomes harder to read and understand.

My suggestion is that canvas elements should take other elements into account when arranging themselves.
As is clear from my two comments above, this applies primarily to laying out their paths with arrows and the placement of text on the arrows themselves. But perhaps this is relevant for something else as well, which I haven’t come across yet.

In general, I’d like to see a more thought-out… logic of behavior? of canvas elements, - that everything was visualized in such a way that nothing overlapped anywhere, the whole canvas looked as visually clean, neat and orderly as possible, - no arrows stretching through all canvas elements throughout the whole canvas, - no overlaps.

I’m not sure if this will contribute much to a better understanding of my feature request, but as an example I’ll attach images of one of my canvases in progress, on which I’ve marked the “problem areas” in red.

A good example of the problem of canvas elements not taking canvas elements into account when arranging them, is in the context of arranging text on arrows:


And I will also attach some examples of good and bad paths, where the good paths are implemented via Reroute Node, a proposal for implementing which is already exist: Canvas > Using dot to make complex arrow connections in Canvas :

Current workaround (optional)

Related feature requests (optional)

and not a feature request, but GitHub - felixchenier/obsidian-optimize-canvas-connections: An Obsidian plugin that declutters a canvas by reconnecting notes using their nearest edges


Thanks, and I apologize if this is a duplicate of an existing feature request, but I couldn’t find an identical feature request on the forum.