AT&T   AT&T Home | AT&T Labs
Labs image
AT&T Labs - Research


Home | Changes | JavaDocs | Download | Demo | GraphViz | FAQs

A Java Graph Package

Grappa is a Java graph drawing package that simplifies the inclusion of graph display and manipulation capabilities within Java applications and applets. It has a good number of useful features built into it, but is also extensible.

Grappa can be thought of as a port of a subset of GraphViz to Java.

The current version of Grappa was built using the Java Development Kit (JDK) version 1.2 and takes advantage of recent improvements in the JDK such as Java 2D and Swing. Browser users can obtain free plug-ins via Sun to make their browsers capable of running JDK1.2.

You can download a copy of the Grappa source, documentation and archive files by going to the Graphviz download page and selecting the Download Grappa link in the Java Support section. On-line documentation and a demo are also available (you will need the above mentioned plug-in for the demo, though).

Regarding the demo that uses the JDK1.2 plug-in, depending on your browser, your platform, etc., the particular plug-in you use may introduce some flakiness into the demo. If you want to demo the 1.2 version of Grappa more reliably, you could try pointing a Java 1.2 appletviewer to instead.

The latest release of Grappa is dated . Refer to the change history page for an indication of what is different in the latest release. There is also a frequently asked questions (FAQ) page available.


Some of the features of Grappa are:

  • methods for building, manipulating, traversing and displaying graphs of nodes, edges and subgraphs;
  • each graph element may have associated with it any number of arbitrary name/value attributes;
  • certain specific attributes affect element position and appearance when displayed;
  • Grappa includes methods for reading in and writing out graphs using the dot text format (graphs may also be created by directly using the available element creation methods or interactively with a mouse);
  • a utility is provided to easily allow batch processing of a graph by a layout or other graph processing program;
  • interactive means are provided for creating and deleting graph elements as well as selection and deletion;
  • a wide range of node shapes are available;
  • a single graph can be displayed in multiple windows;
  • pop-up labelling (also known as a ToolTip) is available for any displayed element simply by defining a tip attribute.

Additional Information

The source for earlier JDK1.0 and JDK1.1 versions of Grappa is also included in the Grappa distribution.

The JDK1.1 Demo and the JDK1.0 Demo are still available. You may, however, need to re-start your browser when you switch from one version of the demo to another as caching will most likely cause confusion since there is a great deal of name-space overlap among the versions.

Grappa is licensed under the same arrangements as are used for graphviz. Refer to the graphviz download page for additional information. For questions about Grappa, contact John Mocenigo.