Constraints and Morphic [was: Re: A wish]

Dan Ingalls Dan.Ingalls at disney.com
Wed Feb 7 05:05:49 UTC 2001


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 <R.L.J.M.W.van.Loon at inter.nl.net> 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 DPennell at quallaby.com> picked up teh idea and started to play with it a bit.

3.  Off and on through these projects, we kept in touch with Alan Borning (currently borning at bowman.csse.monash.edu.au), 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 Cassowary, 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 Cassowary/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 <ned at bike-nomad.com> also has ConnectorMorphs 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 ConnectorMorph and Cassowary 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 ConnectorMorph 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.

	- Dan
--------------------------
>Try
>http://www.cs.washington.edu/research/constraints/cassowary/
>
>Joshua
>
>On Tue, Feb 06, 2001 at 08:29:11PM -0500, Raymond Asselin wrote:
>> Ned and Dan,
>> 
>> Take it cool...I can wait on month or so...
>> 
>> I'm kidding
>> 
>> In fact connectorMorph, as is, work in 3.0 except that we don't anymore have arrow head.
>> Reading what Dan said, I understand that his wish is a lot more than mine...or to say it otherwise
>> I did'nt realise that there were more than Fabriq and Co... But now I want to know more about "constraint
>> framework" any reading suggestions !
>> 
>> 
>> So...next month !    :-)







More information about the Squeak-dev mailing list