Cool concept! Hyperbolic space is great application for branching space. I had forgotten about it but now I want to try a project. Since we already have pretty good visualizations for a hierarchical ordering, I'm very curious how this would work for a distributed graph, like a social network or recommended videos on YouTube.
I'm excited for AI accelerated dataviz, anything created like that has to be held to high standards. Since this was agenticly coded, I hope you don't mind if I critique the parts that are rough around the edges. You might even be able to copy this into the chat with some additional prompts and see if it can fix these.
- when my mouse is to the right of the chart, my mouse scrolling gets stuck and controls zoom. I prefer having only the visible chart area zoomable.
- I'd like at least in indicator when parts of the graph are being hidden. Maybe render the links but not the nodes to the next hidden layer. If performance isn't a problem, you can pack infinite space near the edges, so you could just fade out the element but never hide them.
- if a tool tip is shown, I can't drag pan the chart. Dragging instead highlights the tool tip text, which should be set to `user-select: none;`
- When I tool tip is shown, I expect clicking will select and center that element, but I have to click on the dot (which can be small) to actually hit the node
- the legend at the top changes sizes as category of nodes are hidden, causing the chart to shift up and down.
- I like the straight lines: easy to follow and cheap to calculate. However, they can cause overlap problems, like when `flare.query.methods` is centered, the points fan out and intersect the `flare.query` fan. I wonder if you did something like draw straight bezier curves in hyperbolic space, which turn into curved linked when projected, if that would be readable and avoid overlaps
- The dragging reminds me of trackball cameras in 3D, that allow rotating the objects freely, like holding an object in your hand. The other main camera is an orbit camera, which is like walking around an object while keeping the direction of gravity always pointing down. If you drag in circles, the whole graph rotate (like trackball). I wonder if there is an equivalent of an orbit camera where the rotational orientation is always the same when you are at each point of the graph. I'd appreciate an option between these modes, although I might not actually like the one I'm proposing.
There are a few things I really appreciate
- I like how the root node is pinned when you pan enough to hide the other elements
- The dragging is fast and buttery smooth.
- Animations help with the transitions and are fast enough to not be annoying.
Hi Lao,
Thanks for your comments! I really love the stuff you did with notebooks I saw many of those with great awe!
All points are fair and greatly appreciated - I was just stunned how fast it created the current viz, as this was one on my bucket list before the agentic aera, so I have a starting point. I plan to address many issues including your suggestions. I just asked in the forum how the chat can be invoked for an existing notebook or what workflow do they suggest.
One question though - I agree there is not shortage of cool data visualizations about hierarchical data from this community. Still I am not sure if any is truly scalable for very large datasets. I thought this viewer (by keeping all the odes at the edges as you pointed out) might offer a chance to scale to many (infinite) levels and just being loaded as they become more visible/ focused. I thought of trying to see if it could scale like a google map with many levels of resolution.
Do you find we have a goof viz for very large hierarchies which "loads data on demand" when it becomes visible?
The biggest hierarchy I've worked with is computer files, normally as a expandable indented list. That works great for navigation when you know where you want to go, but your style of chart would be better for finding a single file you need in a big zip file. In a file explorer, I normally end up opening almost all the folders before finding the file I need.
Yes, I agree folders are fine when the user searches something and knows the space. I envision using it for exploration of an unknown space. I am creating a chess app, where I want to compete one thousand positions with the chess engine stockfish and visualize the evaluations. Or maybe using it for non hierarchical data )like customers of a company by clustering them first via a hierarchical clustering algorithm... Thanks for giving feedback - I will definitely follow up on those :)
Hey Lao, that is really cool!! Thanks so much for engaging (I get the community vibes back!) and extending with such cool choices of edges/ node positioning and "zooming".
The last days I have also tinkered with the visualization and came to add different aspects. (https://observablehq.com/@ambassadors/hyperbolic-tree-viewer-v2)
I definitely would like to include your ideas into that but have to see how to do it best (as currently I think I cannot reference your notebook to the agent)
Best Regards!