3d layered graph view would be very useful

I am finding that graph view quickly becomes very cluttered even after adding a few dozen relations.

One solution would to be to enable a three dimensional view of the graph. For example,each type could be assigned it’s own layer. ideally these layers would be able to be reordered on the fly with the ability to hide any unneeded layers so that the whole thing doesn’t become too cluttered.

In my case one way that I would use it would to have separate layers for the following types;class notes,glossary,books and authors. I would love to be able to rotate the assemblage up/down,clockwise/anticlockwise,zoom in/zoom out much like 3D models of star systems.

I think this could be very helpful for seeing patterns and relations in the data which could get lost in plan view as well as potentially looking very nice.

2 Likes

Hey @krakatoa, thanks for your message! We are currently working on some graph improvements. I can’t promise 3D experience, but you’ll be able to filter any type of objects that you like. After the implementation, it would be very nice to receive your feedback!

4 Likes

I second this request. I guess I’ll play with filters a little but I think it would be cooler looking (completely aesthetic) if it was an interactive 3D interface where different layers would be greyed out and then highlighted when selected or toggled, like the temple map levels in the Legend of Zelda: Twilight Princess, for example.

1 Like

Sorry, not like Twilight Princess, more like Dead Space…but anyway. You get what I mean

I took a peek to see how a layered 2.5d or full 3d view might be built.

Antype uses GitHub - d3/d3-force: Force-directed graph layout using velocity Verlet integration. and GitHub - d3/d3-zoom: Pan and zoom SVG, HTML or Canvas using mouse or touch input. for its graph view. They certainly couldn’t be used to build a performant 3d view. But they might do okay for 2.5d.

The hardest part would be getting links to behave correctly, but I don’t think that would be anything more complicated than inserting some appropriate scalar multiplications and additions based on each layer’s depth and the viewport’s center. If it works according to my intuition, then it shouldn’t even bump the time complexity of the simulation algorithm.

Full 3d will require a more radical departure. d3 doesn’t have official modules for 3d force graphs, but GitHub - vasturiano/3d-force-graph: 3D force-directed graph component using ThreeJS/WebGL does exist, and it is quite flexible and mature. I don’t think it would be overly difficult to implement, but it certainly wouldn’t be an impulse change.

And the worst part would definitely be that it couldn’t replace the 2d view, not just because some users would prefer 2d, but also because the speed benefits of a simpler 2d view would be too great to throwaway, leaving out users with less powerful computers. Anytype would have to do both, effectively doubling developer effort required to enhance and maintain graph views in the future.

So 2.5d is probably the way to go.

3 Likes