Wednesday, August 27, 2008

SketchPad Review

Comments to other bloggers on this paper:


Summary
Ivan E Sutherland, 1963
AFIPS Conference Proceedings Volume 23

Sketchpad is a human-computer interactive system capable of taking input data from a combination of light-pen, light sensing screen and keyboard and manipulate the objects input. By defining some elementary constructs (points, lines, circles) and defing some basic operations on these constructs (magnification, copying, deleting, drawing) interesting results ranging in circuit design to bridge stress analysis can be performed.
The paper begins with an example of building a regular hexagon from an irregular six-sided shape and making it regular by inscribing it into a cicrle. After fixing some constraints (vertexes on circle) the user was able to force the system to construct a regular hexagon. Definitions worth remembering are:
SUBPICTURE: any subpart of the resulting image that can be repurposed as part of another image.
CONSTRAINT: basic relationships between picture parts--vertical, horizontal, parallel lines; points lie on circles, symbols appear in some orientation and relationship between symbols.
COPYING: Making equal copies of a picture part
The underlying structure that makes this work is the Ring Structure which is an expanded version of the n-component element described by Ross (Ross, D.T., Rodriguez, J.E., "Theoretical Foundations for the Computer Aided Design System"). In particular, all references made to a particular block are collected together by an array of pointers originating within that block. The "ring" reference is because the array of pointers starts and ends with the block itself for closure. The ring structure is made dynamically through the use of the keypad.
The basic ring structure operations are insertion, removal, combination (i.e. joing multiple ring structures), and auxiliary operations on ring members in following flink or blink paths. It's the boundary conditions (i.e. 0 and 1 member rings) that are important to handle robustly.
The light pen is the main instrument for getting data into the system and manipulating data already in the system (coordinate input vs. demonstrative input). Pen tracking is accomplished by placing the pen anywhere on the screen (blank space or another line) and moving the pen. When aiming at a line or point, the pen uses only 1/8 inch of its total 1/2 inch sensing area to determine if it is close to an "aimed at" object. Next, it determines which objects are topologically related to the ones seen (favoring end pints and attachment points). To aid in human interaction pseudo pen placement is used to snap to the part that is aimed at as opposed to what is pointed at.
The display uses 20 bits to define the position and 16 bits to associate the spot with the ring structure it belongs to. This results in all spots in a line being associated with the ring structure for that line and all spots in an instance being associated to the ring structure composite for that instance. It also has a resolution capable of magnifying up to 2000 times. Lastly, all the displayed parts are generated by points and the difference equations:
xi = xi-1 +delta(x) yi = yi-1 + delta(y) lines
xi = xi-2 + 2/R(yi-1 - yc) yi = yi-2 - 2/R(xi-1 - xc) circles
Text and digits are presented via special tables made of 36 equally spaced characters.
Abstractions (like only viewing contstraints or digits) can be displayed because the data is inherent in the ring structure storage schema.
Sketchpad uses 3 generic recursive functions:
1) Expansion of instances -- subpictures within subpictures
2) Recursive deletion -- ring consistency must be maintained so removing some parts may remove others
3) Recursive Merging -- combination of two similar picture parts results in the reconstitution of the ring structure to account for the additional picture parts
Attachers are special locations on an instance that allow the instance to be manipulated (ex. added to other pictures) and the light pen has the same affinity for it as it does end points. They are necessary because they allow the combination of instances with each other thus assembling a more detailed picture.
The major improvement sketchpad has over conventional paper and pen is the inclusion of mathemtaical constraints that the computer can reconsile in real time with the user. This parallelism allows some degree of analysis in the design phase of certain actions. For example, by building constraints into various line segments, bridges can be built and analysed for load stresses with some degree of veracity.
Constraint satisfaction is accomplished most frequently with a one-pass-method instead of relaxation. This method attempts to find constraints that will constrain multiple variables simultaneosly. Such variables are said to be adjacent. If a variable with few constraints can be found to satisfy all of them it is said to be free. As such, it no longer adds to the constraint pool as it is solved. There is now a ripple effect through the rest of the constraints because of its freedom which might result in the freeing of other variables.
The author shows the usefulness of sketchpad with a few examples. In particular, he shows how sketch pad handles linkages, dimension lines, bridges (load analysis), artistic pictures (girl winking), and circuit design (apprently not very easy even with sketchpad).
Lastly, some future work in three dimensional drawings are discussed. Johnson is doing the predominate amount of research in here and is going to make it compatible with Sketchpad.

Discussion

This paper is interesting because it attempts to bridge the gap between computer as a box that a human uses to crunch numbers and computer as a sophisticated tool to help solve problems by working with the user in the users natural mode of solving problems. It is interesting because of the use of the ring structure to capture not only data points but also constraints and other meta data used in describing the pictures. It is also interesting how recursion can be used so succesfully to generate the complex instances that can be created with the system.
I think this system could be extended to include newer technologies like touch screens and larger color displays. It would be interesting if the system had the ability to color code the lines based on the context of the picture drawn. For example, if someone built a bridge and added load constraints, the line would turn red when the structure exceeded the constraint. Not too sure that is good research or just an improvement on a system, but it would be cool.

1 comment:

andrew said...

I like your idea of adjusting the colors of lines to reflect the breaking on constraints. I don't think Sketchpad allowed for the creation of a drawing that broke constraints, but I think not allowing you to break constraints hinders creativity. In the end, you still must meet the constraints, but the in-between phases need not.