Sketchpad: A Man-Machine Graphical Communication System (UCAM-CL-TR-574)
Technical Report
UCAM-CL-TR-574
ISSN 1476-2986
Number 574
Computer Laboratory
Sketchpad: A man-machine graphical
communication system
Ivan Edward Sutherland
September 2003
New preface by Alan Blackwell and
Kerry Rodden.
15 JJ Thomson Avenue
Cambridge CB3 0FD
United Kingdom
phone +44 1223 763500
http://www.cl.cam.ac.uk/
c 2003 Ivan Edward Sutherland
This technical report is based on a dissertation submitted January
1963 by the author for the degree of Doctor of Philosophy to the
Massachusetts Institute of Technology.
Technical reports published by the University of Cambridge
Computer Laboratory are freely available via the Internet:
http://www.cl.cam.ac.uk/TechReports/
Series editor: Markus Kuhn
ISSN 1476-2986
Preface to this Electronic Edition
Alan Blackwell and Kerry Rodden
University of Cambridge Computer Laboratory
Ivan Sutherland’s Sketchpad is one of the most influential computer programs ever written by an individual, as recognized in his citation for the Turing award in 1988. The Sketchpad program itself had limited distribution —
executable versions were limited to a customized machine at the MIT Lincoln
Laboratory — so its influence has been via the ideas that it introduced rather
than in its execution. Sutherland’s dissertation describing Sketchpad was a
critical channel by which those ideas were propagated, along with a movie of
the program in use, and a widely-cited conference publication [10]. Copies of
the dissertation were distributed relatively widely, but it was never published
commercially. It is still available in the form of a technical report from MIT,
but we believe it deserves wider readership — hence this electronic archival
publication.
After 40 years, ideas introduced in Sketchpad still influence how every
computer user thinks about computing. It made fundamental contributions in
the area of human–computer interaction, being one of the first graphical user
interfaces. It exploited the light-pen, predecessor of the mouse, allowing the
user to point at and interact with objects displayed on the screen. This anticipated many of the interaction conventions of direct manipulation, including
clicking a button to select a visible object, and dragging to modify it. Smith’s
Pygmalion [9], heavily influenced by Sketchpad, made a more explicit argument for the cognitive benefits of this kind of direct interaction and feedback,
coining the term “icon”, and making it clear that graphical images could represent abstract entities of a programming language. Smith was a member of
the team that developed the Xerox Star workstation on these principles; in a
retrospective article [4] they acknowledge that “Sketchpad influenced Star’s
user interface as a whole as well as its graphics applications”, providing a direct link to the commercialization of the Macintosh and Windows interfaces
and widely recognized benefits of direct manipulation [8].
Sketchpad encountered a critical challenge that remains central to humancomputer interaction. Sutherland’s original aim was to make computers accessible to new classes of user (artists and draughtsmen among others), while
retaining the powers of abstraction that are critical to programmers. In contrast, direct manipulation interfaces have since succeeded by reducing the levels of abstraction exposed to the user. Ongoing research in end-user program-
4
ming continues to struggle with the question of how to reduce the cognitive
challenges of abstract manipulation [1]. Nevertheless, Sutherland’s attempt to
remove the division between users and programmers was not the only system that, in failing to do so, provided the imaginative leap to a new programming paradigm. Nygaard and Dahl’s Simula [7] was the first conventional
programming language incorporating the principles of object orientation, but
Sketchpad’s implementation of class and instance-based inheritance (though
not called objects) predated Simula by several years.
There appears to have been a common influence through the work of Douglas T. Ross, who is mentioned in the acknowledgements of this dissertation
and also cited in the MIT Lincoln Laboratory technical report based on it. Ross
sat on the Algol 68 committee with C. A. R. Hoare in the mid-1960s, where his
previous work on a record-like data structure (called a plex) influenced Hoare’s
own ideas∗ on abstract data types [3], later credited by Nygaard and Dahl as
the origin of the class definition mechanisms in Simula [7].
Alan Kay’s seminal Dynabook project, which led both to the Xerox Star
and to the explosion of interest in object oriented programming through his
language Smalltalk, was directly influenced by Sketchpad. Kay has written of
the fact that the genesis of Smalltalk lay in the coincidental appearance on his
desk of both a distribution tape of Simula and a copy of Sutherland’s Sketchpad thesis [5]. Kay recognized that the two systems were based on the same
underlying type concepts (apparently derived via two different routes from
Ross’s plex), and that these could form the basis of a more widely usable programming system. In comparing these two routes of influence, Simula was a
far larger project than Sketchpad, rightly recognized as the first object-oriented
programming language, but we hope that the special emphasis of Sketchpad
on supporting abstraction in the user interface itself may yet become viable as
a result of ongoing research efforts [2,6].
As with many early publications of computer science, this dissertation is
also interesting for the way in which it explores important concepts that are
now considered familiar, but which at the time demanded continual small discoveries by every researcher. The first-person account of the history of the
project in Chapter 2 reads almost like an excerpt from an autobiography, as
Sutherland describes how he had to “follow the stumbling trail” towards generality, through the different versions of Sketchpad. His rather charming proposal that dynamic data structures should be described using the terminology
“hen and chickens” has been a sad loss when compared to the far more prosaic
terminology of linked lists and garbage collection. The struggles of developing custom hardware while also exploring far-reaching abstractions are also
far removed from current research experiences.
Chapter 9 provides an immediate illustration of how far computer graphics has moved on in the 40 years since Sketchpad’s development. For example,
Sutherland says that “if the almost identical but slightly different frames that
are required for making a motion picture cartoon could be produced semiautomatically, the entire Sketchpad system could justify itself economically
∗
Personal communication with C. A. R. Hoare.
5
in another way”. Now, of course, we are used to seeing entire feature films
created from computer graphics. Also, in choosing manipulation of facial features as an example, Sutherland has anticipated the sometimes controversial
facilities available in modern photograph editing tools.
Sutherland’s clear writing makes all of these issues a fresh source of enjoyment to the contemporary reader, and we hope that it will reach a new
audience with the assistance of this electronic edition, continuing the great influence that Sketchpad has had on both users and programmers.
This Edition
Our aim in preparing this edition has been to create an archival copy of the
Sketchpad dissertation, suitable for electronic access and scholarly reference.
Although created in consultation with current international research efforts in
electronic archival, it is clear that there are, as yet, no common conventions for
electronic archive formats. Our priorities have been that this edition should be
accessible for download using current technology (i.e. in a relatively small file
size), that it should be suitable for electronic search and indexing, that it should
be easy to read both on paper and on the screen, and that it should be faithful
to the original document. These have not been easy criteria to meet, and our
chosen solution (LATEX to PostScript to PDF) has several disadvantages, but is
the best overall solution we could find.
There are some editorial choices that should be explained. We thought it
important to indicate original page numbering, so that citations of the original
dissertation could be traced, but wished to avoid the decreased readability
that would have resulted from simply reproducing the original double-spaced
typescript. We therefore chose not to preserve page breaks and line breaks,
instead marking the positions of the original page breaks (with the k symbol)
throughout the main body of the text, giving the original page number in the
margin (next to the ↓ symbol). For figures, the original page number is noted
in the caption. We also chose not to correct any errors we found in the original
document, in order to provide the textual equivalent of a facsimile edition.
These include a few spelling errors (to Ivan’s embarrassment), and also the
rather idiosyncratic fact that the original dissertation had two pages 106.
An exact facsimile copy of the original dissertation (where the pages have
simply been scanned, not transcribed) can be purchased in hardcopy or PDF
from the Digital Library of MIT Theses at http://theses.mit.edu/. Each
individual page can also be viewed as a GIF image, free of charge, which may
be a useful reference for readers wishing to check the layout of the original.
We are very grateful to Ivan Sutherland, who has encouraged this project,
and who personally proof-read the original scanned text. We are also grateful
to Malcolm Sabin, who kindly loaned us his original copy of the dissertation
for over a year. This work has been supported by the Engineering and Physical
Sciences Research Council, UK.
September 2003
6
References
[1] A. F. Blackwell. First steps in programming: A rationale for attention investment models. In Proceedings of the IEEE Symposia on Human Centric
Computing, 2002.
[2] A. F. Blackwell, T. R. G. Green and R. L. Hewson. Product design to
support user abstractions. In E. Hollnagel, editor, Cognitive Task Design.
Lawrence Erlbaum Associates, 2002.
[3] C. A. R. Hoare. Record handling. In F. Genuys, editor, Programming Languages, pages 291–347. Academic Press, 1968.
[4] J. Johnson, T. L. Roberts, W. Verplank, D. C. Smith, C. Irby, M. Beard, and
K. Mackey. The Xerox Star: A Retrospective. IEEE Computer, 22(9):11–29,
1989.
[5] A. Kay. The early history of Smalltalk. ACM SIGPLAN Notices, 28(3):69–95,
1993. Also in T.J. Bergin and R.G. Gibson, editors, History of Programming
Languages II, pages 511–578. Addison-Wesley, 1996.
[6] M. McCullough. Abstracting craft: The practiced digital hand. MIT Press,
1996.
[7] K. Nygaard and O.-J. Dahl. The development of the Simula languages.
ACM SIGPLAN Notices, 13(8):245–272, 1978. Also in R. Wexelblat, editor,
History of Programming Languages, pages 439–493. Academic Press, 1981.
[8] B. Shneiderman. Direct manipulation: A step beyond programming languages. IEEE Computer, 16(8):57–69, 1983.
[9] D. C. Smith. Pygmalion: A Computer Program to Model and Stimulate Creative
Thought. Birkhäuser, Basel, 1977.
[10] I. E. Sutherland. SketchPad: A man-machine graphical communication
system. AFIPS Conference Proceedings 23, 1963, 323–328.
SKETCHPAD, A MAN-MACHINE
GRAPHICAL COMMUNICATION
SYSTEM
by
IVAN EDWARD SUTHERLAND
B.S., Carnegie Institute of Technology
(1959)
M.S., California Institute of Technology
(1960)
SUBMITTED IN PARTIAL FULFILLMENT OF THE
REQUIREMENTS FOR THE DEGREE OF
DOCTOR OF PHILOSOPHY
at the
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
January, 1963
8
Abstract
The Sketchpad system uses drawing as a novel communication medium for
a computer. The system contains input, output, and computation programs
which enable it to interpret information drawn directly on a computer display.
It has been used to draw electrical, mechanical, scientific, mathematical, and
animated drawings; it is a general purpose system. Sketchpad has shown the
most usefulness as an aid to the understanding of processes, such as the notion of linkages, which can be described with pictures. Sketchpad also makes
it easy to draw highly repetitive or highly accurate drawings and to change
drawings previously drawn with it. The many drawings in this thesis were all
made with Sketchpad.
A Sketchpad user sketches directly on a computer display with a “light
pen.” The light pen is used both to position parts of the drawing on the display and to point to them to change them. A set of push buttons controls the
changes to be made such as ”erase,” or “move.” Except for legends, no written
language is used.
Information sketched can include straight line segments and circle arcs.
Arbitrary symbols may be defined from any collection of line segments, circle
arcs, and previously defined symbols. A user may define and use as many
symbols as he wishes. Any change in the definition of a symbol is at once seen
wherever that symbol appears.
Sketchpad stores explicit information about the topology of a drawing. If
the user moves one vertex of a polygon, both adjacent sides will be moved. If
the user moves a symbol, all lines attached to that symbol will automatically
move to stay attached to it. The topological connections of the drawing are
automatically indicated by the user as he sketches. Since Sketchpad is able
to accept topological information from a human being in a picture language
perfectly natural to the human, it can be used as an input program for computation programs which require topological data, e.g., circuit simulators.
Sketchpad itself is able to move parts of the drawing around to meet new
conditions which the user may apply to them. The user indicates conditions
with the light pen and push buttons. For example, to make two lines parallel, he successively points to the lines withthe light pen and presses a button.
The conditions themselves are displayed on the drawing so that they may be
erased or changed with the light pen language. Any combination of conditions
can be defined as a composite condition and applied in one step.
It is easy to add entirely new types of conditions to Sketchpad’s vocabulary.
Since the conditions can involve anything computable, Sketchpad can be used
10
for a very wide range of problems. For example, Sketchpad has been used to
find the distribution of forces in the members of truss bridges drawn with it.
Sketchpad drawings are stored in the computer in a specially designed
“ring” structure. The ring structure features rapid processing of topological
information with no searching at all. The basic operations used in Sketchpad
for manipulating the ring structure are described.
Thesis Supervisor: Claude E. Shannon
Title: Donner Professor of Science
Acknowledgements
I am indebted to Professors Claude E. Shannon and Marvin Minsky for their
help and advice throughout the course of this research. Their helpful suggestions at several critical times gave Sketchpad much of its present character.
Special thanks are due to Professor Steven A. Coons of the Mechanical Engineering Department and to Douglas T. Ross of the Electronic Systems Laboratory. Even though I was outside their Computer Aided Design group, they
provided at least as unstintingly of their time and ideas as if I had been their
only concern.
I owe a great debt to the MIT Lincoln Laboratory for the tremendous support it afforded me. I wish to thank Wesley A. Clark and Jack L. Mitchell for
making the TX-2 computer available to me and for providing help to make the
special equipment I needed. I appreciate the helpful suggestions and interest
that they and all the members of Group 51 provided. Special thanks are due
Leonard M. Hantman for the additions he made to Sketchpad.
The Research Laboratory of Electronics at MIT provided me with office
space and congenial office mates whose discussion and interest I greatly appreciate.
Finally, I wish to thank Lawrence G. Roberts who was a constant source of
answers to specific questions I had both about the best ways to program TX-2
and about the mathematics of difference equations and matrix manipulations.
12
CONTENTS
13
Contents
I
INTRODUCTION
17
II
HISTORY OF SKETCHPAD
31
III
RING STRUCTURE
37
IV
LIGHT PEN
53
V
DISPLAY GENERATION
63
VI
RECURSIVE FUNCTIONS
77
VII
BUILDING A DRAWING, THE COPY FUNCTION
87
VIII
CONSTRAINT SATISFACTION
93
IX
EXAMPLES AND CONCLUSIONS
99
A
CONSTRAINT DESCRIPTIONS
117
B
PUSH BUTTON CONTROLS
119
C
STRUCTURE OF STORAGE BLOCKS
121
D
RING OPERATION MACRO INSTRUCTIONS
127
E
PROPOSAL FOR AN INCREMENTAL CURVE DRAWING DISPLAY
129
F
MATHEMATICS OF LEAST MEAN SQUARE FIT
135
G
A BRIEF DESCRIPTION OF TX-2
137
14
CONTENTS
LIST OF FIGURES
15
List of Figures
1.1
1.2
1.3
1.4
1.5
1.6
1.7
Hexagonal Pattern . . . . . . . . . . . . . . . . . . . . . . . . . .
TX-2 Operating Area — Sketchpad in Use . . . . . . . . . . . . .
Plotter Used with Sketchpad . . . . . . . . . . . . . . . . . . . . .
Line and Circle Drawing . . . . . . . . . . . . . . . . . . . . . . .
Illustrative Example . . . . . . . . . . . . . . . . . . . . . . . . .
Four Positions of Linkage . . . . . . . . . . . . . . . . . . . . . .
Hexagon and Semicircle on Same Lattice . . . . . . . . . . . . .
19
20
21
22
23
26
27
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
N-Component Elements . . . . . . . . . . . . . . . . . . . . . . .
Basic Ring Structure . . . . . . . . . . . . . . . . . . . . . . . . . .
Line Segment and End Points . . . . . . . . . . . . . . . . . . . .
Zero and One Member Rings . . . . . . . . . . . . . . . . . . . .
Fresh Point Block . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compacting the Ring Structure . . . . . . . . . . . . . . . . . . .
Instances Generic Block . . . . . . . . . . . . . . . . . . . . . . .
Generic Structure . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
42
43
43
45
46
49
50
4.1
4.2
4.3
4.4
4.5
4.6
Light Pen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Construction of Light Pen . . . . . . . . . . . . . . . . . . . . . .
Predictive Pen Tracking . . . . . . . . . . . . . . . . . . . . . . .
Displays for Pen Tracking . . . . . . . . . . . . . . . . . . . . . .
Address in Display Register . . . . . . . . . . . . . . . . . . . . .
Operation of Pseudo Pen Location . . . . . . . . . . . . . . . . .
54
54
56
57
58
60
5.1
5.2
5.3
5.4
Twinkled Display . . . . . . . . . . . . . . . . . . . . . . . . . . .
Coordinate Systems . . . . . . . . . . . . . . . . . . . . . . . . . .
Display of Constraints . . . . . . . . . . . . . . . . . . . . . . . .
Display of Scalar and Digits . . . . . . . . . . . . . . . . . . . . .
65
67
74
75
6.1
Applying Two Constraints Indirectly to Two Lines . . . . . . . .
81
7.1
Definitions to Copy . . . . . . . . . . . . . . . . . . . . . . . . . .
90
9.1
9.2
9.3
9.4
9.5
9.6
Zig-Zag for Delay Line . . . . . . . . . . . . . . . . . . . . . . . .
BCD Encoder for Clock . . . . . . . . . . . . . . . . . . . . . . . .
Three Bar Linkage . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conic Drawing Linkage . . . . . . . . . . . . . . . . . . . . . . .
Dimension Lines . . . . . . . . . . . . . . . . . . . . . . . . . . .
Truss Under Load . . . . . . . . . . . . . . . . . . . . . . . . . . .
100
101
103
103
105
106
16
LIST OF FIGURES
9.7 Cantilever and Arch Bridges . . . . . . . . . . . . . . . . . . . . .
9.8 Winking Girl and Components . . . . . . . . . . . . . . . . . . .
9.9 Girl Traced from Photograph . . . . . . . . . . . . . . . . . . . .
9.10 Girl with Features Changed . . . . . . . . . . . . . . . . . . . . .
9.11 Circuit Diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . .
108
109
111
112
113
E.1 DDA for Drawing Lines . . . . . . . . . . . . . . . . . . . . . . . 130
E.2 DDA for Upright Conics . . . . . . . . . . . . . . . . . . . . . . . 132
E.3 DDA for General Conic . . . . . . . . . . . . . . . . . . . . . . . . 133
Chapter I
INTRODUCTION
k The Sketchpad system makes it possible for a man and a computer to con- 8↓
verse rapidly through the medium of line drawings. Heretofore, most interaction between men and computers has been slowed down by the need to
reduce all communication to written statements that can be typed; in the past,
we have been writing letters to rather than conferring with our computers.
For many types of communication, such as describing the shape of a mechanical part or the connections of an electrical circuit, typed statements can prove
cumbersome. The Sketchpad system, by eliminating typed statements (except
for legends) in favor of line drawings, opens up a new area of man-machine
communication.
The decision actually to implement a drawing system reflected our feeling
that knowledge of the facilities which would prove useful could only be obtained by actually trying them. The decision actually to implement a drawing
system did not mean, however, that brute force techniques were to be used to
computerize ordinary drafting tools; it was implicit in the research nature of
the work that simple new facilities should be discovered which, when implemented, should be useful in a wide range of applications, preferably including some unforseen ones. It has turned out that the properties of a computer
drawing are entirely different from a paper drawing not only because of the
accuracy, ease of drawing, and speed of erasing provided by the computer,
but also primarily because of the ability to move drawing parts around on a
computer drawing without the need to erase them. Had a working system not
been developed, our thinking would have been too strongly influenced by a
lifetime of drawing on paper to discover many of the useful servicesk that the 9↓
computer can provide.
As the work has progressed, several simple and very widely applicable
facilities have been discovered and implemented. They provide a subpicture
capability for including arbitrary symbols on a drawing, a constraint capability
for relating the parts of a drawing in any computable way, and a definition copying capability for building complex relationships from combinations of simple
atomic constraints.∗ When combined with the ability to point at picture parts
given by the demonstrative light pen language, the subpicture, constraint, and
∗
Terms with specialized meanings are listed in the glossary at the very end of this thesis.
18
INTRODUCTION
definition copying capabilities produce a system of extraordinary power. As
was hoped at the outset, the system is useful in a wide range of applications,
and unforseen uses are turning up.
AN INTRODUCTORY EXAMPLE
To understand what is possible with the system at present let us consider using
it to draw the hexagonal pattern of Figure 1.1. We will issue specific commands
with a set of push buttons, turn functions on and off with switches, indicate
position information and point to existing drawing parts with the light pen, rotate and magnify picture parts by turning knobs, and observe the drawing on
the display system. This equipment as provided at Lincoln Laboratory’s TX-2
computer [1] is shown in Figure 1.2. When our drawing is complete it may
be inked on paper, as were all the drawings in the thesis, by the plotter [12]
13↓ shown ink Figure 1.3. It is our intent with this example to show what the computer can do to help us draw while leaving the details of how it performs its
functions for the chapters which follow.
If we point the light pen at the display system and press a button called
“draw”, the computer will construct a straight line segment∗ which stretches
like a rubber band from the initial to the present location of the pen as shown
in Figure 1.4. Additional presses of the button will produce additional lines
until we have made six, enough for a single hexagon. To close the figure we
return the light pen to near the end of the first line drawn where it will “lock
on” to the end exactly. A sudden flick of the pen terminates drawing, leaving
the closed irregular hexagon shown in Figure 1.5A.
To make the hexagon regular, we can inscribe it in a circle. To draw the
circle we place the light pen where the center is to be and press the button
“circle center”, leaving behind a center point. Now, choosing a point on the
circle (which fixes the radius,) we press the button “draw” again, this time
getting a circle arc∗ whose length only is controlled by light pen position as
shown in Figure 1.4.
Next we move the hexagon into the circle by pointing to a corner of the
16↓ hexagon and pressing the button “move” so that the corner followsk the light
pen, stretching two rubber band line segments behind it. By pointing to the
circle and giving the termination flick we indicate that the corner is to lie on
the circle. Each corner is in this way moved onto the circle at roughly equal
spacing around it as shown in Figure 1.5D.
We have indicated that the vertices of the hexagon are to lie on the circle,
and they will remain on the circle throughout our further manipulations. If we
also insist that the sides of the hexagon be of equal length, a regular hexagon
will be constructed. This we can do by pointing to one side and pressing the
“copy” button, and then to another side and giving the termination flick. The
button in this case copies a definition of equal length lines and applies it to the
The terms “circle” and “line” may be used in place of “circle arc” and “line segment” respectively since a full circle in Sketchpad is a circle arc of 360 or more degrees and no infinite
line can be drawn.
∗
AN INTRODUCTORY EXAMPLE
Figure 1.1: (Originally on page 10.)
19
20
INTRODUCTION
Figure 1.2: TX-2 OPERATING AREA — SKETCHPAD IN USE. On the display
can be seen part of a bridge similar to that of Figure 9.6. The Author is holding
the Light pen. The push buttons used to control specific drawing functions are
on the box in front of the Author. Part of the bank of toggle switches can be
seen behind the Author. The size and position of the part of the total picture
seen on the display is obtained through the four black knobs just above the
table. (Originally on page 11.)
AN INTRODUCTORY EXAMPLE
21
Figure 1.3: PLOTTER USED WITH SKETCHPAD. A digital and analog control
system makes the plotter draw straight lines and circles either under direct
control of the TX-2 or off-line from punched paper tape. (Originally on page
12.)
22
INTRODUCTION
Figure 1.4: (Originally on page 14.)
AN INTRODUCTORY EXAMPLE
Figure 1.5: (Originally on page 15.)
23
24
INTRODUCTION
lines indicated. We have said, in effect, make this line equal in length to that
line. We indicate that all six lines are equal in length by five such statements.
The computer satisfies all existing conditions (if it is possible) whenever we
turn on a toggle switch. This done, we have a complete regular hexagon inscribed in a circle. We can erase the entire circle by pointing to any part of
it and pressing the “delete” button. The completed hexagon is shown in Figure 1.5F.
To make the hexagonal pattern of Figure 1.1 we wish to attach a large number of hexagons together by their corners, and so we designate the six corners
of our hexagon as attachment points by pointing to each and pressing a button. We now file away the basic hexagon and begin work on a fresh “sheet of
paper” by changing a switch setting. On the new sheet we assemble, by pressing a button to create each hexagon as a subpicture, six hexagons around a
central seventh in approximate position as shown in Figure 1.5G. Subpictures
may be positioned, each in its entirety, with the light pen, rotated or scaled
17↓ with the knobsk and fixed in position by the pen flick termination signal; but
their internal shape is fixed. By pointing to the corner of one hexagon, pressing a button, and then pointing to the corner of another hexagon we can fasten
those corners together, because these corners have been designated as attachment points. If we attach two corners of each outer hexagon to the appropriate
corners of the inner hexagon, the seven are uniquely related, and the computer
will reposition them as shown in Figure 1.5H. An entire group of hexagons,
once assembled, can be treated as a symbol. The entire group can be called up
on another “sheet of paper” as a subpicture and assembled with other groups
or with single hexagons to make a very large pattern. Using Figure 1.5H seven
times we get the pattern of Figure 1.1. Constructing the pattern of Figure 1.1
takes less than five minutes with the Sketchpad system.
INTERPRETATION OF INTRODUCTORY EXAMPLE
In the introductory example above we have seen how to draw lines and circles
and how to move existing parts of the drawing around. We used the light pen
both to position parts of the drawing and to point to existing parts. For example, we pointed to the circle to erase it, and while drawing the sixth line, we
pointed to the end of the first line drawn to close the hexagon. We also saw in
action the very general subpicture, constraint, and definition copying capabilities
of the system.
Subpicture: The original hexagon might just as well have been anything else:
a picture of a transistor, a roller bearing, an airplane wing, a letter, or
an entire figure for this report. Any number of different symbols may
be drawn, in terms of other simpler symbols if desired, and any symbol
18↓
may be used as often as desired.k
Constraint: When we asked that the vertices of the hexagon lie on the circle
we were making use of a basic relationship between picture parts that
is built into the system. Basic relationships (atomic constraints) to make
IMPLICATIONS OF INTRODUCTORY EXAMPLE
25
lines vertical, horizontal, parallel, or perpendicular; to make points lie
on lines or circles; to make symbols appear upright, vertically above one
another or be of equal size; and to relate symbols to other drawing parts
such as points and lines have been included in the system. It is so easy
to program new constraint types that the set of atomic constraints was
expanded from five to the seventeen listed in Appendix A in a period of
about two days; specialized constraint types may be added as needed.
Definition Copying: In the introductory example above we asked that the
sides of the hexagon be equal in length by pressing a button while pointing to the side in question. Here we were using the definition copying
capability of the system. Had we defined a composite operation such
as to make two lines both parallel and equal in length, we could have
applied it just as easily. The number of operations which can be defined
from the basic constraints applied to various picture parts is almost unlimited. Useful new definitions are drawn regularly; they are as simple
as horizontal lines and as complicated as dimension lines complete with
arrowheads and a number which indicates the length of the line correctly.
The definition copying capability makes using the constraint capability
easy.
IMPLICATIONS OF INTRODUCTORY EXAMPLE
As we have seen in the introductory example, drawing with the Sketchpad
system is different from drawing with an ordinary pencil and paper. Most important of all, the Sketchpad drawing itself is entirely different from the trail
of carbon left on a piece of paper. Information about how the drawing is tied
together is stored in the computer as well as the information which gives the
drawing its particular appearance. Since the drawing is tied together, it will
keep a useful appearance even when parts of it are moved. For example, when
we moved the corners of the hexagon onto the circle, the lines next to each
cornerk were automatically moved so that the closed topology of the hexagon 19↓
was preserved. Again, since we indicated that the corners of the hexagon were
to lie on the circle they remained on the circle throughout our further manipulations.
It is this ability to store information relating the parts of a drawing to each
other that makes Sketchpad most useful. For example, the linkage shown in
Figure 1.6 was drawn with Sketchpad in just a few minutes. Constraints were
applied to the linkage to keep the length of its various members constant. Rotation of the short central link is supposed to move the left end of the dotted
line vertically. Since exact information about the properties of the linkage has
been stored in Sketchpad, it is possible to observe the motion of the entire
linkage when the short central link is rotated. The value of the number in Figure 1.6 was constrained to indicate the length of the dotted line, comparing the
actual motion with the vertical line at the right of the linkage. One can observe
that for all positions of the linkage the length of the dotted line is constant,
26
INTRODUCTION
Figure 1.6: (Originally on page 20.)
IMPLICATIONS OF INTRODUCTORY EXAMPLE
27
Figure 1.7: (Originally on page 20.)
demonstrating that this is indeed a straight line linkage. Other examples of
moving drawings made with Sketchpad may be found in the final chapter.
As well as storing how the various parts of the drawing are related, Sketchpad stores the structure of the subpicture used. For example, the storage
for the hexagonal pattern of Figure 1.1 indicates that this pattern is made of
smaller patterns which are in turn made of smaller patterns which are composed of single hexagons. If the master hexagon is changed, the entire appearance of the hexagonal pattern will be changed. The structure of the pattern
will, of course, be the same. For example, if we change the basic hexagon into
a semicircle, the fish scale pattern shown in Figure 1.7 instantly results.
k Since Sketchpad stores the structure of a drawing, a Sketchpad drawing 21↓
explicitly indicates similarity of symbols. In an electrical drawing, for example, all transistor symbols are created from a single master transistor drawing.
If some change to the basic transistor symbol is made, this change appears at
once in all transistor symbols without further effort. Most important of all, the
computer “knows” that a “transistor” is intended at that place in the circuit.
It has no need to interpret the collection of lines which we would easily recognize as a transistor symbol. Since Sketchpad stores the topology of the drawing
as we saw in closing the hexagon, one indicates both what a circuit looks like
and its electrical connections when one draws it with Sketchpad. One can see
that the circuit connections are stored because moving a component automatically moves any wiring on that component to maintain the correct connections.
Sketchpad circuit drawings will soon be used as inputs for a circuit simulator.
Having drawn a circuit one will find out its electrical properties.
28
INTRODUCTION
SKETCHPAD AND THE DESIGN PROCESS
Construction of a drawing with Sketchpad is itself a model of the design process. The locations of the points and lines of the drawing model the variables
of a design, and the goemetric constraints applied to the points and lines of
the drawing model the design constraints which limit the values of design
variables. The ability of Sketchpad to satisfy the geometric constraints applied
to the parts of a drawing models the ability of a good designer to satisfy all
the design conditions imposed by the limitations of his materials, cost, etc. In
fact, since designers in many fields produce nothing themselves but a draw22↓ ing of a part, design conditions may well be thought of as applying to thek
drawing of a part rather than to the part itself. If such design conditions were
added to Sketchpad’s vocabulary of constraints the computer could assist a
user not only in arriving at a nice looking drawing, but also in arriving at a
sound design.
PRESENT USEFULNESS
At the outset of the research no one had ever drawn engineering drawings
directly on a computer display with nearly the facility now possible, and consequently no one knew what it would be like. We have now accumulated
about a hundred hours of experience actually making drawings with a working system. As is shown in the final chapter, application of computer drawing
techniques to a variety of problems has been made. As more and more applications have been made it has become clear that the properties of Sketchpad
drawings make them most useful in four broad areas:
For Making Small Changes to Existing Drawings:
Each time a drawing is made, a description of that drawing is stored
in the computer in a form that is readily transferred to magnetic
tape. Thus, as time passes, a library of drawings will develop,
parts of which may be used in other drawings at only a fraction
of the investment of time that was put into the original drawing.
Since a drawing stored in the computer may contain explicit representation of design conditions in its constraints, manual change
of a critical part will automatically result in appropriate changes to
related parts.
For Gaining Scientific or Engineering Understanding of Operations That Can
Be Described Graphically:
The description of a drawing stored in the Sketchpad system is
more than a collection of static drawing parts, lines and curves,
etc. A drawing in the Sketchpad system may contain explicit statements about the relations between its parts so that as one part is
PRESENT USEFULNESS
29
changed the implications of this change become evident throughout the drawing. It is possible, as we saw in Figure 1.6, to give the
property of fixed length to lines so as to study mechanical linkages,
observing thek path of some parts when others are moved.
As we saw in Figure 1.7 any change made in the definition of a
subpicture is at once reflected in the appearance of that subpicture
wherever it may occur. By making such changes, understanding
of the relationships of complex sets of subpictures can be gained.
For example, one can study how a change in the basic element of a
crystal structure is reflected throughout the crystal.
As a Topological Input Device for Circuit Simulators, etc.:
Since the ring structure storage of Sketchpad reflects the topology
of any circuit or diagram, it can serve as an input for many network
or circuit simulating programs. The additional effort required to
draw a circuit completely from scratch with the Sketchpad system
may well be recompensed if the properties of the circuit are obtainable through simulation of the circuit drawn.
For Highly Repetitive Drawings:
The ability of the computer to reproduce any drawn symbol anywhere at the press of a button, and to recursively include subpictures within subpictures makes it easy to produce drawings which
are composed of huge numbers of parts all similar in shape. Great
interest in doing this comes from people in such fields as memory
development and micro logic where vast numbers of elements are
to be generated at once through photographic processes. Master
drawings of the repetitive patterns necessary can be easily drawn.
Here again, the ability to change the individual element of the repetitive structure and have the change at once brought into all subelements makes it possible to change the elements of an array without redrawing the entire array.
Those readers who are primarily interested in the application of Sketchpad
are invited to turn next to Chapter IX, page 120 for aditional examples and
conclusions.
23↓
30
INTRODUCTION
Chapter II
HISTORY OF SKETCHPAD
k When at the end of the summer of 1960 Jack I. Raffel told me that there 24↓
was considerable interest at Lincoln Laboratory in making a computer “more
approachable” through advanced use of displays, I paid little heed, but a seed
had been planted. As work on TX-O computer at MIT during the winter of
1960-61 brought me some familiarity with using display and light pen, the
idea began to grow in my mind that application of computers to making line
drawings would be exciting and might prove fruitful. Late in April, 1961,
following