ctenb 3 hours ago

This is a cool example of how specializing a generic algorithm to a specific subspace can yield much better results. This is quite often the case in my experience, but we often don't bother utilizing properties that are specific to our problem space, and just apply the generic algorithm out of convenience (and because it is often good enough)

zem 27 minutes ago

I would love to see this evolve into a more general purpose control flow graph viewer - pretty much any language implementation would find it a great debugging tool. it's probably most of the way there already.

thw_9a83c 2 hours ago

Nice work! The examples look better than the Graphviz output, indeed. This is a good example of how you can always beat a long-developed, generic tool by specializing for a much narrower use case.

lexh 22 minutes ago

This is a great write up.

I wonder if any of these techniques turn up in whatever the magic sauce is in D2’s TALA layout engine, which is in a league of its own IMO.

https://d2lang.com/examples/tala/

xlii 2 hours ago

This is a concept I'm working around with Microdiagram (microdiagram.com) prototype.

i.e. having a general purpose diagram/graph layout is hellishly difficult, but most of the diagrams/charts follow much simpler rules, thus it's much easier to have N languages, each for 1 type of diagram, than 1 language for N types of diagrams.

  • JohnKemeny 2 hours ago

    Sounds intriguing. What is an example of a chart and its language that you have designed so far?

    • xlii an hour ago

      The Piano chart on prototype is an example, that's for discussing piano keys and chords on basic level.

      I already implemented (in other prototype) diagram for event calculus (i.e. consideration of event stream through addition of new events like rollback, modify etc.)

      On paper I have designs for point-in-time designs, scenario divergence and also some fun ones like a bingo card template. Diagrams are one thing, but there's also a design for collaboration and play-replay capabilities.

      That being said, that's only a design right now with a simple prototype on the website :)

nirava 2 hours ago

anyone working on this space easily gets a +1!

I have struggled with code to diagram tools for a while [mermaid and graphviz], and usually return to figjam when I need the readabilty and aesthetics.

graph-viz is MASSIVE and a binary. mermaid requires the browser's svg rendering system to work. I just need something that builds diagrams from description easily ...

eisbaw 2 hours ago

Wow, thank you very much. I like the graphviz dot language. I may translate this to Rust.

IshKebab an hour ago

This is great. I've been trying to generate diagrams for HDL hierarchies and neither Graphviz nor ELK can do a remotely good job. In fact I've never got good results from Graphviz for any graphs over a handful of nodes. I think it just isn't actually very good. But it has such huge mindshare even if there was a better option I wouldn't be able to find it.

JohnKemeny 2 hours ago

I added one statement and it only says `timed out`. I'll stick with Graphviz, which certainly doesn't time out.

  • rag-hav an hour ago

    Hackernews hug of death maybe