I made progress again on my graphics editing stuff; I have a program that takes tablet input and converts it into individual lines/strokes. That task was surprisingly easy; once again, I'm a bit unsure of what to do next.
So I just set myself a specific task: Create the software that I would want to use to write People Are Wrong Sometimes if I'd written it with this instead of on paper.
Which of course raises the question “What do I need for that?”. So I looked over People Are Wrong Sometimes from a conceptual perspective, turning the question into “What are the things in it?”.
- Lines (straight or curved), of varying colors.
- Fields bounded by straight/curved lines, of varying colors.
I already have the concept of lines.
One interesting thing that I notice about the lines is that they almost never cross; usually, one line is cut off by another (e.g. panel borders cut off the image, speech bubbles obscure objects in the panel, and some objects or people are in front of others...). In my pencil and pen drawings, I had to carefully end each line where the next began. In my computer programs, I should have a way to automatically have one line cut off another, which means I need the concept of where lines cross. And, on a related note, I should have a way to automatically detect when I've surrounded a region completely, so that region can be filled with color.
For the moment, I'm going to ignore the text. I like the way I used a variety of different typefaces in People Are Wrong Sometimes, but I don't like the way I was relying on pre-existing typefaces that didn't necessarily fit the overall visual style of the piece, and I don't like the fact that I didn't have precise control over the size and flow of the text. On the other hand, I definitely wouldn't like to write all the text myself; my hands hurt if I write for long periods of time, and my handwriting isn't very good. I've heard that some artists draw their own typefaces (where since you only have to draw each letter once or twice, you can spend a lot of time getting it right); I might want to do that, but it's something for later.
In the writing process of People Are Wrong Sometimes, I drew a lot of sketches; I sketched out everything in pencil first, with a lot of experimenting and erasing, then drew over it in pencil to decide exactly what I wanted, then drew over it in pen and erased the pencil marks before scanning it. In the computer, I'll need that same leeway to draw and redraw, so I need a concept of selective erasing. And I'm going to need to be able to erase one line without erasing another that's very close to it. Internally, the lines are all going to be numbered, but in my user-interface, I'm going to need a way to refer to them without typing in numbers all the time. Maybe that could be accomplished just by zooming in (and having a mode1 where I use the tablet-pen as an eraser.)
I'm also going to want a really sophisticated undo system, for when I make mistakes – INCLUDING mistakenly undoing things. My current plan is to store a complete record of all operations (like drawing a line or changing a line's color) on an image, including undo operations, and have it be theoretically possible to re-construct the image from nothing just by going through all the operations. And have them be discrete/separable enough that you could go back and “undo” individual long-ago operations without having it interfere with the rest of the chain. But of course, doing that would be simply adding an “undo” instruction to the end of the chain. The advantage of this system is that it makes me automatically able to go back to any version of the image, even dead-end versions that I didn't like at the time and undid. I'm going to want to have the operation-log be displayed on-screen, along with the actual image, and have various features that let you mess with the image from that perspective.
I also need to be able to move, zoom, and rotate the drawing field.
Some things that I could have used, but (deliberately) didn't use in People Are Wrong Sometimes are: Continuous shading, texture/pattern, significantly-varied line weight... it was, very explicitly, constructed out of the concepts of line and field, rather than being constructed as marks on paper. I like drawing in that way; remind me to make a post about how drawing can be done from an abstract/conceptual communication perspective, just as much as writing can.
- And when I say “mode”, I probably mean a key that I hold down while drawing. Holding a key with one hand while drawing with the other might be inconvenient, but it's a lot less inconvenient than accidentally leaving the mode on and then trying to draw a real line. The book The Humane Interface calls hold-down-a-key modes “quasimodes”, and recommends them highly. back