The Amulet Environment: New Models for Effective User Interface Software Development

Brad A. Myers, Rich McDaniel, Rob Miller, Alan Ferrency, Patrick Doane, Andrew Faulring, Ellen Borison, Andy Mickish, and Alex Klimovitski

November, 1996

Human Computer Interaction Institute
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213-3891


The Amulet user interface development environment makes it easier for programmers to create highly-interactive, graphical user interface software for Unix, Windows or Macintosh. Amulet uses new models for objects, constraints, animation, input, output, commands, and undo. The object system is a prototype-instance model in which there is no distinction between classes and instances or between methods and data. The constraint system allows any value of any object to be computed by arbitrary code and supports multiple constraint solvers. Animations can be attached to existing objects with a single line of code. Input from the user is handled by "Interactor" objects which support reuse of behavior objects. The output model provides a declarative definition of the graphics, and supports automatic refresh. Command objects encapsulate all of the information needed about operations, including support for various ways to undo them. An key feature of the Amulet design is that all graphical objects and behaviors of those objects are explicitly represented at run-time, so the system can provide a number of high-level built-in functions, including automatic display and editing of objects, and external analysis and control of interfaces. Amulet integrates these capabilities in a flexible and effective manner.

Keywords: Toolkits, User Interface Tools, User Interface Development Environments, User Interface Management Systems (UIMSs).

Full paper available in Postscript.