It would be useful to have examples of data and the representation this would result in.
Although you can go to https://jsoncanvas.org/ itself and see an example rendering, you cannot see the exact data that created it - I think, although you can sort of guess since the element names are stuff like node.
I sort of doubt this is the best data structure for representing this kind of thing. Maybe I'm wrong though but I would think I would go for something like https://github.com/jsongraph/json-graph-specification which strikes me as closer to graphml which I have some experience with, and maybe give it ability to embed videos etc. (which for all I know someone already has)
This is all an initial feeling though, like hmm, no I think it's wrong, and maybe I am just not seeing why this would be better than another solution.
kepano [3 hidden]5 mins ago
You can see the data it created. Just click "Toggle output" in the bottom right corner.
crazygringo [3 hidden]5 mins ago
Oh, thanks. Those buttons seem designed to be as inconspicuous as possible.
This just looks like a pretty normal homepage. It was not obvious to me at all that the homepage was an actual dynamically rendered canvas, as opposed to just canvas-"themed".
bryanrasmussen [3 hidden]5 mins ago
ah ok, sorry about that. I didn't really look at that part of the UI much, noticed it had some zoom stuff, noticed I couldn't zoom normally and scroll to where I wanted to read, was somewhat miffed.
I've used canvas quite a bit since it was release in Obsidian. It's good, not great, but the simplicity of the file type opens up a lot of opportunities to build on top of it.
Garlef [3 hidden]5 mins ago
I'm not sure about this:
An "infinite" canvas without some notion of recursion such as viewports feels incomplete.
kepano [3 hidden]5 mins ago
A file node can be a .canvas, so a .canvas can have nested canvases.
Obsidian's implementation of JSON Canvas supports this.
makeitrain [3 hidden]5 mins ago
Looks cool. I recently hit some limits with mermaid and this seems a little more flexible.
MoonWalk [3 hidden]5 mins ago
Are pixels really the best way to encode position at this point?
9wzYQbTYsAIc [3 hidden]5 mins ago
I’m playing with 3d positions derived from higher dimensions, right now.
Garlef [3 hidden]5 mins ago
Agreed.
The upside is that it does not leave the most important aspect open to interpretation.
But it prevents this from being text-only at the point of creation:
You'll most likely need some programmatic environment to create non-trivial diagrams.
But then the question is: Why not just an SVG instead?
Although you can go to https://jsoncanvas.org/ itself and see an example rendering, you cannot see the exact data that created it - I think, although you can sort of guess since the element names are stuff like node.
I sort of doubt this is the best data structure for representing this kind of thing. Maybe I'm wrong though but I would think I would go for something like https://github.com/jsongraph/json-graph-specification which strikes me as closer to graphml which I have some experience with, and maybe give it ability to embed videos etc. (which for all I know someone already has)
This is all an initial feeling though, like hmm, no I think it's wrong, and maybe I am just not seeing why this would be better than another solution.
This just looks like a pretty normal homepage. It was not obvious to me at all that the homepage was an actual dynamically rendered canvas, as opposed to just canvas-"themed".
An "infinite" canvas without some notion of recursion such as viewports feels incomplete.
Obsidian's implementation of JSON Canvas supports this.
The upside is that it does not leave the most important aspect open to interpretation.
But it prevents this from being text-only at the point of creation:
You'll most likely need some programmatic environment to create non-trivial diagrams.
But then the question is: Why not just an SVG instead?