Cola.js – Constraint-Based Layout in the Browser
marvl.infotech.monash.edu
marvl.infotech.monash.edu
height: [ ]
width : [ ]
area : [ ]
If the user enters a height & width, the form should update area [2]. If the user then updates area, then height is the free constraint (last recently updated). The whole system scales to work with incredibly large interfaces [3]. The experience section in [4] describes Adobe's experience porting chunks of Photoshop to using this system. (I did the figures for [4]; I'm quite proud of them.)[1] https://code.google.com/p/hotdrink/
[2] http://dl.acm.org/citation.cfm?id=2371413
[3] http://dl.acm.org/citation.cfm?id=2047892&CFID=690849385&CFT...; http://dl.acm.org/citation.cfm?id=1449927&CFID=690849385&CFT...; http://dl.acm.org/citation.cfm?id=1621630&CFID=690849385&CFT...
Here is a nice collection of large graphs: [1] Visualize that in a useful way, and I'm impressed.
There's a JS version: http://constraints.cs.washington.edu/cassowary/
Edit: also, http://nic.monash/