50 years of constraints in computer graphics

In the early 1990s I gave presentations on using graphics in software development, several times with Alan Kay in the audience. At one point, I believe to remember, he mentioned he hadn’t seen that kind of vision or clarity since Sutherland‘s Sketchpad. Two decades later I downloaded Sutherland’s 1963 thesis, and read some of it.

Recently I searched Sutherland’s Sketchpad thesis for the word “constraint” and found it 127 times in 143 pages.

To quote verbatim from Chapter I, Introduction:

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 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.

That made me think, Adj really does provide something fundamental. Other than Adj, constraints aren’t readily available, easy to use, and free of charge. Not in generally available, general purpose, zero or low-cost drawing software.

Adj probably should become more widely known and used, evolve, and in time become part of standards, maybe ubiquitous. It is open source, and it is extensible.

In publishing this post I am risking ridicule: Maybe I have overlooked something similar. Please let me know. I would look at whatever you suggest and, just as I did before I bothered making Adj, try to analyze whether it facilitates or enables doing what I want to do with Adj and SVG, the same kind of drawings, with the same kind of features and efficiency.

2 Responses to 50 years of constraints in computer graphics

  1. Des says:

    I have not yet used adj, but based on the docs, I agree it “should become widely known & used”. Are the (main) algorithms behind adj efficient enough that they could conceivably be used in an incremental interactive manner, possibly in-browser? If so, you should consider hooking it up to the (very) popular D3 framework. Usable smart layout could be the primary thing keeping these kinds of visualizations from being used freely, as widely as x-y plots are used today.

    • leosbog says:

      Thank you for your thoughts.

      Invocations while a user edits should be feasible. In browser, yes, that was part of the point / appeal of using JavaScript.

      Adj has been written with reasonable consideration of computational efficiency, using past experience. Unless we see it work in real use we aren’t going around bragging yet.

      Maintainability of code, and correctness were important too.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: