Hacker News new | ask | show | jobs
by Animats 3717 days ago
Look at the contents of a .SVG file.
1 comments

I think Gimp might actually allow you to make live SVG edits, but I don't think you can have variables or loops in SVG. You'd need a scripting language plus a higher-level interface along the lines of Core Graphics (UIBezierPath).
My point is that you can work on .SVG from a program; it's a simple text format. It's declarative, not executable. You don't want to have a Turing-complete executable graphics representation; it's too hard to edit. Postscript and PDF are executable representations, and editing either does not work well.

Also, if it's executable, someone will write an exploit in it.

Fine, but what if I need to do something like: create a shape, make 5 instances of it (all progressively offset, translated, and rotated), and give each one a different color and outline — all while still keeping the original shape editable? What if I have a polygon with a child polygon that needs to have the same angle on one of its sides as its parent? What if I want to give the shadows in different parts of my file the same opacity and color? What if I want to define the relationship between an object's width and the thickness of its borders? I run into these sort of problems all the time. Illustrator almost gets there with its non-destructive effects, but it's not enough. Doing it using code alone is awful, since these sorts of problems tend to be small (but essential) parts of a project, and I need the GUI for the rest.

A lot of vector art already runs as a program; it just happens to run in the artist's head, and requires far too much effort to update. There ought to be a general solution.

That's kinda how SVG works if I remember correctly. You can define templates that cab ber instantiated multiple times, with optional transformations.

It's just not easy to do. If you want easy, you should take a look at http://framerjs.com/