throbber
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/
`
`BlackBerry Exhibit 1015, pg. 1
`
`

`
`c(cid:13) 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
`
`BlackBerry Exhibit 1015, pg. 2
`
`

`
`Preface to this Electronic Edition
`
`Alan Blackwell and Kerry Rodden
`University of Cambridge Computer Laboratory
`
`Ivan Sutherland’s Sketchpad is one of the most in(cid:3)uential computer pro-
`grams ever written by an individual, as recognized in his citation for the Tur-
`ing award in 1988. The Sketchpad program itself had limited distribution (cid:151)
`executable versions were limited to a customized machine at the MIT Lincoln
`Laboratory (cid:151) so its in(cid:3)uence 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 (cid:151) hence this electronic archival
`publication.
`After 40 years, ideas introduced in Sketchpad still in(cid:3)uence how every
`computer user thinks about computing. It made fundamental contributions in
`the area of human(cid:150)computer interaction, being one of the (cid:2)rst 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 antic-
`ipated 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 in(cid:3)uenced by Sketchpad, made a more explicit argu-
`ment for the cognitive bene(cid:2)ts of this kind of direct interaction and feedback,
`coining the term (cid:147)icon(cid:148), and making it clear that graphical images could rep-
`resent 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 (cid:147)Sketchpad in(cid:3)uenced Star’s
`user interface as a whole as well as its graphics applications(cid:148), providing a di-
`rect link to the commercialization of the Macintosh and Windows interfaces
`and widely recognized bene(cid:2)ts of direct manipulation [8].
`Sketchpad encountered a critical challenge that remains central to human-
`computer interaction. Sutherland’s original aim was to make computers ac-
`cessible to new classes of user (artists and draughtsmen among others), while
`retaining the powers of abstraction that are critical to programmers. In con-
`trast, direct manipulation interfaces have since succeeded by reducing the lev-
`els of abstraction exposed to the user. Ongoing research in end-user program-
`
`BlackBerry Exhibit 1015, pg. 3
`
`

`
`4 m
`
`ing 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 sys-
`tem that, in failing to do so, provided the imaginative leap to a new program-
`ming paradigm. Nygaard and Dahl’s Simula [7] was the (cid:2)rst 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 in(cid:3)uence through the work of Dou-
`glas 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) in(cid:3)uenced Hoare’s
`own ideas(cid:3) on abstract data types [3], later credited by Nygaard and Dahl as
`the origin of the class de(cid:2)nition 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 in(cid:3)uenced 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 Sketch-
`pad 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 pro-
`gramming system. In comparing these two routes of in(cid:3)uence, Simula was a
`far larger project than Sketchpad, rightly recognized as the (cid:2)rst 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 dis-
`coveries by every researcher. The (cid:2)rst-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 (cid:147)follow the stumbling trail(cid:148) towards gen-
`erality, through the different versions of Sketchpad. His rather charming pro-
`posal that dynamic data structures should be described using the terminology
`(cid:147)hen and chickens(cid:148) has been a sad loss when compared to the far more prosaic
`terminology of linked lists and garbage collection. The struggles of develop-
`ing 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 graph-
`ics has moved on in the 40 years since Sketchpad’s development. For example,
`Sutherland says that (cid:147)if the almost identical but slightly different frames that
`are required for making a motion picture cartoon could be produced semi-
`automatically, the entire Sketchpad system could justify itself economically
`
`(cid:3)Personal communication with C. A. R. Hoare.
`
`BlackBerry Exhibit 1015, pg. 4
`
`

