Mac Categories

CamSketchpad Dev 1


CamSketchpad A 2D drawing / CAD program with support for geometrical constraints and the inclusion of instances referencing other drawings

System Requirememts
Mac OS X 10.0 or later
Download Details
Company David Stark
Version Dev 1
Post Date May 13, 2009
License Freeware
File Size 616 KB
There are no screenshots

CamSketchpad Dev 1


A 2D drawing / CAD program with support for geometrical constraints and the inclusion of instances referencing other drawings
CamSketchpad is a modern recreation of Ivan Sutherland's seminal Sketchpad program. It's a 2D drawing / CAD program with support for geometrical constraints and the inclusion of instances referencing other drawings.

CamSketchpad isn't complete and efficient as the original Sketchpad but does have all the necessary components in a rudimentary form, and is finished enough to be usable.

It includes a very flexible constraint satisfaction system based on error minimisation that allows for the easy addition of more constraints: just write a function telling CamSketchpad how far away it is from satisfying the constraint.

There is  also basic support for algebraic constraint satisfaction.

Most of my work was on the constraint satisfaction algorithm, which took perhaps 200 hours of staring at error gradient maps, and imbued me with an enormous respect for Sutherland, whose version of Sketchpad performed as well on '60s hardware as ours does on modern computers.

NOTE: CamSketchpad is provided and licensed under the terms of the BSD License.


Main features of CamSketchpad:

  • Support for containing instances of other drawings in your drawings. Unlike copies, instances will change when the original drawing changes.
  • Highlighting system for displaying what will be selected / snapped to / merged / created when you click.
  • Very simple interface for creating new constraints - just write a function telling CamSketchpad how far away it is from satisfying the constraint. (So when the function returns 0, the constraint is entirely satisfied.)