Hacker News new | ask | show | jobs
by seanmcdirmid 3720 days ago
A simple prototype system via symbols. Nice, but still not as simple as they claim. I wonder how long until these tool companies actually consider more programming power; e.g. as in Bret Victor's Drawing Dynamic Visualizations (http://worrydream.com/DrawingDynamicVisualizationsTalkAddend...).
3 comments

It would be amazing to have a vector graphics editor that has an underlying editable code representation. One of the major pain points of graphics software today is the assumption that your work is destructive; Illustrator (and probably others) allow you to make non-destructive edits using Pathfinder and such, but it quickly becomes a massive pain once you're more than a few layers deep. I'd love to be able to define complex relationships between shapes and attributes in code and then jump back to WYSIWYG mode to work out the details. It's quite a complex problem to put both modes on equal footing, however.
Look at the contents of a .SVG file.
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/

Have you seen PaintCode?
Or the paintcode plugin for sketch?