`
`5
`
`in another way(cid:148). Now, of course, we are used to seeing entire feature (cid:2)lms
`created from computer graphics. Also, in choosing manipulation of facial fea-
`tures 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 en-
`joyment to the contemporary reader, and we hope that it will reach a new
`audience with the assistance of this electronic edition, continuing the great in-
`(cid:3)uence 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 (cid:2)le
`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 (cid:2)nd.
`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 (cid:2)gures, 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
`
`BlackBerry Exhibit 1015, pg. 5
`
`

`
`6 R
`
`eferences
`
`[1] A. F. Blackwell. First steps in programming: A rationale for attention in-
`vestment 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 Lan-
`guages, pages 291(cid:150)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(cid:150)29,
`1989.
`
`[5] A. Kay. The early history of Smalltalk. ACM SIGPLAN Notices, 28(3):69(cid:150)95,
`1993. Also in T.J. Bergin and R.G. Gibson, editors, History of Programming
`Languages II, pages 511(cid:150)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(cid:150)272, 1978. Also in R. Wexelblat, editor,
`History of Programming Languages, pages 439(cid:150)493. Academic Press, 1981.
`
`[8] B. Shneiderman. Direct manipulation: A step beyond programming lan-
`guages. IEEE Computer, 16(8):57(cid:150)69, 1983.
`
`[9] D. C. Smith. Pygmalion: A Computer Program to Model and Stimulate Creative
`Thought. Birkh¤auser, Basel, 1977.
`
`[10] I. E. Sutherland. SketchPad: A man-machine graphical communication
`system. AFIPS Conference Proceedings 23, 1963, 323(cid:150)328.
`
`BlackBerry Exhibit 1015, pg. 6
`
`

`
`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
`
`BlackBerry Exhibit 1015, pg. 7
`
`

`
`8
`
`B|ackBerry Exhibit 1015, pg. 8
`
`BlackBerry Exhibit 1015, pg. 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, scienti(cid:2)c, 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 no-
`tion 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 (cid:147)light
`pen.(cid:148) The light pen is used both to position parts of the drawing on the dis-
`play and to point to them to change them. A set of push buttons controls the
`changes to be made such as (cid:148)erase,(cid:148) or (cid:147)move.(cid:148) Except for legends, no written
`language is used.
`Information sketched can include straight line segments and circle arcs.
`Arbitrary symbols may be de(cid:2)ned from any collection of line segments, circle
`arcs, and previously de(cid:2)ned symbols. A user may de(cid:2)ne and use as many
`symbols as he wishes. Any change in the de(cid:2)nition 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 compu-
`tation 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 paral-
`lel, 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 de(cid:2)ned 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
`
`BlackBerry Exhibit 1015, pg. 9
`
`

`
`10
`
`for a very wide range of problems. For example, Sketchpad has been used to
`(cid:2)nd the distribution of forces in the members of truss bridges drawn with it.
`Sketchpad drawings are stored in the computer in a specially designed
`(cid:147)ring(cid:148) 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
`
`BlackBerry Exhibit 1015, pg. 10
`
`

`
`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 sugges-
`tions at several critical times gave Sketchpad much of its present character.
`Special thanks are due to Professor Steven A. Coons of the Mechanical En-
`gineering Department and to Douglas T. Ross of the Electronic Systems Labo-
`ratory. 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 sup-
`port 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 of(cid:2)ce
`space and congenial of(cid:2)ce mates whose discussion and interest I greatly ap-
`preciate.
`Finally, I wish to thank Lawrence G. Roberts who was a constant source of
`answers to speci(cid:2)c questions I had both about the best ways to program TX-2
`and about the mathematics of difference equations and matrix manipulations.
`
`BlackBerry Exhibit 1015, pg. 11
`
`

`
`1212
`
`BlackBerry Exhibit 1015, pg. 12
`
`BlackBerry Exhibit 1015, pg. 12
`
`

