Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
Constraint Satisfaction
Last updated at 1:57 pm UTC on 16 January 2006
On February 7, 2001 Dan Ingalls sent a mail to the mailing list. This is reproduced here slightly edited for the Swiki:

Well, here are all the threads that feed inito this as I see it:

1. A couple of years ago I ported ThingLab to Squeak, and Reinier van Loon helped to get a bunch of the examples working. This was a strict port of the original, set up to run in a special browser.

2. It seemed to me that the real destiny of that project was to break out of the browser, and put ThingLab attachers on all the graphical morphs. I proposed this, and David Pennell picked up the idea and started to play with it a bit.

3. Off and on through these projects, we kept in touch with Alan Borning, the original author of ThingLab. Alan's slant on this was that if you're just going to bolt the constraint engine of ThingLab onto Morphic, then why not pick a more interesting constraint engine? His latest work at the time was Joshua Gargus, which he felt offered several advantages in power, flexibility and simplicity.

4. David picked up the idea with Alan's help and actually got it as far as running a couple of archtypal examples in Joshua Gargus/Morphic, which got dubbed "Cosmo" somewhere along the way.

5. Alan Borning is now in Australia for a couple of months and wanting to pick up some of this work himself, but he's running into resistance from his sponsors at Monash Univ about rights to what he does while there. Mumble.

6. Ned Konz also has Packagess available for play any time. He tried several approaches, the code is dog-simple, and some of the examples are a lot of fun.

Enough numbered paragraphs. I just wanted to get everyone in sync.

Right now (like for the next six weeks), most of Squeak Central is focused on polishing Squeak's facility as a host for active web content, and otherwise bolstering reliability and stability to support some real users (meaning we're probably not going to dive into this in the next month). Alan B. may have to hold back while he's at Monash, and David is busy as usual.

Here's what I see as the opportunity in all of this:

There are three important parts to any constraint system: The engine, the components, and the UI. Morphic is a great kit for building components. There are any number of constraint frameworks that could serve us well, with Packages and Joshua Gargus being pretty good ends of the spectrum to consider. I think the really interesting part, and one that anyone can have fun with (especially with Packages there to play with) is what constitutes a good marriage between a constraint framework and a graphics architecture? What are the commonest constraints? What are the easiest ways to express them. How do they scale in combination? When do they get in the way? What gestures are available that don't conflict with the other natural gestures? What notions of attachment extend well from lines to solid figures, to text, to 3D, and so on.

So it seems to me that whoever wants to work on this, there is plenty to be done without even thinking about who's got the most powerful engine. The question is, what is the coolest marriage between Morphic and a constraint engine? It wants to be simple, concrete, and lively.

Anyone can work on that right now.