Show HN: Infinite canvas notes in the non-Euclidean Poincaré disk (uonr.github.io)
This is an infinite canvas note-taking tool where notes are laid out in a non-Euclidean, hyperbolic geometric space. As you drag and navigate through the view, you’ll experience a unique fluid distortion that naturally leverages your brain's spatial memory.
I’ve been obsessed with the concept of space in HCI for years. Many modern UI patterns are essentially workarounds for the lack of screen real estate. While researching zoom-based UIs a while back, I stumbled upon old HCI papers that used the Poincaré disk model of the hyperbolic plane to organize data. It elegantly projects an infinite space into a finite disk, keeping everything contextually visible.
I wanted to build an experimental app around this concept years ago, but the non-Euclidean math was a significant roadblock. Recently, I decided to give it a shot with the help of LLMs. It turns out that LLMs can handle the mathematical heavy lifting quite well, specifically in designing the coordinate systems and optimization algorithms, provided that you guide them with a solid architectural design.
This is still an experimental demo, but I hope it leaves an impression. I’d love to know if you find this paradigm practical for organizing your thoughts.
24 comments
[ 3.6 ms ] story [ 53.1 ms ] threadAlso it'd be nice if there was an underlying grid plotting the metric/distance function to help conceptualize distance/relationships better when you get to the edges.
An idea that came to mind is that maybe some shading would help, with closer areas brighter and more distant areas darker. Or, like another comment said, an option to show/hide a grid.
I kind of hate actually using this tho since it's just not how my brain thinks about concept relationships (spatially related concepts even in linear space).
You often don't need to see the whole hyperbolic disc, only some region in the center, and there, the text would largely still be readable.
The arrows are drawn in hyperbolic space, but the text is not; it really should be. Then there will never be an overlap problem.
Alternatively, the center of the text (or generally the anchor) of the text box could still be oriented to the screen to seed the render orientation, just like it already is, but allow the rest to be drawn following the rules of geodesics in the hyperbolic space. though I don't know if that would work as well.
The points and arrows do move and change shape appropriately while panning, but the images and text do not. It might be possible to use feDisplacementMap (an SVG filter effect) cleverly to get the deformations right. This would probably make performance worse, and I'm not sure how readable the text would be, but it would mean that things wouldn't start overlapping each other while panning.
https://paperverse.net/
I see you also hade a similar idea on what happens when you click on an arrow