The Garnet and Amulet
User Interface Development Environments

CHI'95 Special Interest Group Meeting
Tuesday, May 9, 4:30pm

The slides from the talk are available as a binhex of a PowerPoint 3.0 for the Macintosh document (for some reason, the postscript version doesn't work--Sorry!).

Contact: Brad Myers
Human Computer Interaction Institute
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213
{garnet, amulet}

Keywords: User Interface Management Systems, User Interface Development Environments, Toolkits, Interface Builders, Demonstrational Interfaces, Lisp, C++.

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 drawing programs such as Macintosh MacDraw, user interfaces for expert systems and other AI applications, box and arrow diagram editors, graphical programming languages, game user interfaces, simulation and process monitoring programs, user interface construction tools, CAD/CAM programs, etc.

We are developing two User Interface Development Environments. Garnet [2] is in Common Lisp and runs under X/11 or Macintosh, and has been available for anonymous FTP for about six years. [Garnet works in virtually any Common Lisp with X/11 or Macintosh. To get Garnet, anonymous ftp to Then retrieve the file /usr/garnet/garnet/README and follow the directions.] There are nearly 100 projects all over the world using Garnet.

Amulet is a new system in C++ that will run on X/11, Microsoft Windows, and the Macintosh. Amulet incorporates the best ideas of Garnet, and will also support 3D, gestures, speech, multi-media, multiple people operating at the same time, WWW access, and extensive end-user customization. We expect Amulet to be available for general use around CHI'95. This special interest group meeting will discuss both systems.

Both Amulet and Garnet have a toolkit layer and high-level, interactive tools. The toolkit layer of each provides a prototype-instance object system, automatic constraint maintenance, an efficient retained-object graphics output model, a novel input model, complete widget sets, and helpful debugging tools. The high-level, interactive tools aim to make it possible to create the user interface without programming. Instead, the user draws examples of the desired graphics and demonstrates their behaviors.

Whereas the toolkits of both Garnet and Amulet are complete, we currently only have interactive tools for Garnet. These include the Gilt interface builder, the Jade dialog box creation system, the Lapidary tool for creating application-specific graphics, the C32 spreadsheet system, the Marquise interactive tool for demonstrating the overall behavior of the interface, and Silk [1] which allows graphic designers to quickly sketch how interfaces should look.

In developing Garnet and Amulet, we have three primary goals: The first is to make systems useful for user interface researchers. This means that it is easy to build new kinds of interactive tools and new kinds of widgets, investigate new constraint solving algorithms, and explore innovative interactive technologies like speech, gestures, 3D and CSCW. The second goal is to build systems useful for students, which means that the system should be easy to learn. Finally, we are committed to creating tools useful for general developers, which means providing sufficient performance, robustness and documentation.

In conclusion, the User Interface Software Group is exploring innovative toolkit organizations and high-level, demonstrational, interactive tools. In addition, we are developing practical user interface development environments that you can use today.


This research is currently 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. Additional support for Garnet has been provided by General Electric, Apple Computer, NEC and Adobe.


1. J. Landay and B.A. Myers. "Interactive Sketching for the Early Stages of User Interface Design." Proceedings SIGCHI'95, Denver, CO, May, 1995.

2. B.A. Myers, "Garnet: Comprehensive Support for Graphical, Highly-Interactive User Interfaces." IEEE Computer 23, 11 (Nov. 1990), 71-85.