## The SkyBlue Constraint Solver (1992)

Citations: | 41 - 3 self |

### BibTeX

@TECHREPORT{Sannella92theskyblue,

author = {Michael Sannella},

title = {The SkyBlue Constraint Solver},

institution = {},

year = {1992}

}

### Years of Citing Articles

### OpenURL

### Abstract

A constraint describes a relationship that should be maintained, for example that the equality A + B = C holds between three variables, that a set of displayed objects are aligned, or that the elements in a data structure are consistent with a graphic display of this structure. Constraint solvers have been successfully applied to problems in computer graphics including geometric design and user interface construction. This paper presents the SkyBlue constraint solver, an efficient incremental algorithm that uses local propagation to maintain sets of required and preferential constraints. SkyBlue is a successor to the DeltaBlue algorithm, which was used as the constraint solver in the ThingLab II user interface development environment. DeltaBlue has two limitations: cycles of constraints are prohibited, and the procedures used to satisfy a constraint can only have a single output. SkyBlue relaxes these restrictions, allowing cycles of constraints to be constructed (although SkyBlue may...

### Citations

212 | Garnet: Comprehensive support for graphical highly interactive user interfaces - Myers, Giuse, et al. - 1990 |

192 | Composing User Interfaces with InterViews
- Linton, Vlissides, et al.
- 1989
(Show Context)
Citation Context ...are called when particular events occur. These can be used to update the application data structures when the user manipulates the interface. Systems with such facilities include GROW [2], Interviews =-=[12]-=-, and the Smalltalk Model-View-Controller [11]. These facilities can be difficult to use if there are multiple callbacks that access the same data structures: the programmer may need to understand the... |

172 | Variational Surface Modeling
- Welch, Witkin
- 1992
(Show Context)
Citation Context ...es, and uses symbolic or numerical techniques to find variable values that satisfy the equations. These solvers have been used in many computer graphics applications, including surface modeling tools =-=[20]-=- and constraint-based graphic editors [8]. However, mathematical constraint solvers are limited to problems where the constraints can be expressed as mathematical equations. At the other end of the co... |

120 |
An incremental constraint solver
- Freeman-Benson, Maloney, et al.
- 1990
(Show Context)
Citation Context ...mplex graphical user interfaces. Many user interface development systems have provided integrated constraint solvers, including GROW [2], Garnet [14], Rendezvous [9], and ThingLab II [13]. References =-=[3, 6]-=- contain additional references to constraint-based systems. One important class of constraint solvers accepts a set of mathematical equations between variables, and uses symbolic or numerical techniqu... |

86 | Multi-way versus oneway constraints in user interfaces: experience with the DeltaBlue algorithm
- Sannela, Maloney, et al.
- 1993
(Show Context)
Citation Context ...xamining all of the constraints in the network. The DeltaBlue algorithm, an incremental algorithm for maintaining constraint hierarchies using local propagation, was developed to address these issues =-=[6, 13, 16]-=-. The ThingLab II user interface development environment was based on DeltaBlue, demonstrating its feasibility for constructing user interfaces [13]. However, DeltaBlue has two significant limitations... |

45 |
Incremental Attribute Evaluation: A Flexible Algorithm for Lazy Update
- Hudson
- 1991
(Show Context)
Citation Context ... an output value that is the same as the current value. In this case, it may be possible to avoid executing downstream methods. Algorithms that implement this optimization are described in references =-=[10, 19]-=-. 5 Performance Techniques The SkyBlue algorithm as presented in Section 4 works correctly, but its performance suffers as the constraint graph becomes very large. This happens for two reasons: First,... |

42 |
An Object-Oriented Approach to Graphical Interfaces
- Barth
- 1986
(Show Context)
Citation Context ... relationships by hand, making it easier to develop and maintain complex graphical user interfaces. Many user interface development systems have provided integrated constraint solvers, including GROW =-=[2]-=-, Garnet [14], Rendezvous [9], and ThingLab II [13]. References [3, 6] contain additional references to constraint-based systems. One important class of constraint solvers accepts a set of mathematica... |

29 | The design and implementation of Kaleidoscope’90, A constraint imperative programming language
- Freeman-Benson, Borning
- 1992
(Show Context)
Citation Context ...et and SkyBlue implementations are available (contact the author for more information). SkyBlue is also currently being used as the constraint solver in an implementation of the Kaleidoscope language =-=[5]-=- and as an equation manipulation tool in the Pika simulation system [1]. 2 Method Graphs A SkyBlue constraint is represented by one or more methods. Each method is a procedure that reads the values of... |

28 |
Using Constraints for user Interface Construction
- Maloney
- 1991
(Show Context)
Citation Context ...p and maintain complex graphical user interfaces. Many user interface development systems have provided integrated constraint solvers, including GROW [2], Garnet [14], Rendezvous [9], and ThingLab II =-=[13]-=-. References [3, 6] contain additional references to constraint-based systems. One important class of constraint solvers accepts a set of mathematical equations between variables, and uses symbolic or... |

24 | An object-oriented architecture for constraint-based graphical editing
- Helm, Huynh, et al.
- 1992
(Show Context)
Citation Context ...ues to find variable values that satisfy the equations. These solvers have been used in many computer graphics applications, including surface modeling tools [20] and constraint-based graphic editors =-=[8]-=-. However, mathematical constraint solvers are limited to problems where the constraints can be expressed as mathematical equations. At the other end of the complexity spectrum, many user interface sy... |

24 |
Constraint Management in Conceptual Design
- Serrano, Gossard
- 1987
(Show Context)
Citation Context ...d by executing the methods C / A+ B and D / E 0 C in this order. A variety of local propagation algorithms have been developed that use different techniques to choose which methods should be executed =-=[17, 18]-=-. Local propagation solvers cannot solve all possible sets of constraints, such as sets of simultaneous equations. However, local propagation solvers have the advantage that they are very general, sin... |

22 | Multi-Garnet: Integrating multi-way constraints with Garnet
- SANNELLA, BORNING
- 1992
(Show Context)
Citation Context ...t solver to solve the constraints around a cycle, and continue using local propagation to satisfy the rest of the constraints. SkyBlue is currently being used as the constraint solver in Multi-Garnet =-=[15]-=-, a package that ex1 Reference [7] presents another algorithm that solves constraint hierarchies, with roughly the same power and limitations as DeltaBlue. 0.00 100.00 A 0.00 100.00 B 22.45 122.45 A 0... |

21 |
The importance of pointer variables in constraint models
- ZANDEN, MYERS, et al.
- 1991
(Show Context)
Citation Context ... an output value that is the same as the current value. In this case, it may be possible to avoid executing downstream methods. Algorithms that implement this optimization are described in references =-=[10, 19]-=-. 5 Performance Techniques The SkyBlue algorithm as presented in Section 4 works correctly, but its performance suffers as the constraint graph becomes very large. This happens for two reasons: First,... |

19 | Realtime self-explanatory simulation
- Amador, Finkelstein, et al.
- 1993
(Show Context)
Citation Context ...re information). SkyBlue is also currently being used as the constraint solver in an implementation of the Kaleidoscope language [5] and as an equation manipulation tool in the Pika simulation system =-=[1]-=-. 2 Method Graphs A SkyBlue constraint is represented by one or more methods. Each method is a procedure that reads the values of a subset of the constraint's variables (the method's input variables) ... |

