Log in

No account? Create an account
Wednesday, March 3rd, 2004

Date:2004-03-03 14:45
Subject:UI models for drawing.

As i wait for my iBook to back itself up, i've been thinking about how drawing works on tablet computers. I'm not happy with the dichotomy between image painting programs (like Photoshop) and vector drawing programs (like Illustrator). Neither type is a good fit for pen-based sketching. To begin with, you've got to have vectors in order to edit pen strokes. Photoshop has paths, but they're hard to edit. Illustrator has this incredibly annoying habit of wanting to bend and join up paths whenever they come near each other, which makes its pencil tool pretty much useless — the details of your strokes are often lost, and the set of path objects you end up editing bears no relationship to the strokes you actually drew.

Then there's the problem of inking. Why on earth do most programs make this ridiculous assumption that filled regions are defined by a single curve? Try drawing something you want to fill in, like a house or a stop sign or an animal.  Do you draw the entire cat in a single stroke? Hello? Was anybody thinking when they designed these programs?

Okay, so Flash doesn't make that assumption. But Flash has other problems.Collapse )

Here's the idea that popped into my head a few minutes ago. What if there are no fill objects, only stroke objects — and then fills are defined entirely in terms of strokes? So:

  • Every time you put down the pen, move the pen, and lift then pen, you create exactly one stroke. The program strives to preserve this stroke in its original form as a single object unless you explicitly cut it up or join it to another stroke.
  • Filling is a property of a group of strokes. For example, a fill might be defined internally as "the region enclosed by the left side of stroke 3, the right side of stroke 7, and the left side of stroke 8," where left and right are defined the way you would see it if you were an ant walking along the stroke in the same direction it was drawn. (You wouldn't have to specify a fill this way; the program could figure out such a specification based on where you dump the paint bucket.)
  • The strokes around a fill do not have to form a completely closed region; the fill closes itself off by interpolating the missing parts of the boundary. (You could set an option to say how you want the boundary to be closed off, say with a straight line or a smooth curve or a sharp corner, just like the option for round, bevel, or mitre joins on hard corners of paths in Illustrator.)
  • You could define all sorts of other cool fill styles, too — like fuzzy fills that go a little outside the boundaries, or a fill that looked like it was drawn in crayon, or a fill that looked like a patch of grass growing in the region.
  • Then you could move around and adjust strokes without ever losing your stroke shapes or your fills. You could move, scale, rotate, smooth, or apply other effects to individual strokes or groups of strokes.
  • You could create filled regions with no outline by making the strokes invisible, but you would still be able to see and edit invisible strokes in the editor.
  • The strokes and fills would be arranged from front to back in the drawing layer, just as with Illustrator objects, and you could rearrange them to control what appears on top.

Has anyone heard of or seen or a drawing program that thinks like this? If you draw, do you think a program like this would work for you?

I wonder how metamouse turns his sketches into vector drawings. Hours of tediously adjusting Bézier control points? Or is there a better way?

6 comments | post a comment

browse days
my journal