I've already communicated this with you, Greg & Alex, but I thought I'd shoot the mailing list a summary...
Heads-up: code snippets are coffeescript
My focus has been on high-level declaration of constraints, not so much solver API. My API goals thus far:
- Chain-able, ie.
100 <= w <= 1000 <= w2...
- Close-as-possible resemblance to natural forms of equality and inequality equations. This also makes the Ometa language parsing pretty straightforward.
- Higher-ordered constraint objects that contain constraint primitives. Maybe current
c.Constraint
should bec.ConstraintPrimitive
? A chained constraint equation would contain many constraint primitives. This would also allow subclassing of constraints that internally setup many constraint primitives. - Convention & hooks for subclassing core Constraint object for implementing custom relationships such as "inside", "left-of", etc... I imagine a plugin-like eco-system, where the API can expand to include W3C's grid-layout templates and [Apples Visu