CHI 97 Electronic Publications: Special Interest Groups (SIGs)
The Amulet User Interface Development Environment
Brad A. Myers
Human Computer Interaction Institute
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213-3891 USA
+1-412- 268-5150
amulet@cs.cmu.edu
http://www.cs.cmu.edu/~amulet
Keywords
User Interface Management Systems, Toolkits, User Inter-face Development
Environments, Interface Builders, C++.
© 1997 Copyright on this material is held by the authors.
Description
The User Interface Software Group at CMU is investigating ways to make the
design, prototyping, and implementation of user interfaces substantially
easier. Unlike other user interface development environments that deal only
with widgets like menus, scroll bars and buttons, we concentrate on the
insides of application windows, which is the part that takes most of the
programmer's time to design and implement. Typical applications of the
technology include visualizations and visual programming environments, drawing
programs, user interfaces for expert systems, graph editors, graphical
programming languages, game user interfaces, simulation and process monitoring
programs, user interface construction tools, CAD/CAM programs, etc.
Our Amulet User Interface Development Environment has been available for
general use for about two years, and already there are a wide variety of users
from all over the world. Amulet runs on Windows 95, Windows NT, Unix and the
Macintosh. To get Amulet visit our web site
http://www.cs.cmu.edu/~amulet. In
addition, Amulet incorporates novel object, constraint, animation, input,
output, and undo models, which improve the interface to the end user while
requiring substantially less coding from the developer.
In developing Amulet, we have three primary goals: the first is to make it
useful for user interface researchers. This means that Amulet makes it easy to
build new kinds of interactive tools and new kinds of widgets, investigate new
constraint solving algorithms, and explore innovative interactive technologies.
For example, Amulet is the first system to be designed to support multiple
constraint solvers operating at the same time, so that researchers can
investigate new solver technologies. The second goal is to be useful for
students, which means that the system should be easy to learn. Amulet has been
used for large and small projects by students at various levels in at least 8
courses at 6 universities. Finally, we are committed to creating tools useful
for general developers, which means providing sufficient performance,
robustness and documentation.
Important features of Amulet include:
- A dynamic, prototype-instance object system that makes prototyping
easier.
- Constraints integrated with the object system, so any value of any
object can be computed by a formula which is automatically re-evaluated
whenever necessary.
- Animation constraints that allow any property of any object to change
smoothly from the old to the new value at a specified rate [2].
- A high-level object-oriented output graphics model that handles
automatic refresh of objects when they change.
- A high-level input model that makes it easy to add conventional and
gestural behaviors to objects.
- Built-in support for undo, redo, repeat, and selective undo and repeat
using an innovative Command Object architecture [1].
- Flexible widgets, such as buttons, menus, scrollbars, text input fields
and pull-down menus, implemented using the Amulet intrinsics, which you can
easily parameterize or even replace with your own. The widgets change their
look-and-feel to be like Motif, Windows 95 or Macintosh.
- Interactive debugging tools, including an "Inspector."
Amulet is an on-going research project. In the future, we will investigate
supporting 3D, speech, multi-media, multiple people operating at the same time,
WWW access, extensive end-user customization, and interactive, demonstrational
tools for building interfaces without programming. This special interest group
meeting will discuss the present and future designs of Amulet.
This research is sponsored 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.
1. Myers, B.A. and Kosbie, D.
"Reusable Hierarchical Command
Objects". CHI 96. Vancouver, Can. pp. 260-267.
2. Myers, B.A., Miller, R.C., McDaniel, R., and Ferrency, A.
"Easily Adding Animations to Interfaces Using Constraints." ACM Symposium on
User Interface Software and Technology, UIST'96, Nov, 1996. pp.
119-128.
CHI 97 Electronic Publications: Special Interest Groups (SIGs)