Cassowary anyone?!

Roel Wuyts roel.wuyts at
Fri Jan 10 16:08:57 UTC 2003

I used Cassowary for checking/finding task schedules. In the end I 
chose another solver (not in Smalltalk) exactly for the reasons you 
mentioned: constraint violations are not shown, so it is hard to see 
what exactly is going on. Sometimes a constraint is preferred over 
another one (of the same priority) for a reason which is not clear. 
Then you end up with a network in which one constraint is satisfied, 
and another one of the same priority is not. In the application for 
which I wanted to use Cassowary this was not acceptable. Note that if 
the constraint is 'required' (the highest setting), then such a 
situation cannot rise: if it cannot be satisfied, an exception is 
thrown. So I ended up using Cassowary as though it had no constraint 
hierarchies at all... and then I could better use another solver. With 
a bit of more time I would have looked at it (I implemented a 
constraint solver before on top of Soul), but time is absolutely a 
scarce resource at the moment.

PS: I noticed that this mail is not very clear, depending on your 
knowledge of Cassowary. Just contact me for more info or the code of 
the experiments I did.

On Thursday, January 9, 2003, at 08:11 PM, Andreas Raab wrote:

> Josh,
> Thanks - by now I got various copies from people (thanks to all of 
> you!)
> but this is the kind of thing that really _ought_ to be on SqueakMap
> (hint, hint!).
>> What are you thinking of doing with it?
> I'm looking into different ways of end-user friendly specification of
> "object compositions" (aka: layouts). Since I know that Cassowary was
> used for CSVG and other things I was wondering if it might be a good
> starting base for some more end-user friendly model than we have right
> now.
> This problem bugged me for a long time now - the AlignmentMorph's in
> Squeak used to require compositions of compositions of compositions of
> nested things and they just got in the way of "seeing the thing you are
> interested in" (namely some object of the composition). So I tried to
> generalize this into the layouts we have today but while they are more
> general they are also much harder to understand (lots of very generic
> properties with lots of unclear compositional effects).
> So what I am essentially looking for is some way of specifying "lots of
> dog-simple constraints" (like: make the left edge of one guy follow the
> right edge of some other guy) and provide some interactive means for
> specifying it - so that rather than having a set of generic properties
> the user gets a (possibly large) number of very concrete
> mini-constraints. Those need to be solved efficiently and that's when I
> got into thinking about the various constraint solvers.
> BTW, do you know if Cassowary can give feedback about constraints that
> cannot be resolved (perhaps even potentially)?! I'm interested in this
> because what I would like to do is give constant feedback about the
> composition you are building - so that when you add a constraint which
> "won't work" the system could indicate this by some means.
> Cheers,
>   - Andreas
>> -----Original Message-----
>> From: squeak-dev-admin at
>> [mailto:squeak-dev-admin at] On
>> Behalf Of Joshua 'Schwa' Gargus
>> Sent: Thursday, January 09, 2003 7:32 PM
>> To: Andreas Raab; Squeak Mailing List
>> Subject: Re: Cassowary anyone?!
>> Hi Andreas,
>> My message to the list seems to have been lost, so I'm resending
>> to you and the list.
>> You can get Cassowary from:
>> What are you thinking of doing with it?
>> Joshua
Roel Wuyts                                                   Software 
Composition Group
roel.wuyts at                       University of Bern, 
Board Member of the European Smalltalk User Group:

More information about the Squeak-dev mailing list