Wednesday, August 29, 2007

Sketchpad

Summary:

Sketchpad was the first sketch recognition system and was developed in the early sixties. The system used a light pen and keyboard buttons in order to interact with the computer to create design-quality drawings. The light pen would draw or select objects on a computer screen while the keyboard would toggle various constraints to place on the current drawing of selection.

The constraint system was one of the key features in Sketchpad that allowed the system to produce drawings that looked good. With constraints a user could draw perfect lines and circles without having to worry about pen noise; they would only hold a button indicating that what will be drawn next is a line or circle. Furthermore, touching up a drawing was easy with constraints that could force selected groups of lines to be horizontal, parallel, or perpendicular. Sketchpad also allowed corner snapping constraints which locked a corner of one object onto an edge or corner of another. The constraint system in Sketchpad was implemented using logic, where constraints were variables and the list of constraints on a system could be evaluated to ensure that constraints are satisfied. Relaxation and one pass are the two constraint satisfaction methods mentioned.

Sketchpad worked best when a sketch required a lot of repeated patterns and shapes. The system could create instances (shallow copies) or copies (deep copies) of drawn objects, which could then be resized, rotated, and moved around the drawing space. A design requiring a lot of repetition, such as the hexagonal example in the paper, can be created very quickly without having to repeatedly draw hundreds of hexagons.

Discussion:

Sketchpad is a great system that was revolutionary for its time. As we discussed in class it was the first sketch recognition system and the paper highlighted some key areas that sketch recognition technology could be beneficial, such as in architecture, art, and engineering. Sketchpad also established some object oriented programming techniques by providing shallow and deep copies of drawn objects.

The use of constraints was a good method to ensure that the drawing looked good, but it also forced the user to remember many keyboard commands. Also, the keyboard can only handle as many constraints as the number of keys if the constraints are kept on separate keys; multiple key combinations could allow for n-factorial more constraints but at a high cost of usability. To alleviate this burden it might have been better to have two separate screens: the drawing screen and a constraint menu screen. The constraint buttons on the side of the Sketchpad window could be shifted to the new constraint menu screen with each button pointing to a menu option. The options would follow from the constraints described in the paper, with drawing and selection constraints in hierarchical menus.

2 comments:

Paul Taele said...

The whole time I was reading the Sketchpad paper, I didn't even consider the importance of the keyboard one bit. I was too focused on the use of the light pen, and my summary only gleamed on the use of the buttons and dials in the Sketchpad system. You brought up really excellent points concerning the cost of usability as more button input becomes a factor. I can't even imagine the number of buttons the system would need to perform the type of tasks that we take for granted nowadays.

What's more, your idea of the use of multiple screens as an extension to the Sketchpad system is definitely a logical progression. I brought up similar points in my post on the use of multiple screens as a next step, but with emphasis more on physical convenience to the user than on the ease of input usability. I believe your emphasis on that notion is more relevant than mine, haha.

Miqe said...

Obviously I wasn't around in 1962, but I think the use of a second window with constraints really hadn't been implemented (not well at least). This was decades before any really good button programs came out, which is the main reason I think he left it to buttons. It was probably just easier to set the constraints to dials than it was to try to make a program that ran constraints in a multiple-layered text fashion like in DOS or something.