Firearms

Reference / Paper · 1963 (2003 reprint)

Sketchpad: A Man-Machine Graphical Communication System (UCAM-CL-TR-574)

Read the PDF ↗

Sutherland's 1963 MIT thesis, reissued by the Cambridge Computer Laboratory with a new preface. Chapter IV covers the light pen on a random-scan display.

Author
Ivan E. Sutherland
Year
1963 (2003 reprint)
Type
Reference / Paper
Credit
University of Cambridge Computer Laboratory (cl.cam.ac.uk)
  • sketchpad
  • light pen
  • vector display

← Back to the Reference Library

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