logoalt Hacker News

Show HN: Reladraw – A diagram language where you decide where to place things

109 points • by jpwalsh234 • today at 5:10 PM • 30 comments • view on HN

I love making diagrams to help understand, plan, etc. However, the options are (A) auto-placement languages like Mermaid or Graphviz (which don't let me decide how the diagram looks), or (B) software like Draw.io which are powerful but are very time consuming (and inefficient for agents to manipulate).

I wanted to have the benefits of both, where you can define a diagram in a diagram language, but also retain a high degree of control over what the diagram looks like.

I also wanted this to work well for humans and agents.

On the Github link, there's a playground where you can try it out without installation. There's also instructions for a simple npm install and for installing a skill you can use with Claude or other agents.


Comments

threecheese • today at 9:46 PM

Does this need to be shipped with a renderer? A better question is, are the node layout instructions ultimately being translated into absolute positions?

If so, you could target any number of render backends, keeping the same simple interface for your agent, avoiding the bazillion problems rendering engines face to work well across the ecosystem.

➕ show 1 reply
recroad • today at 9:06 PM

Seems a little buggy, I added this line:

edge parser -> renderer "test edge" from: left to: right

and it wasn't smart enough to make a curved arrow

➕ show 1 reply
HeavyStorm • today at 9:07 PM

Mermaid works great for fixed layouts like sequence diagrams and Gantts. For flowcharts, where position is king, it's bad.

I've tried using svg in my MD files but they get unwieldy quite fast. This is a great idea. My first reaction was - but what's if I need something more exact. But reflecting on it, I've realized that this relative positioning is probably enough.

➕ show 1 reply
zikohh • today at 9:17 PM

https://d2lang.com/ works well?

➕ show 1 reply
aktenlage • today at 8:23 PM

That is damn interesting. When I made copilot write a script that creates a .dot diagram, I found it funny that it had the same problems with placement that I have when doing it manually.

➕ show 1 reply
kinduff • today at 8:35 PM

I love it, and I wish it was part of Mermaid. I've always struggled with the presentation and agents tend to hack or just straight use SVG lol

➕ show 1 reply
v9v • today at 7:16 PM

Great! Reminds me of Pikchr a bit https://pikchr.org/home/doc/trunk/homepage.md

➕ show 1 reply
patriciobcs • today at 7:57 PM

I was looking for something like this. I wish it had different themes, the will prob be the best improvement.

➕ show 1 reply
ciefa • today at 9:04 PM

Huh, can you read my mind?! :D

This is super cool. I love diagrams, charts, etc. and use them a lot. Both privately and for work.

Definitely going to make use of this, I didn't know how much I wanted something like this until right now hahaha.

➕ show 1 reply
tetris11 • today at 7:28 PM

I like it. I have too many issues with Mermaid

➕ show 1 reply
light_hue_1 • today at 8:58 PM

I wish this just implement tikz without latex. I've yet to see a better drawing library that is both simple and has the depth to build the most complicated things.

➕ show 1 reply
monster_truck • today at 7:29 PM

This genuinely fucks. Thank you

Fighting with mermaid is so frustraiting, especially when it comes to normal vs github formatting. This is going to replace several ad-hoc half impls I have laying around

➕ show 1 reply
lastscattering • today at 7:33 PM

This is basically tikz's positioning library (right=of, below left=of) without having to touch LaTeX. With tikz it was never the nodes that hurt me, it was the edges. Once two edges want the same side of a box it gets ugly fast. Does the resolver do any routing, or is from:/to: all you get? And what happens with conflicting statements, does the first one win or do you get an error?

➕ show 1 reply