[comp.lang.lisp] [comp.archives...] Garnet User Interface Development Environment for Lisp

bam@a.gp.cs.cmu.edu (Brad Myers) (10/29/90)

Archive-name: garnet/17-Oct-90
Original-posting-by: bam@a.gp.cs.cmu.edu (Brad Myers)
Original-subject: Garnet User Interface Development Environment for Lisp (free)
Reposted-by: emv@math.lsa.umich.edu (Edward Vielmetti)


There was a recent article here about Garnet, so I thought I would post
the "official" announcement.  We have nearly finished a new version that
contains many exciting new features.  Please send mail to garnet@cs.cmu.edu
for more information.

NOTE: Due to restrictions from our funding source, we are unable to send 
Garnet to any non-US companies or universities at this time.  Please
don't blame me--it's not my fault!  I hope this problem will be cleared up
soon.


-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
                 Announcing the Availability of Garnet:
     Generating an Amalgam of Realtime, Novel Editors and Toolkits

The Garnet research project in the School of Computer Science at Carnegie
Mellon University is happy to announce the release of our toolkit for
general use.  The Garnet Toolkit helps to implement highly-interactive,
graphical, direct manipulation programs for X/11 in CommonLisp.  These
programs typically have a number of graphical objects (up to about 2500) on
the screen that can be manipulated by the mouse and keyboard.  Typical
applications of the Garnet toolkit include: drawing programs such as
Macintosh MacDraw, iconic file manipulation programs such as the Macintosh
Finder, box and arrow diagram editors such as graphs and PERT charts,
graphical programming languages, board game user interfaces, simulation and
process monitoring programs, user interface construction tools, some forms
of CAD/CAM programs, etc.  The Garnet Toolkit does not help with text
editing (except for small labels or property-sheet fields).

Important features of the toolkit include:
* Coverage of the entire user interface, including the contents of the
  applications' windows.

* Look-and-feel independent, while still providing a high-level of support.
  A set of "widgets" is provided for those who do not wish to define a
  look-and-feel.

* An object-oriented architecture using a prototype-instance model.

* Constraints integrated with the object system, so that any slot (instance
  variable) of any object can be declared as a "formula" which will be
  re-evaluated whenever there is a change in any other objects it references.

* Automatic graphic object updating.  Graphical objects are retained and
  remember their position on the screen.  Whenever any property changes,
  they erase and redraw themselves, along with any other damaged objects.

* Separation of input handling from graphics programming, through the use
  of "interactor" objects, which encapsulate interactive behaviors.

* Hiding all of X/11.  The programmer using the Garnet Toolkit never makes
  Xlib (CLX) calls or receives Xlib events.

In the future, high level tools including a sophisticated Interface Builder,
called Lapidary, will be released.  Garnet is implemented on top of the CLX
interface to X/11, and will work for any CommonLisp.  So far, we have it
working on Allegro, Lucid, TI, Harlequin, and CMU CommonLisps on 
various hardware.  There is very little implementation-specific code, so 
porting to other platforms should be simple.  Garnet does NOT use CLOS or 
any existing X toolkit (such as Xtk or Motif).  The toolkit comes with 
debugging tools, complete reference manuals, and a tutorial.

Garnet is being developed under a grant from DARPA.  Papers about Garnet have
appeared at OOPSLA (1988), SIGCHI (1989 & 1990), UIST (1989), and the
X Conference (1990).  An overview will appear in the Nov, 1990 issue of 
IEEE Computer.

Garnet source and binaries are available for free, but you need to have a
license from CMU.  Already, over 80 sites are licensed and over 200 have
expressed interest.  Send requests (including a FULL work or university
physical mail address) for additional information or a license to:

	Brad A. Myers
	School of Computer Science
	Carnegie Mellon University
	Pittsburgh, PA  15213-3890
	(412) 268-5150
	garnet@cs.cmu.edu