
Show HN: Rune.js – Graphic design systems with SVG in the browser or Node.js - runemadsen
http://runemadsen.github.io/rune.js/
======
andrewray
This seems to take the declarative nature of SVG and make it more imperative,
like HTML5 Canvas, even though it ironically uses a virtual DOM implementation
under the hood. For my React projects I chose SVG over canvas because I could
write my layout declaratively, and avoided imperative manipulation libraries.
How do you modify existing SVG shapes with this library?

~~~
talldan
It's a shame React Art isn't mentioned more
([https://github.com/reactjs/react-art](https://github.com/reactjs/react-
art)). I'm pretty happy with the results from it, and it's a bonus that it
works on iOS as well as drawing to Canvas, SVG, or VML on the web.

It doesn't support some of the more advanced features of SVG, but that's the
trade-off for wider support.

------
linqables
This looks really interesting. Are you planning to do text as well?
Specifically, text with line wrapping?

~~~
runemadsen
I have basic text support for now, and will release a Rune.Font plugin next
week that supports webfont loading and access to the font vectors. Line
wrapping is also on the TODO list.

------
bigethan
The server side rendering looks really interesting (I've been getting into SVG
for mobile web graphics). Are there other SVG libs that do server side
rendering, or is this unique as it seems?

------
amelius
I want an API where I can intersect or combine paths, and be able to read out
the resulting paths.

~~~
beardicus
You might be interested in paper.js:
[http://paperjs.org/](http://paperjs.org/) which is an evolution of
Scriptographer. It has full support for the usual add, subtract, difference
sort of boolean shape operations. Beyond that difference, I'm still trying to
suss out the differences between rune.js and paper.js. Rune feels like it
might provide more grid and typesetting tools, but still, the lack of boolean
shape operations is disappointing.

~~~
amelius
Paperjs looks interesting. The major downside is that it is a separate
programming language. It really makes me wonder why the authors could not
separate concerns and make a self-contained library for those boolean shape
operations.

------
jacobolus
The examples are horribly broken in Safari.

Anyway, echoing andrewray, what’s the point of this? It seems no easier than
just working with SVG directly. It’s considerably less powerful than e.g.
using D3.

~~~
unfortunateface
The author actually goes into detail about why they created this project on
the about page:
[https://runemadsen.github.io/rune.js/about.html](https://runemadsen.github.io/rune.js/about.html)

On a side note, regardless of the alternatives, or that there is a 'better'
way to do things, I found this project very impressive.

The author has released their work open source
([https://github.com/runemadsen/rune.js/blob/master/LICENSE](https://github.com/runemadsen/rune.js/blob/master/LICENSE)).
It is people like the author that drive large parts of our industry, with
generous donation of their spare time. Given this, it is frustrating to see
the unhelpful choice of words of people in this comments section.

~~~
runemadsen
Thank you!

------
simple10
Direct github link
[https://github.com/runemadsen/rune.js](https://github.com/runemadsen/rune.js)

------
kyriakos
great work there.

------
hundunpao
I love it!

