`A MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM*
`
`Ivan E. Sutherland
`Consultant, Lincoln Laboratory**
`Massachusetts Institute of Technology
`
`I.
`INTRODUCTION
`The Sketchpad system makes it possible for
`a man and a computer
`to converse rapidly
`through
`the medium of line drawings. Here(cid:173)
`tofore, most interaction between man and com(cid:173)
`puters has been slowed down Ly the need to
`reduce all communication to writ ten statements
`that can be typed;
`in the past, we have been
`writing
`letters
`to rather
`than conferring with
`our computers. For many types of communica(cid:173)
`tion, such as describing
`the shape of a me(cid:173)
`chanical part or the connections of an electrical
`circuit,
`typed statements
`can prove cumber(cid:173)
`some. The Sketehpad system, by eliminating
`typed statements
`(except for legends) in favor
`of line drawings, opens up a new area of man(cid:173)
`machine communication.
`
`AN INTRODUCTORY EXAMPLE
`To understand what is possible with the sys(cid:173)
`tem at present let us consider using it to draw
`the hexagonal pattern
`in Figure 4. We wi11
`issue specific commands with a sd of push but(cid:173)
`tons, turn functions on and off with switches,
`indicate position information and point to exist(cid:173)
`ing 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 Labora-
`
`tory;s TX-2 computer 1 is shown in Figure 1.
`When our drawing is complete it may be inked
`on paper, as were all the drawings in this paper,
`by a PACE plotter. 15
`If we point the light pen at the display sys(cid:173)
`tem and press a button called "draw," the com(cid:173)
`puter will construct a straight
`line segment
`which stretches
`like a rubber band from the
`
`~'Sil·'
`Iii!!!'
`l!u:I
`
`-•·r __ ..._,
`
`Figure 1. TX-2 operating area-Sketchpad
`in use. On
`the display can be seen part of a bridge similar
`to those
`of Figure 15. The Author
`is holding the light pen. The
`push buttons "draw,"
`"move," etc., 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 tne total picture
`seen on the display are
`controlled by the four black knobs just above the tables.
`
`of Electrical Engineering, M.I.T.,
`tothe Department
`• This paper is based in part on a thesis submitted
`partial
`fulfillment of the requirements
`for the Degree of Doctor of Philosophy.
`u Operated with the support of the U.S. Army, Navy,and Air Force ..
`
`in
`
`507
`
`Falkbuilt Ex. 1019, Page 001
`
`
`
`PROCEEDINGS-SPRING
`
`JOINT COMPUTER CONFERENCE, 1963
`
`A. SIX SIDED FIGURE
`
`B. TO BE INSCRIBED IN CIRCLE
`
`location of the pen as
`to the present
`initial
`shown in Figure 2. Additional presses of the
`lines, leaving the
`button will produce additional
`closed irregular hexagon shown in Figure 3A.
`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
`leaving behind a center
`button "circle center,"
`point. Now, choosing a point on the circle
`(which fixes the radius) we press the button
`time getting a circle arc
`this
`again,
`"draw''
`length only is controlled by light
`whose angular
`pen position as shown in Figure 2.
`
`/
`.,,,.,,,
`
`I
`
`I
`
`/
`
`.,,... -,
`\
`-.=-..sTART DRAW l
`' ,---------...... ,
`---
`PATH OF LIGHT PEN
`" (
`\ '
`' ' J
`
`LINE SEGMENT
`
`D DO
`0
`0
`E{}J
`
`C. BY MOVING EACH CORNER
`
`D. ON TO CIRCLE
`
`E. MAKE SIDES EQUAL
`
`0
`~80
`000
`
`F. ERASE CIRCLE
`
`PATH OF LIGHT PEN
`I.,-------,
`____ .,,,
`
`\
`
`/
`(
`/
`I
`I
`l
`START DRAW__..;
`CIRCLE CENTER/
`
`\
`\
`I
`
`I
`I
`I
`I
`\
`
`TERMINATE-,
`
`ARC OBTAINED-
`,
`
`\
`
`.... ,
`
`'
`
`,_.,. .... _ ..... ----c
`
`\
`1
`I
`
`Figure 2. Steps for drawing straight
`arcs.
`
`lmei and circle
`
`Next we move the hexagon into the circle by
`to a corner of the hexagon and press(cid:173)
`pointing
`the corner fol(cid:173)
`ing the bu.tton "move" so that
`two rubber band
`lows the light pen, stretching
`to the
`it. By pointing
`line segments behind
`
`G. CALL 7 HEXAGONS
`
`H. JOIN CORNERS
`
`Figure
`
`3.
`
`Illustrative
`
`example,
`
`see text.
`
`the
`that
`terminating, we indicate
`circle and
`corner is to lie on the circle. Each corner is in
`this way moved onto the circle at roughly equal
`spacing as shown in Figure 3D.
`the vertices of the
`that
`We have indicated
`hexagon are to lie on the circle, and they will
`our further
`throughout
`remain on the circle
`If we also insist that the sides
`manipulations.
`of the hexagon be of equal length, a regular
`hexagon will be constructed.
`With Sketchpad we can say, in effect, make
`to that line, pointing
`this line equal in length
`to the lines with the light pen. The computer
`(if it is possi(cid:173)
`satisfies all existing conditions
`ble) whenever we turn on a toggle switch. This
`in(cid:173)
`done, we have a complete regular hexagon
`the entire
`in a circle. We can erase
`scribed
`circle by pointing to any part of it and pressing
`is
`the "delete" button. The completed hexagon
`shown in Figure 3F.
`
`508
`
`Falkbuilt Ex. 1019, Page 002
`
`
`
`SKETCHPAD: A MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM
`
`in Figure 4
`To make the hexagonal pattern
`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 p~essing a but(cid:173)
`ton. 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 buttqn
`to create
`each hexagon as an "instance" or subpicture,
`six hexagons around a central seventh
`in ap(cid:173)
`proximate position as shown in Figure 3G. A
`subpicture may be positioned with the light pen,
`rotated or scaled by turning
`the knobs, or fixed
`in position by a termination
`signal, but its in(cid:173)
`ternal 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 3H.
`An entire group of hexagons, once assembled,
`can be treated as a symbol. An "instance" of
`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.
`
`INTERPRETATION
`EXAMPLE
`
`OF INTRODUCTORY
`
`example above we used
`In the introductory
`the light pen both to position parts of the draw(cid:173)
`ing and to point to existing parts. We also saw
`in action
`the very general
`subpicture,
`con(cid:173)
`and definition copying capabilities of
`straint,
`the system.
`Subpicture:
`The original hexagon might just as well have
`been anything else: a picture of a transistor,
`a roller bearing, or an airplane wing. Any
`~umber of different symbols may be drawn,
`m terms of other simpler symbols if desired,
`and any symbol may be used as often as
`desired.
`Constraint:
`When we asked that the vertices of the hexa(cid:173)
`gon lie on the circle we were making use of
`
`between picture parts
`a basic relationship
`that is built into the system. Basic relation(cid:173)
`ships
`(atomic constraints)
`to make
`lines
`vertical, horizontal, parallel, or perpendicu(cid:173)
`lar;
`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. Specialized constraint
`types
`may be added as needed.
`
`Definition Copying:
`We made the sides of the hexagon be equal
`in length by pressing a button while pointing
`to the side in question. Had we defined a
`composite operation
`such as
`to make
`two
`lines both parallel and equal in length, we
`could have &PPlied it just as easily.
`
`IMPLICATIONS OF INTRODUCTORY
`EXAMPLE
`
`is en(cid:173)
`As we have seen, a Sketchpad drawing
`tirely different from the trail of carbon left on
`a piece of paper.
`Information
`about how the
`drawing
`is tied together
`is stored
`in the com(cid:173)
`puter as well as the information which gives
`the drawfog
`its particular
`appearance.
`Since
`the drawing
`is tied together,
`it will keep a use(cid:173)
`ful 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
`corner were automatically moved so that
`the
`closed topology of the hexagon was preserved.
`Again, since we indicated
`that
`the corners of
`the hexagon were to lie on the circle, they re(cid:173)
`mained on the circle
`throughout
`our further
`manipulations.
`As well as storing how the various parts of
`the drawing are related, Sketchpad stores
`the
`structure of .the subpictures used. For example,
`the storage for the hexagonal pattern of Figure
`4 indicates that this pattern
`is made of smaller
`patterns which are
`in turn made of smaller
`patterns which are composed of single hexa(cid:173)
`gons.
`If the master hexagon
`is changed,
`the
`entire appearance but not the structure of the
`hexagonal pattern will be changed. For ex(cid:173)
`ample, if we change the basic hexagon
`into a
`semicircle, the fish scale pattern shown in Fig(cid:173)
`ure 4 instantly
`results.
`
`509
`
`Falkbuilt Ex. 1019, Page 003
`
`
`
`PROCEEDINGS-SPRING
`
`JOINT COMPUTER CONFERENCE, 1963
`
`lattice with half hexagon
`Figure 4. Hexagonal
`semicircle as basic elements.
`
`and
`
`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 geo(cid:173)
`metric constraints
`applied
`to the points and
`lines of the· drawing model the design con(cid:173)
`straints which limit the values of. design varia(cid:173)
`bles. 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 drawing of a part,
`design conditions may well be thought of as
`applying to the drawing of a part rather
`than
`to the part itself. When such design conditions
`are added to Sketchpad's vocabulary of con(cid:173)
`straints,
`the computer will be able to assist a
`user not only in arriving at a nice looking
`drawing, but also in arriving at a sound design.
`
`PRESENT USEFULNESS
`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 Storing and Updating 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 mag(cid:173)
`netic tape. A library of drawings will thus
`develop, parts of which may be used in other
`drawings at only a fraction of the invest(cid:173)
`ment of time that was put into the original
`drawing.
`For Gaining Scientific or Engineering Under(cid:173)
`Standing of Operations That Can Be Described
`Graphically:
`
`A drawing in the Sketchpad system may con(cid:173)
`tain explicit statements about the relations
`between
`its parts so that as one part
`is
`changed the implications of this change be(cid:173)
`come evident throughout
`the drawing. For
`instance, Sketchpad makes it easy to study
`mechanical
`linkagE~s, observing
`the path of
`some parts when others are moved.
`As a Topological
`Input Device for Circuit
`Simulators, etc.:
`Since the storage structure of Sketchpad re(cid:173)
`flects the topology of any circuit or diagram,
`it can serve as an input for many network
`or circuit simulating programs. The addi(cid:173)
`tional 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 num(cid:173)
`bers of parts all similar in shape.
`
`II. RING STRUCTURE
`The basic n-component element structure de(cid:173)
`scribed by Ross 10 has been somewhat expanded
`in the implementation of Sketchpad so that all
`references made to a particular n-component
`element or block are collected together by a
`string of pointers which originates within that
`block. For example, not only may
`the end
`points of a line segment be found by following
`pointers
`in the line block ( n-component ele(cid:173)
`ment), but also all the line segments which
`terminate on a particular point may be found by
`following a string of pointers which starts
`within the point block. This string of pointers
`closes on itself; the last pointer points back to
`the first, hence the name "ring." The ring
`points both ways to make it easy to find both the
`next and the previous member of the ring in
`case, as when deleting, some change must be
`made to them.
`
`BASIC OPERATIONS
`The basic ring structure operations are:
`1. Inserting a new member
`into a ring at
`
`510
`
`Falkbuilt Ex. 1019, Page 004
`
`
`
`SKETCHPAD: A MAN-MACHINE GRAPHICAL COMMUNICATION
`
`SYSTEM
`
`some specified location on it, usually first
`or last.
`from a ring.
`2. Removing a member
`in
`3. Putting all the members of one ring,
`order, into another at some specified loca(cid:173)
`tion in it, usually first or last.
`some auxiliary operation on
`4. Performing
`each member of a ring in either forward
`or reverse order.
`These basic ring structure operations are im(cid:173)
`plemented by short sections of program defined
`lan(cid:173)
`in the compiler
`instructions
`as MACRO
`treatment of zero and one
`guage. By suitable
`member rings, the basic programs operate with(cid:173)
`out making special cases.
`are used for setting up new n(cid:173)
`Subroutines
`in free spaces in the stor(cid:173)
`component elements
`are
`age structure. As parts of the drawing
`deleted, the registers which were used to rep(cid:173)
`resent them become free. New components are
`set up at the end of the storage area, lengthen(cid:173)
`ing it, while free blocks are allowed to accumu(cid:173)
`late. Garbage collection periodically compacts
`the storage structure by removal of the free
`blocks.
`
`GENERIC STRUCTURE, HIERARCHIES
`
`can perform
`The main part of Sketchpad
`basic operations on any drawing part, calling
`to particular
`specific
`routines
`for help from
`types of parts when that is necessary. For ex(cid:173)
`ample, the main program can show any part
`on the display system by calling the appropriate
`display subroutine. The big power of the clear(cid:173)
`cut separation of the general and the specific
`is that it is easy to change the details of specific
`re(cid:173)
`to get quite different
`parts of the program
`the general
`sults without any need to change
`parts.
`the separation
`In the data storage structure
`of general and specific is accomplished by col(cid:173)
`in a ring
`lecting all things of one type together
`under a generic heading. The generic heading
`contains all the information which makes this
`type of thing different from all other types of
`itself
`things. Thus the data storage structure
`contains all the specific information. The gen(cid:173)
`together under
`eric blocl<s are further gathered
`as
`blocks,
`or generic-generic
`super-generic
`shown in Figure 5.
`
`UNIVERSE
`
`VARIABLES
`
`HOLOERS
`
`CONSTRAINTS
`
`TOPO$
`
`The 11-component ele(cid:173)
`structure.
`Figure 5. Generic
`ments for each point or line, etc., are collected under the
`generic blocks "lines," "points," etc., shown.
`
`SKETCHPAD
`EXPANDING
`Addition of new types of things to the Sketch(cid:173)
`re-·
`pad system's vocabulary of picture parts
`quires only the construction of a new generic
`and the writing of
`block (about 20 registers)
`for the new type. The
`subroutines
`appropriate
`to write, as they
`subroutines might be easy
`usually are for new constraints, or difficult to
`write, as for adding ellipse capability, but at
`faces one
`task
`finite, well-defined
`least a
`to add a new ability to the system. Without a
`it would be almost impossible
`generic structure
`to handle a
`required
`instructions
`to add the
`new type of element.
`
`III. LIGHT PEN
`the light pen* is time shared
`In Sketchpad
`input for
`the functions of coordinate
`between
`positioning picture parts on the drawing and
`to existing
`for pointing
`input
`demonstrative
`picture parts to make changes. Although almost
`input device could be
`any kind of coordinate
`used instead of the light pen for positioning,
`light pen
`the
`input uses
`the demonstrative
`to remove
`optics as a sort of analog computer
`all but a very few picture
`from consideration
`its field of
`to fall within
`parts which happen
`time. Draw(cid:173)
`view, saving considerable program
`ing systems using storage display gevices of
`type may not be practical be(cid:173)
`the Memotron
`loss of this analog computation
`cause of the
`feature.
`
`light pens should
`• The reader unacquainted with
`to the paper on Man-Machine Console Facilities
`refer
`in this issue.
`by Stotz"
`
`511
`
`Falkbuilt Ex. 1019, Page 005
`
`
`
`PROCEEDINGS-SPRING
`
`JOINT COMPUTER CONFERENCE, 1963
`
`PEN TRACKING
`
`the
`tracking,*
`pen
`establish
`initially
`To
`Sketchpad user must inform the computer of an
`initial pen location. This has come to be known
`as "inking-up" and is done by "touching" any
`existing line or spot on the display, whereupon
`the tracking cross appears.
`If no picture has
`INK are always
`yet been drawn,
`the letters
`displayed for this purpose. Sketchpad uses loss
`of tracking as a "termination
`signal"
`to stop
`drawing. The user signals
`that he is finished
`drawing by flicking the pen too fast for the
`tracking program
`to follow.
`
`DEMON~TRA TIVE USE OF PEN
`the 90 7< of the time that
`the light
`During
`pen and display system are free from the track(cid:173)
`ing chore, spots are very rapidly displayed
`to
`exhibit
`the drawing being built, and thus the
`lines and circles of the drawing appear. The
`light pen is sensitive to these spots and reports
`any which fall within its field of view. Thus, a
`table of the picture parts seen by the light pen
`is assembled during
`each complete display
`cycle. At the end of a display cycle this table
`contains all the picture parts
`that could even
`remotely be considered as being "aimed at."
`The one-half
`inch diameter
`field of view of
`the light pen, although well suited to tracking
`is relatively
`large for pointing. Therefore,
`th~
`Sketchpad
`system will reject any seen part
`which is further
`from the center of the light
`pen than some small minimum distance· about
`1/a inch was found to be suitable. Fo; every
`kind of picture part some method must be pro(cid:173)
`vided for computing
`its distance from the light
`pen center or indicating
`that this computation
`cannot be made.
`After eliminating all parts seen by the pen
`which lie outside the smaller effective field of
`view, the Sketchpad
`system considers objects
`topologically related
`to the ones actually seen.
`~nd points of lines and attachment points of
`instances
`(subpictures)
`are especially
`impor(cid:173)
`tant. One can thus aim at the end point of a
`li~e even though only the
`line
`is displayed.
`Figure 6 outlines
`the various
`regions within
`which the pen must lie to be considered aimed
`at a line. segment, a circle arc, their end points
`or their intersection.
`
`'
`
`PSEUDO PEN LOCATION
`When the light pen is aimed at a picture part,
`the exact location of the light pen is ignored in
`favor of a "pseudo pe,n location" exactly on the
`If no object
`is aimed at, the
`part aimed at.
`pseudo pen location
`is taken
`to be the actual
`pen location. The pseudo pen location
`is dis(cid:173)
`played as a bright dot which
`is used as the
`"point of the pencil" in all drawing operations.
`As the light pen is moved into the areas out(cid:173)
`lined in Figure 6 the dot will lock onto the
`existing parts of the drawing, and any moving
`picture parts will jump to their new locations
`as the pseudo pen location moves to lie on the
`appropriate picture part.
`-....
`,,A
`\
`.... ,,
`I
`)
`
`/
`
`/
`
`AT LINE
`/
`,/'
`-"'------<
`'
`,
`.... ,,. 7-·
`,,
`..L~ ~------(cid:173)
`I
`1
`--1---...,-;;------t--
`~-------'-✓
`\-~-----,,'/'
`:
`I
`AT INTERSECTION
`
`+-AT
`\
`I ✓ '\
`4+--AT
`\j
`,_.,
`\
`I
`
`CIRCLE
`
`POINT
`
`lie to "aim at"
`in which pen must
`Figure 6. Areas
`existing drawing parts
`(solid Jines).
`
`the basic drawing creation and
`just
`With
`functions of "draw," "move," and
`manipulation
`"delete," and the power of the pseudo pen loca(cid:173)
`tion and demonstrative
`language programs,
`it
`is possible to make fairly extensive drawings.
`Most of the constructi.ons no.r;mally provided by
`straight
`edge and compass are available
`in
`highly accurate
`form. Most important,
`how(cid:173)
`ever, the pseudo pen location and demonstra(cid:173)
`tive language give the means for entering
`the
`topological properties of a drawing
`into
`the
`machine.
`
`IV. DISPLAY GENERATION
`The display system, or "scope," on the TX-2
`is a ten bit per axis electrostatic
`deflection
`system able to display spots at a maximum rate
`of about 100,000 per second. The coordinates
`of the spots which are to be seen on the display
`are stored in a large table so that computation
`and display may proceed
`independently.
`If,
`instead of displaying each spot successively, the
`
`512
`
`Falkbuilt Ex. 1019, Page 006
`
`
`
`SKETCHPAD: A MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM
`
`in a random
`them
`display program displays
`order or with interlace,
`the flicker of the dis(cid:173)
`play is reduced greatly.
`
`the scope corners. Now which of
`be identical,
`these intersections
`are actually
`to be used as
`starts of circle arcs?
`
`MARKING OF DISPLAY FILE
`Of the 36 bits available to store each display
`spot in the display file, 20 give the coordinates
`of that spot for the display system, and the
`remaining 16 give the address of the n-compo(cid:173)
`nent element which is responsible
`for adding
`that spot to the display. Thus, all the spots in
`a line are tagged with the ring structure
`ad(cid:173)
`dress of that
`line, and all the spots in an in(cid:173)
`stance (subpicture)
`are tagged as belonging to
`that
`instance. The tags are used to identify
`the particular part of the drawing being aimed
`at by the light pen.
`is being moved by
`If a part of the drawing
`the light pen, its display spots will be recom(cid:173)
`puted as quickly as possible to show it in suc(cid:173)
`cessive positions. The display spots for such
`moving parts are stored at the end of the dis(cid:173)
`play file so that the display of the many non(cid:173)
`moving parts need not be disturbed. Moving
`parts are made invisible to the light pen.
`
`MAGNIFICATION OF PICTURES
`The shaft position encoder knobs below the
`scope (see Figure 1) are used to tell the pro(cid:173)
`gram to change the display scale factor or the
`portion of the page displayed. The range of
`magnification of 2000 available makes it pos(cid:173)
`sible to work, in effect, on a 7-inch square por(cid:173)
`tion of a drawing about ¼ mile on a side.
`For a magnified picture, Sketchpad computes
`which portion (s) of a curve will appear on the
`display and generates display spots for those
`portions only. The "edge detection" problem
`is the problem of finding suitable end points for
`the portion of a curve which appears on the
`display.
`is
`the edge detection problem
`In concept
`trivial.
`In terms of program
`time for lines and
`circles the problem
`is a small fraction of the
`total computational
`load of the system, but in
`terms of program
`logical complexity
`the edge
`detection problem
`is a difficult one. For ex(cid:173)
`ample, the computation of the intersection of
`a circle with any of the edges of the scope is
`easy, but computation of the intersection of a
`circle with all four edges may result in as many
`as eight intersections, some pairs of which may
`
`LINE AND CIRCLE GENERATION
`All of Sketchpad's
`displays are generated
`from straight
`line segments, circle arcs, and
`single points. The generation of 'the lines and
`circles is accomplished by means of the differ(cid:173)
`ence equations:
`Xi-1 + AX
`Xi=
`for lines, and
`
`(1)
`
`(2)
`
`i indicate succes(cid:173)
`for circles, where subscripts
`c indicates
`the
`sive display spots, subscript
`circle center, and R is the radius of the circle
`in Scope Units.
`In implementing
`these differ(cid:173)
`ence equations
`in the program,
`the fullest pos(cid:173)
`sible use is made of the coordinate arithmetic
`capability of the TX-2 so that both the x and y
`equation computations
`are performed
`in par(cid:173)
`allel on 18 bit subwords. Even so, about o/.i. of
`the total Sketchpad computation
`time is spent
`in line and circle generation. A vector and
`circle generating display would materially
`re(cid:173)
`duce the computational
`load of Sketchpad.
`For computers which do only one addition
`at a time, the difference equations:
`
`I
`X; = Xi-1 + R (Yi-1 -
`
`y.)
`
`(3)
`
`should be used to generate circles. Equations
`(3) approximate a circle well enough and are
`known to close exactly both in theory and when
`implemented, because the x and y equations are
`dissimilar.
`
`DIGITS AND TEXT
`is dis(cid:173)
`Text, to put legends on a drawing,
`played by means of special tables which indi(cid:173)
`cate the locations of line and circle segments
`to make up the letters and numbers. Each piece
`of text appears as a single line of not more
`
`513
`
`Falkbuilt Ex. 1019, Page 007
`
`
`
`PROCEEDINGS-SPRING
`
`JOINT COMPUTER CONFERENCE, 1963
`
`than 36 equally spaced characters which can
`be changed by typing. Digits
`to display
`the
`value of an indicated scalar at any position and
`in any size and rotation are formed from the
`same type face as text. It is possible to display
`up to five decimal digits with sign; binary
`to
`decimal conversion
`is provided, and
`leading
`zeros are suppressed.
`Subpictures, whose use was seen in the in(cid:173)
`troductory example above, are each represented
`in storage as a single n-component element.
`A subpicture
`is said to be an "instance" of its
`"master picture." To display an instance, all
`of the lines, text, etc. of its master picture must
`be shown in miniature on the display. The in(cid:173)
`stance display program makes use of the line,
`circle, number, and text display programs and
`itself
`to expand
`the internal
`structure of the
`instance.
`
`DISPLAY OF ABSTRACTIONS
`The usual picture
`for human consumption
`displays only lines, circles,
`text, digits, and
`instances. However, certain very useful ab(cid:173)
`stractions which give the drawing
`the proper(cid:173)
`ties desired by the user are represented
`in the
`ring structure
`storage. For example, the fact
`that
`the start and end points of a circle arc
`should be equidistant
`from the circle's center
`point is represented
`in storage by a ''constraint"
`block. To make it possible for a user to manip(cid:173)
`ulate these abstractions, each abstraction must
`if desired.
`be able to be seen on the display
`Not only does displaying abstractions make it
`possible for the human user to know that they
`exist, but also makes it possible for him to aim at
`them with the light pen and, for example, erase
`them. To avoid confusion, the display for par(cid:173)
`ticular
`types of objects may be turned on or
`off selectively by toggle switches. Thus,
`for
`example, one can turn on display of constraints
`as well as or instead of the lines and circles
`which are normally seen.
`is on, con(cid:173)
`If their selection
`toggle switch
`straints
`are displayed as shown
`in Figure 7.
`The central circle and code letter are located
`at the average
`location of the variables con(cid:173)
`strained. The four arms of a constraint extend
`from the top, right side, bottom, and left side
`of the circle
`to the first, second,
`third, and
`fourth variables constrained,
`respectively.
`If
`fewer than four variables are constrained, ex-
`
`®
`
`Figure 7. Display of constraints.
`
`In Figure 7 the con(cid:173)
`cess arms are omitted.
`straints
`are shown applied
`to "dummy varia(cid:173)
`bles," each of which shows as an X.
`Another abstraction
`that can be displayed
`if desired
`is the value of a set of digits. For
`example,
`in Figure 8 are shown three sets of
`digits all displaying
`the same scalar value,
`-5978. The digits
`themselves may be moved,
`rotated, or changed
`in size, without changing
`the value displayed.
`If we wish to change the
`value, we point at its abstract display,
`the #
`seen in Figure 8. The three sets · of digits
`in
`Figure 8 all° display
`the same value, as indi(cid:173)
`cated by the lines connecting
`them
`to the #;
`changing
`this value would make all three sets
`of digits change. Constraints may be applied
`independently
`to either the position of the digits
`or their value as indicated by the
`two con(cid:173)
`straints
`in the figure.
`
`V. RECURSIVE FUNCTIONS
`In the process of making the Sketchpad sys(cid:173)
`tem operate, a few very general functions were
`developed which make no reference at all to
`the specific types of entities on which they oper-
`
`-5
`
`-
`
`CONSTRAINT MAKES
`DIGETS UPRIGHT
`
`-
`
`CONSTRAINT ON
`SCALAR VALUE
`
`Figu1·e 8. Three
`
`sets of digits displaying
`scalar value.
`
`the same
`
`514
`
`Falkbuilt Ex. 1019, Page 008
`
`
`
`SKETCHPAD: A MAN-MACHINE GRAPHICAL COMMUNICATION SYSTEM
`
`ate. These general functions g-ive the Sketch(cid:173)
`pad system
`the ability
`to operate on a wide
`range of problems. The motivation for making
`the functions as general as possible came from
`the desire
`to get as much r<!sult as possible
`from
`the programming
`effort
`involved. For
`example,
`the general
`function
`for expanding
`instances makes
`it possible for Sketchpad
`to
`handle any
`fixed geometry
`subpicture.
`The
`power obtained
`from the small set of gener(cid:173)
`alized functions in Sketchpad
`is one of the most
`important
`results of the resea1·ch.
`In order of historical development, the recur(cid:173)
`sive functions
`in use in the Sketchpad system
`are:
`it pos(cid:173)
`1. Expansion of instances, making
`sible to have subpictures within subpic(cid:173)
`tures
`to as many levels as desired.
`2. Recursive deletion, whereby
`removal of
`certain picture parts will remove other
`picture parts
`in order
`to maintain con(cid:173)
`sistency
`in the ring structure.
`3. Recursive merging, whereby combination
`of two similar picture parts forces com(cid:173)
`bination of similarly rel al eel other picture
`parts, making possible application of com(cid:173)
`plex definitions to an object picture.
`
`RECURSIVE DELETING
`If a thing upon which other things depend is
`deleted,
`the de1,endent
`thin{Js must be deleted
`also. For example, if a point is to be deleted,
`all lines which terminate on the point must also
`be deleted. Otherwise, since
`the n-component
`elements for lines contain no positional
`infor(cid:173)
`mation, where would these lines end? Similarly,
`deletion of a variable
`requires deletion of all
`constraints on that variable; a constraint must
`have variables
`to act on.
`
`RECURSIVE MERGING
`If two things of the same ty11<' which are in(cid:173)
`dependent are merged, a si11r,!1· thing of that
`type results, and all things which devended on
`things depend on the re(cid:173)
`either of the merged
`sult* of the me,·_qer. For example, if two points
`are merged, all lines which previously
`termi.:
`nated on either point now terminate on the
`single resulting point. In Sketchpad,
`if a thing
`is being moved with the light pen and the ter(cid:173)
`mination flick of the pen is given while aiming
`at another
`thing of the same
`type,
`the
`two
`
`things will merge. Thus, if one moves a point
`to another point and terminates,
`the points will
`merge, connecting all lines which formerly
`ter(cid:173)
`minated on either. This makes
`it possible
`to
`draw closed polygons.
`type which do
`If
`two
`things of
`the same
`depend on other things are merged,
`the things
`de7Jended on by one will be forced
`to merge,
`respectively, with
`the
`things depended on by
`the other. The

Accessing this document will incur an additional charge of $.
After purchase, you can access this document again without charge.
Accept $ ChargeStill 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.
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.

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