18 |
Languages for the Construction of Multi–User Multi–Media Synchronous (MUMMS) Applications
- Hill
- 1986
(Show Context)
Citation Context ...g it easier to develop and maintain complex graphical user interfaces. Many user interface development systems have provided integrated constraint solvers, including GROW [2], Garnet [14], Rendezvous =-=[9]-=-, and ThingLab II [13]. References [3, 6] contain additional references to constraint-based systems. One important class of constraint solvers accepts a set of mathematical equations between variables... |

12 |
Constraint Programming and Graph Algorithms
- Gangnet, Rosenberg
- 1992
(Show Context)
Citation Context ...round a cycle, and continue using local propagation to satisfy the rest of the constraints. SkyBlue is currently being used as the constraint solver in Multi-Garnet [15], a package that ex1 Reference =-=[7]-=- presents another algorithm that solves constraint hierarchies, with roughly the same power and limitations as DeltaBlue. 0.00 100.00 A 0.00 100.00 B 22.45 122.45 A 0.00 100.00 B 0.00 81.89 A 0.00 272... |

10 |
A Module Compiler for Thinglab II
- Freeman-Benson
- 1989
(Show Context)
Citation Context ...ended with a constraint compiler to compile a subgraph of the constraint graph (possibly including cycles) into a single complex constraint with methods to handle the different propagation directions =-=[4]-=-. This could be used to avoid repeated calls to a more powerful solver and as an encapsulation mechanism. SkyBlue provides a good base for developing a constraint compiler since compiled constraints t... |

5 |
A Domain-Independent Algorithm for Incrementally Satisfying Multi-Way Constraints
- Zanden
- 1992
(Show Context)
Citation Context ...d by executing the methods C / A+ B and D / E 0 C in this order. A variety of local propagation algorithms have been developed that use different techniques to choose which methods should be executed =-=[17, 18]-=-. Local propagation solvers cannot solve all possible sets of constraints, such as sets of simultaneous equations. However, local propagation solvers have the advantage that they are very general, sin... |