`
`CONTENTS
`
`Contents
`
`I
`
`II
`
`III
`
`IV
`
`V
`
`VI
`
`INTRODUCTION
`
`HISTORY OF SKETCHPAD
`
`RING STRUCTURE
`
`LIGHT PEN
`
`DISPLAY GENERATION
`
`RECURSIVE FUNCTIONS
`
`VII
`
`BUILDING A DRAWING, THE COPY FUNCTION
`
`VIII CONSTRAINT SATISFACTION
`
`IX
`
`EXAMPLES AND CONCLUSIONS
`
`A
`
`B
`
`C
`
`D
`
`E
`
`F
`
`G
`
`CONSTRAINT DESCRIPTIONS
`
`PUSH BUTTON CONTROLS
`
`STRUCTURE OF STORAGE BLOCKS
`
`RING OPERATION MACRO INSTRUCTIONS
`
`PROPOSAL FOR AN INCREMENTAL CURVE DRAWING DIS-
`PLAY
`
`MATHEMATICS OF LEAST MEAN SQUARE FIT
`
`A BRIEF DESCRIPTION OF TX-2
`
`13
`
`17
`
`31
`
`37
`
`53
`
`63
`
`77
`
`87
`
`93
`
`99
`
`117
`
`119
`
`121
`
`127
`
`129
`
`135
`
`137
`
`BlackBerry Exhibit 1015, pg. 13
`
`

`
`14
`14
`
`CONTENTS
`CONTENTS
`
`B|ackBerry Exhibit 1015, pg. 14
`
`BlackBerry Exhibit 1015, pg. 14
`
`

`
`LIST OF FIGURES
`
`List of Figures
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`1.1 Hexagonal Pattern .
`1.2 TX-2 Operating Area (cid:151) Sketchpad in Use .
`1.3 Plotter Used with Sketchpad .
`.
`.
`.
`.
`.
`.
`.
`.
`1.4 Line and Circle Drawing .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`1.5
`Illustrative Example
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`1.6 Four Positions of Linkage .
`.
`.
`.
`.
`.
`.
`.
`.
`.
`1.7 Hexagon and Semicircle on Same Lattice
`.
`
`.
`.
`.
`.
`3.1 N-Component Elements .
`.
`.
`.
`.
`3.2 Basic Ring Structure .
`.
`.
`.
`.
`3.3 Line Segment and End Points .
`.
`3.4 Zero and One Member Rings .
`.
`3.5 Fresh Point Block .
`.
`.
`.
`.
`.
`.
`.
`3.6 Compacting the Ring Structure .
`3.7
`Instances Generic Block .
`.
`.
`.
`.
`3.8 Generic Structure .
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`.
`4.1 Light Pen .
`.
`.
`.
`.
`.
`4.2 Construction of Light Pen .
`.
`.
`.
`.
`.
`4.3 Predictive Pen Tracking .
`.
`.
`.
`.
`.
`.
`4.4 Displays for Pen Tracking .
`.
`.
`.
`.
`4.5 Address in Display Register .
`4.6 Operation of Pseudo Pen Location .
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`15
`
`19
`20
`21
`22
`23
`26
`27
`
`39
`42
`43
`43
`45
`46
`49
`50
`
`54
`54
`56
`57
`58
`60
`
`65
`67
`74
`75
`
`.
`.
`.
`.
`.
`.
`5.1 Twinkled Display .
`.
`.
`.
`.
`.
`5.2 Coordinate Systems .
`.
`.
`.
`5.3 Display of Constraints .
`5.4 Display of Scalar and Digits .
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`.
`.
`.
`.
`
`6.1 Applying Two Constraints Indirectly to Two Lines .
`
`7.1 De(cid:2)nitions to Copy .
`
`.
`
`.
`
`.
`
`.
`9.1 Zig-Zag for Delay Line .
`.
`9.2 BCD Encoder for Clock .
`.
`9.3 Three Bar Linkage .
`.
`.
`.
`9.4 Conic Drawing Linkage .
`9.5 Dimension Lines
`.
`.
`.
`.
`.
`9.6 Truss Under Load .
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`.
`.
`.
`.
`.
`.
`
`.
`
`.
`
`81
`
`90
`
`. 100
`. 101
`. 103
`. 103
`. 105
`. 106
`
`BlackBerry Exhibit 1015, pg. 15
`
`

`
`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 .
`.
`.
`.
`.
`.
`.
`.
`.
`
`E.1 DDA for Drawing Lines .
`E.2 DDA for Upright Conics .
`E.3 DDA for General Conic .
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`.
`.
`.
`.
`.
`
`.
`.
`.
`
`. 108
`. 109
`. 111
`. 112
`. 113
`
`. 130
`. 132
`. 133
`
`BlackBerry Exhibit 1015, pg. 16
`
`

