Skip to main content
Log in

Ultraviolet: A Constraint Satisfaction Algorithm for Interactive Graphics

  • Published:
Constraints Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. A. Borning, B. Freeman-Benson & M. Wilson. (1992). Constraint hierarchies. Lisp and Symbolic Computation 5:223–270.

    Google Scholar 

  2. A. Borning & B. Freeman-Benson. (1995). The OTI constraint solver: A constraint library for constructing interactive graphical user interfaces. In Proceedings of the First International Conference on Principles and Practice of Constraint Programming, pages 624–628, Cassis, France.

    Google Scholar 

  3. A. Borning, R. Anderson & B. Freeman-Benson. (1996). Indigo: A local propagation algorithm for inequality constraints. In Proceedings of the 1996 ACM Symposium on User Interface Software and Technology, pages 129–136, Seattle.

  4. A. Borning, R. Anderson & B. Freeman-Benson. (1996). The Indigo algorithm. Technical Report 96-05-01, Dept. of Computer Science and Engineering, University of Washington, Seattle, WA.

    Google Scholar 

  5. A. Borning, K. Marriott, P. Stuckey & Yi Xiao. (1997). Solving linear arithmetic constraints for user interface applications. In Proceedings of the 1997 ACM Symposium on User Interface Software and Technology, pages 87–96.

  6. A. Borning, R. Lin & K. Marriott. (1997). Constraints for the web. In Proceedings of ACM MULTIMEDIA '97.

  7. J. Burg, P. Stuckey, J. Tai & R. Yap. (1995). Linear equation solving for constraint logic programming. In Proceedings of the Twelfth International Conference on Logic Programming, pages 33–47, Tokyo, MIT Press.

    Google Scholar 

  8. S. Chok & K. Marriott. (1995). Automatic construction of user interfaces from constraint multiset grammars. In IEEE Symposium on Visual Languages, pages 242–250.

  9. E. Davis. (1987). Constraint propagation with interval labels. Artificial Intelligence 32:281–331.

    Article  Google Scholar 

  10. B. Freeman-Benson, J. Maloney & A. Borning. (1990). An incremental constraint solver. Communications of the ACM 33:54–63.

    Article  Google Scholar 

  11. M. Gangnet & B. Rosenberg. (1992). Constraint programming and graph algorithms. In Second International Symposium on Artificial Intelligence and Mathematics.

  12. M. Gleicher. (1993). A graphics toolkit based on differential constraints. In Proceedings of the ACM SIGGRAPH Symposium on User Interface Software and Technology, pages 109–120, Atlanta, Georgia.

  13. M. Gleicher. (1994). A Differential Approach to Constraint Satisfaction. PhD thesis, School of Computer Science, Carnegie-Mellon University.

  14. M. Gleicher. (1995). Practical issues in programming constraints. In V. Saraswat and P. Van Hentenryck, editors, Principles and Practice of Constraint Programming: The Newport Papers, pages 407–426. MIT Press.

  15. W. Harvey, P. Stuckey & A. Borning. (1997). Compiling constraint solving using projection. In Proceedings of the 1997 Conference on Principles and Practice of Constraint Programming (CP97), pages 491–505.

  16. W. He & K. Marriott. (1996). Constrained graph layout. In Graph Drawing '96, volume 1190 of LNCS, pages 217–232, Springer-Verlag.

  17. R. Helm, T. Huynh, C. Lassez & K. Marriott. (1996). A linear constraint technology for interactive graphic systems. In Graphics Interface '92, pages 301–309.

  18. A. Heydon & G. Nelson. (1994). The Juno-2 constraint-based drawing editor. Technical Report 131a, DEC Systems Research Center, Palo Alto, CA.

    Google Scholar 

  19. H. Hosobe, K. Miyashita, S. Takahashi, S. Matsuoka & A. Yonezawa. (1994). Locally simultaneous constraint satisfaction. In Proceedings of the 1994 Workshop on Principles and Practice of Constraint Programming, volume 874 of LNCS, pages 51–62, Springer-Verlag.

  20. H. Hosobe, S. Matsuoka & A. Yonezawa. (1996). Generalized local propagation: A framework for solving constraint hierarchies. In Proceedings of the Second International Conference on Principles and Practice of Constraint Programming, Boston.

  21. S. Hudson & I. Smith. (1996). SubArctic UI toolkit user's manual. Technical report, College of Computing, Georgia Institute of Technology.

  22. S. Hudson & I. Smith. (1996). Ultra-lightweight constraints. In Proceedings of the 1996 ACM Symposium on User Interface Software and Technology, pages 147–155, Seattle.

  23. E. Hyvönen. (1992). Constraint reasoning based on interval arithmetic: The tolerance propagation approach. Artificial Intelligence 58:71–112.

    Article  Google Scholar 

  24. E. Hyvönen, S. De Pascale & A. Lehtola. (1994). Interval constraint programming in C−+. In B. Mayoh, E. Tyugu, & Jaan Penjam, editors, Constraint Programming, pages 350–366, Springer-Verlag.

  25. E. Hyvönen. (1995). Evaluation of cascaded interval function constraints. In Proceedings of the International Workshop on Constraint-Based Reasoning (CONSTRAINT-95), Melbourne Beach, Florida.

    Google Scholar 

  26. J. Jaffar, S. Michaylov, P. Stuckey & R. Yap. (1992). The CLP(ℛ) language and system. ACM Transactions on Programming Languages and Systems 14:339–395.

    Article  Google Scholar 

  27. B. Myers, R. McDaniel, R. Miller, A. Ferrency, A. Faulring, B. Kyle, A. Mickish, A. Klimovitski & P. Doane. (1997). The amulet environment: New models for effective user interface software development. IEEE Transactions on Software Engineering 23:347–365.

    Article  Google Scholar 

  28. G. Nelson. (1985). Juno, a constraint-based graphics system. In SIGGRAPH '85 Conference Proceedings, pages 235–243, ACM, San Francisco.

    Google Scholar 

  29. M. Sannella, J. Maloney, B. Freeman-Benson & A. Borning. (1993). Multi-way versus one-way constraints in user interfaces: Experience with the DeltaBlue algorithm. Software—Practice and Experience 23:529–566.

    Google Scholar 

  30. M. Sannella. (1994). SkyBlue: A multi-way local propagation constraint solver for user interface construction. In Proceedings of the 1994 ACM Symposium on User Interface Software and Technology, pages 137–146.

  31. I. Sutherland. (1963). Sketchpad: A Man-Machine Graphical Communication System. PhD thesis. Department of Electrical Engineering, MIT.

  32. B. Vander Zanden. (1996). An incremental algorithm for satisfying hierarchies of multi-way dataflow constraints. ACM Transactions on Programming Languages and Systems, 18:30–72.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Borning, A., Freeman-Benson, B. Ultraviolet: A Constraint Satisfaction Algorithm for Interactive Graphics. Constraints 3, 9–32 (1998). https://doi.org/10.1023/A:1009704614502

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1009704614502

Navigation