[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

New toolkit to help with Graphical Programs



                 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 in various environments including IBM RTs 
using CMU CommonLisp and Suns using Lucid CommonLisp.  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, SIGCHI, and UIST.

Garnet source and binaries are available for free, but you need to have a
license from CMU.  Send requests (including a 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
	brad.myers@cs.cmu.edu