`
`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 inter-
`action 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 mechan-
`ical 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 re(cid:3)ected our feeling
`that knowledge of the facilities which would prove useful could only be ob-
`tained 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 imple-
`mented, should be useful in a wide range of applications, preferably includ-
`ing 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 in(cid:3)uenced 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 de(cid:2)nition copy-
`ing capability for building complex relationships from combinations of simple
`atomic constraints.(cid:3) When combined with the ability to point at picture parts
`given by the demonstrative light pen language, the subpicture, constraint, and
`
`(cid:3)Terms with specialized meanings are listed in the glossary at the very end of this thesis.
`
`BlackBerry Exhibit 1015, pg. 17
`
`

`
`18
`
`INTRODUCTION
`
`de(cid:2)nition 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
`
`shown ink Figure 1.3. It is our intent with this example to show what the com-13# puter can do to help us draw while leaving the details of how it performs its
`
`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 speci(cid:2)c 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, ro-
`tate 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]
`
`functions for the chapters which follow.
`If we point the light pen at the display system and press a button called
`(cid:147)draw(cid:148), the computer will construct a straight line segment(cid:3) 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 (cid:2)gure we
`return the light pen to near the end of the (cid:2)rst line drawn where it will (cid:147)lock
`on(cid:148) to the end exactly. A sudden (cid:3)ick 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
`(cid:147)circle center(cid:148), leaving behind a center point. Now, choosing a point on the
`circle (which (cid:2)xes the radius,) we press the button (cid:147)draw(cid:148) again, this time
`getting a circle arc(cid:3) 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
`
`circle and giving the termination (cid:3)ick 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
`(cid:147)copy(cid:148) button, and then to another side and giving the termination (cid:3)ick. The
`button in this case copies a de(cid:2)nition of equal length lines and applies it to the
`
`hexagon and pressing the button (cid:147)move(cid:148) so that the corner followsk the light16# pen, stretching two rubber band line segments behind it. By pointing to the
`
`(cid:3)The terms (cid:147)circle(cid:148) and (cid:147)line(cid:148) may be used in place of (cid:147)circle arc(cid:148) and (cid:147)line segment(cid:148) re-
`spectively since a full circle in Sketchpad is a circle arc of 360 or more degrees and no in(cid:2)nite
`line can be drawn.
`
`BlackBerry Exhibit 1015, pg. 18
`
`

`
`AN INTRODUCTORY EXAMPLE
`
`19
`
`Figure 1.1: (Originally on page 10.)
`
`BlackBerry Exhibit 1015, pg. 19
`
`

`
`20
`
`INTRODUCTION
`
`Figure 1.2: TX-2 OPERATING AREA (cid:151) 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 speci(cid:2)c 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.)
`
`BlackBerry Exhibit 1015, pg. 20
`
`

`
`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.)
`
`BlackBerry Exhibit 1015, pg. 21
`
`

`
`22
`
`INTRODUCTION
`
`Figure 1.4: (Originally on page 14.)
`
`BlackBerry Exhibit 1015, pg. 22
`
`

`
`AN INTRODUCTORY EXAMPLE
`
`23
`
`Figure 1.5: (Originally on page 15.)
`
`BlackBerry Exhibit 1015, pg. 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 (cid:2)ve such statements.
`The computer satis(cid:2)es all existing conditions (if it is possible) whenever we
`turn on a toggle switch. This done, we have a complete regular hexagon in-
`scribed in a circle. We can erase the entire circle by pointing to any part of
`it and pressing the (cid:147)delete(cid:148) button. The completed hexagon is shown in Fig-
`ure 1.5F.
`To make the hexagonal pattern of Figure 1.1 we wish to attach a large num-
`ber 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 but-
`ton. We now (cid:2)le away the basic hexagon and begin work on a fresh (cid:147)sheet of
`paper(cid:148) by changing a switch setting. On the new sheet we assemble, by press-
`ing 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
`
`ing a button, and then pointing to the corner of another hexagon we can fasten
`those corners together, because these corners have been designated as attach-
`ment 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 (cid:147)sheet of paper(cid:148) 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 (cid:2)ve minutes with the Sketchpad system.
`
`with the knobsk and (cid:2)xed in position by the pen (cid:3)ick termination signal; but17# their internal shape is (cid:2)xed. By pointing to the corner of one hexagon, press-
`
`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 exam-
`ple, we pointed to the circle to erase it, and while drawing the sixth line, we
`pointed to the end of the (cid:2)rst line drawn to close the hexagon. We also saw in
`action the very general subpicture, constraint, and de(cid:2)nition 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 (cid:2)gure for this report. Any number of different symbols may
`be drawn, in terms of other simpler symbols if desired, and any symbol
`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
`
`18#
`
`BlackBerry Exhibit 1015, pg. 24
`
`

`
`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 (cid:2)ve to the seventeen listed in Appendix A in a period of
`about two days; specialized constraint types may be added as needed.
`
`De(cid:2)nition Copying: In the introductory example above we asked that the
`sides of the hexagon be equal in length by pressing a button while point-
`ing to the side in question. Here we were using the de(cid:2)nition copying
`capability of the system. Had we de(cid:2)ned a composite operation such
`as to make two lines both parallel and equa

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket