Results 1 - 10
of
38
The Cassowary Linear Arithmetic Constraint Solving Algorithm: Interface and Implementation
- ACM TRANSACTIONS ON COMPUTER HUMAN INTERACTION
, 1998
"... Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possibl ..."
Abstract
-
Cited by 72 (9 self)
- Add to MetaCart
Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. Current constraint solvers designed for UI applications cannot e#ciently handle simultaneous linear equations and inequalities. This is a major limitation. We describe Cassowary---an incremental algorithm based on the dual simplex method that can solve such systems of constraints e#ciently. This informal technical report describes the latest version of the Cassowary algorithm. It is derived from the paper "Solving Linear Arithmetic Constraints for User Interface Applications" by Alan Borning, Kim Marriott, Peter Stuckey, and Yi Xiao [7], published in the UIST'97 Proceedings. The UIST paper also contains a description of QOCA, a closely related solver that finds least-squares solut...
Solving Linear Arithmetic Constraints for User Interface Applications: Algorithm Details
, 1997
"... Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible ..."
Abstract
-
Cited by 59 (17 self)
- Add to MetaCart
Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. Current constraint solvers designed for UI applications cannot efficiently handle simultaneous linear equations and inequalities. This is a major limitation. We describe incremental algorithms based on the dual simplex and active set methods that can solve such systems of constraints efficiently. Both algorithms have been implemented and tested. This informal technical report is adapted from the paper "Solving Linear Arithmetic Constraints for User Interface Applications," which will appear in the Proceedings of UIST'97 (The ACM User Interface and Software Technology Symposium). It contains additional details, in particular of the Cassowary and QOCA algorithms.
Efficient Distributed Implementation of Semi-Replicated Synchronous Groupware
, 1996
"... The Model View Controller (MVC) architecture has proven to be an effective way of organizing synchronous groupware applications. Distributed implementations of MVC, however, can suffer from poor performance. This paper demonstrates how optimized semi-replication of MVC architectures can lead to good ..."
Abstract
-
Cited by 41 (7 self)
- Add to MetaCart
The Model View Controller (MVC) architecture has proven to be an effective way of organizing synchronous groupware applications. Distributed implementations of MVC, however, can suffer from poor performance. This paper demonstrates how optimized semi-replication of MVC architectures can lead to good performance over both local and wide area networks. We present a series of optimizations to network communication based on specific communication properties of groupware. These optimizations have been implemented in the Clock groupware development toolkit, allowing programmers to develop applications directly in the high-level MVC style, with Clock automatically providing optimized performance. Timings of an application developed in Clock show that usable speed was obtained in a highly interactive groupware application running between Toronto and Calgary, with a typical latency of 190 ms per round trip message. The paper discusses the tradeoffs involved in the algorithms, and presents timings to demonstrate the effectiveness of the different approaches. The timings show that when running over a wide area network, the best optimization can achieve a factor 60 speedup over the naive implementation of distributed MVC.
Ultraviolet: A Constraint Satisfaction Algorithm for Interactive Graphics
- Constraints: An International Journal
, 1998
"... . Ultraviolet is a constraint satisfaction algorithm intended for use in interactive graphical applications. It is capable of solving constraints over arbitrary domains using local propagation, and inequality constraints and simultaneous linear equations over the reals. To support this, Ultraviolet ..."
Abstract
-
Cited by 25 (1 self)
- Add to MetaCart
. Ultraviolet is a constraint satisfaction algorithm intended for use in interactive graphical applications. It is capable of solving constraints over arbitrary domains using local propagation, and inequality constraints and simultaneous linear equations over the reals. To support this, Ultraviolet is a hybrid algorithm that allows different subsolvers to be used for different parts of the constraint graph, depending on graph topology and kind of constraints. In addition, Ultraviolet and its subsolvers support plan compilation, producing efficient compiled code that can be evaluated repeatedly to resatisfy a given collection of constraints for different input values. Keywords: constraints, user interfaces, hybrid constraint satisfaction algorithms 1. Introduction Many key aspects of interactive graphical systems can be conveniently described using constraints, including layout and other kinds of geometric relations, consistency between application data and views, consistency of multi...
Indigo: A Local Propagation Algorithm for Inequality Constraints
- In Proceedings of the 1996 ACM Symposium on User Interface Software and Technology
, 1996
"... Inequality constraints are useful for specifying various aspects of user interfaces, such as constraints that one window is to the left of another, or that an object is contained within a rectangle. However, current local propagation constraint solvers can't handle inequality constraints. We present ..."
Abstract
-
Cited by 24 (6 self)
- Add to MetaCart
Inequality constraints are useful for specifying various aspects of user interfaces, such as constraints that one window is to the left of another, or that an object is contained within a rectangle. However, current local propagation constraint solvers can't handle inequality constraints. We present Indigo, an efficient local propagation algorithm for satisfying acyclic constraint hierarchies, including inequality constraints. KEYWORDS: Constraints, inequality constraints, local propagation INTRODUCTION Constraints are useful for a number of aspects of user interface construction, including layout, model-view consistency, and consistency of multiple views. In selecting the class of constraints to be supported in a UI toolkit, there are various tradeoffs between simplicity and power. Some of these tradeoffs include: ffl one-way or multi-way constraints ffl required constraints only, or both required and preferential constraints (constraint hierarchies) ffl functional constraints ...
GADGET: A Toolkit for Optimization-Based Approaches to Interface and Display Generation
, 2003
"... Recent work is beginning to reveal the potential of numerical optimization as an approach to generating interfaces and displays. Optimization-based approaches can often allow a mix of independent goals and constraints to be blended in ways that would be difficult to describe algorithmically. While o ..."
Abstract
-
Cited by 15 (2 self)
- Add to MetaCart
Recent work is beginning to reveal the potential of numerical optimization as an approach to generating interfaces and displays. Optimization-based approaches can often allow a mix of independent goals and constraints to be blended in ways that would be difficult to describe algorithmically. While optimization-based techniques appear to offer several potential advantages, further research in this area is hampered by the lack of appropriate tools. This paper presents GADGET, an experimental toolkit to support optimization for interface and display generation. GADGET provides convenient abstractions of many optimization concepts. GADGET also provides mechanisms to help programmers quickly create optimizations, including an efficient lazy evaluation framework, a powerful and configurable optimization structure, and a library of reusable components. Together these facilities provide an appropriate tool to enable exploration of a new class of interface and display generation techniques.
Amulet’s dynamic and flexible prototype-instance object and constraint system in C
, 1995
"... In order to support rapid prototyping and efficient construction of user interface software, the Amulet user interface development environment uses a prototype-instance object model integrated with a constraint solver. The important innovations in the Amulet object and constraint systems are the aut ..."
Abstract
-
Cited by 14 (1 self)
- Add to MetaCart
In order to support rapid prototyping and efficient construction of user interface software, the Amulet user interface development environment uses a prototype-instance object model integrated with a constraint solver. The important innovations in the Amulet object and constraint systems are the automatic management of a part-owner hierarchy in addition to the prototype instance hierarchy, the support for multiple constraint solvers at the same time, control over slot inheritance, flexible demons, and a convenient integration of the models with C++ without requiring a pre-processor. This research was sponsored by NCCOSC under Contract No. N66001-94-C-6037, ARPA Order No. B326. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the official policies, either expressed or implied, of NCCOSC or the U.S. Government.
Using Graph Decomposition for Solving Continuous CSPs
- in "Principles and Practice of Constraint Programming, CP’98", LNCS
, 1998
"... In practice, constraint satisfaction problems are often structured. By exploiting this structure, solving algorithms can make important gains in performance. In this paper, we focus on structured continuous CSPs defined by systems of equations. We use graph decomposition techniques to decompose the ..."
Abstract
-
Cited by 14 (5 self)
- Add to MetaCart
In practice, constraint satisfaction problems are often structured. By exploiting this structure, solving algorithms can make important gains in performance. In this paper, we focus on structured continuous CSPs defined by systems of equations. We use graph decomposition techniques to decompose the constraint graph into a directed acyclic graph of small blocks. We present new algorithms to solve decomposed problems which solve the blocks in partial order and perform intelligent backtracking when a block has no solution. For under-constrained problems, the solution space can be explored by choosing some variables as input parameters. However, in this case, the decomposition is no longer unique and some choices lead to decompositions with smaller blocks than others. We present an algorithm for selecting the input parameters that lead to good decompositions. First experimental results indicate that, even on small problems, significant speedups can be obtained using these algorithms.
Scene Modeling Based on Constraint System Decomposition Techniques
- IN PROCEEDINGS OF THE 9TH INTERNATIONAL CONFERENCE ON COMPUTER VISION
, 2003
"... We present a new approach to 3D scene modeling based on geometric constraints. Contrary to the existing methods, we can quickly obtain 3D scene models that respect the given constraints exactly. Our system can describe a large variety of linear and non-linear constraints in a flexible way. To deal w ..."
Abstract
-
Cited by 11 (3 self)
- Add to MetaCart
We present a new approach to 3D scene modeling based on geometric constraints. Contrary to the existing methods, we can quickly obtain 3D scene models that respect the given constraints exactly. Our system can describe a large variety of linear and non-linear constraints in a flexible way. To deal with
Compiling Constraint Solving Using Projection
- Proceedings of the Third International Conference on Principles and Practices of Constraint Programming, LNCS
, 1997
"... Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. ..."
Abstract
-
Cited by 9 (2 self)
- Add to MetaCart
Linear equality and inequality constraints arise naturally in specifying many aspects of user interfaces, such as requiring that one window be to the left of another, requiring that a pane occupy the leftmost 1/3 of a window, or preferring that an object be contained within a rectangle if possible. For interactive use, we need to solve similar constraint satisfaction problems repeatedly for each screen refresh, with each successive problem differing from the previous one only in the position of an input device and the previous state of the system. We present an algorithm for solving such systems of constraints using projection. The solution is compiled into very efficient, constraint-free code, which is parameterized by the new inputs. Producing straight-line, constraint-free code of this sort is important in a number of applications: for example, to provide predictable performance in real-time systems, to allow companies to ship products without including a runtime constraint solver, to compile Java applets that can be downloaded and run remotely (again without having to include a runtime solver), or for applications where runtime efficiency is particularly important. Even for less time-critical user interface applications, the smooth performance of the resulting code is more pleasing than that of code produced using other current techniques.

