



Contact:
Brad
Myers
Human Computer
Interaction Institute
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213
{garnet, amulet}@cs.cmu.edu
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 a.gp.cs.cmu.edu. 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.
Keywords:
User Interface Management Systems, User Interface
Development Environments, Toolkits, Interface Builders,
Demonstrational Interfaces, Lisp, C++.
Acknowledgements
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.