About
Sketchpad, 1963
In 1962 a graduate student at MIT drew on a computer screen with a pen of light, and the computer understood what he drew. Almost everything we now do with a pointer and a picture traces back to that program.
What it was
Sketchpad was Ivan Sutherland’s doctoral project, run on the TX-2 computer at MIT’s Lincoln Laboratory and written up in his thesis of January 1963. The TX-2 had a seven-inch display plotted one spot at a time on a 1024 × 1024 grid, a light pen, a box of push buttons and four black knobs.
With them you could draw lines and circles, move and join them, make a drawing out of copies of other drawings, and tell the computer how parts should relate (this line parallel to that one, these lengths equal) and watch it work out the rest.
Sutherland received the Turing Award in 1988 for pioneering computer graphics, starting with Sketchpad.
What it got right first
- Pointing at the picture
- You drew on the display itself, not with typed coordinates. The program answered at the speed of your hand.
- A pen that knows what you mean
- Near a point, the pen’s working position jumps onto it, so lines drawn by a wobbly hand still meet exactly. Every “snap” in today’s tools descends from this.
- One gesture vocabulary
- Drawing a line is just carrying its far end on the pen. Pick up, carry, put down; put something down on a point and the two merge. One mechanism does the work of many modes.
- Masters and instances
- A drawing could be used inside other drawings, and changing the master changed every copy: the idea behind objects, symbols and components. Coming in milestone 2.
- Constraints
- You stated relationships and the computer satisfied them, a decades-early ancestor of parametric CAD. Coming in milestone 2.
- A structure built for speed
- Every relationship lived in rings, circular lists that make deleting, merging and redisplaying quick without searching the drawing.
- A window onto a huge page
- The display was a movable window that could magnify by 2000 to 1.
This re-creation
This first version is rebuilt from the thesis alone. Films of Sketchpad survive, and so do Sutherland’s program listings, given to the Computer History Museum; later versions will study them. The code is written to be read: each idea in it cites the page of the thesis it comes from.
Classic mode, available now, works as Sketchpad did: a phosphor display, a tracking cross and a pen that locks on, the push buttons and knobs, and no undo. It changes only what it must so that today’s devices, and today’s people, can reach it, and the code marks every such adaptation. The main ones:
- A click puts things down, the same as STOP or a flick. The thesis describes no switch on the pen.
- One pointer can’t hold the pen on the display and push an on-screen button too. So a button clicked on screen blinks and waits for a click on the display; keys pressed with the pen on the display act at once, as at the TX-2.
- The whole picture is plotted every frame, so a big drawing doesn’t flicker the way the TX-2’s did.
- Coordinates are floating point rather than 36-bit fractions.
A few differences remain that aren’t needed, such as unused points being tidied away when Sketchpad left them for a separate button. They are listed and being put right.
Where the thesis is silent, we have had to guess: which way an arc runs, whether the pen prefers points to lines, the exact glow of the phosphor. The code marks each guess as a conjecture, and none of them is presented here as history.
Still to come: masters, instances and constraints; a modern mode, which adds what makes it useful today, such as undo and SVG, DXF and JSON files; and a study view that shows the code beside the running program, with live views of its rings and its constraint solver. A strict mode, with no compromises at all, may follow.
Sources
- Ivan E. Sutherland, Sketchpad: A man-machine graphical communication system. PhD thesis, MIT, 1963. Electronic edition: University of Cambridge Computer Laboratory Technical Report UCAM-CL-TR-574, 2003. Page numbers in the code (TR n) refer to this edition.
- Sketchpad, Wikipedia.
Credits
Sketchpad Redux is an independent re-creation from published sources. It is not affiliated with or endorsed by Ivan Sutherland, MIT, or MIT Lincoln Laboratory.
Code is released under the MIT License; the written annotations and essays under Creative Commons Attribution-ShareAlike 4.0.
It is part of an effort to keep great interface experiments usable, so their lessons aren’t lost: noosphere.org.
This is Sketchpad Redux .