The interactive Graph Visualization System daVinci V1.4 ======================================================= Michael Froehlich, Mattias Werner, University of Bremen daVinci is a universal, generic visualization system for generating high- quality drawings of directed graphs. Graphs are frequently applied in computer applications as a general data structure for representing objects and relationships between them. They are used to implement hierarchies, dependencies, networks, configurations, dataflows, etc. Although graph visualization is accepted as indispensable for many domains, the use of this technique is not very common in today's computer applications. Frequently, a user has to deal with uncomfortable textual interfaces or poor ad-hoc drawings of graphs. The reason for this deficit is the great effort to implement a satisfying graph layout. In software development projects there is often a lack of personnel resources or money to realize these "auxiliary features". Furthermore, flexible and powerful graph visualization tools, which are reusable and easy to integrate with applications, are hard to find. These facts were the motivation for developing the interactive graph visualization system daVinci. The primary aim was to create a universal system that could be used by arbitrary applications as a user interface to display directed graphs in many different visualization styles. One fundamental concept of daVinci is the separation from an application that is using the visualization system as a user interface for graphs. The connected program is exclusively responsible for controlling the graph structure, and the only task of the visualization system is to display this graph on the screen. So daVinci is different from conventional graph editors, because the system is not able to alter the graph structure directly by itself. Each modification must be done by the application which controls the development of a graph. For this purpose, an application interface is provided for bidirectional communication with the connected program. An application, using this communication mechanism, can provide the user a powerful graphical user interface for directed graphs without implementing visualization techniques and layout algorithms. Furthermore, the user has full control to the application by interacting with the visualization of a graph: Clicking on a node and selecting a menu in daVinci may trigger an operation in the connected application. The most important features of daVinci V1.4 are: - Automatic layout for hierarchical representations of directed graphs with edge crossing minimization and bend reduction. - Support for cyclic graphs and graphs with multiple edges. - Alternative layout method for optimal representations of trees. - Interactive fine-tuning operations for layout customization. - Many attributes for nodes and edges available (e.g. setting colors, patterns, shapes, text, fonts, etc.). - Icons available for using any kind of image (in X11-bitmap format) for drawing graph nodes. - Interactive abstractions (e.g. collapsing subgraphs, hiding edges). - High-quality scaling to any rate without losing the interactive capabilities. - PostScript interface for printing and exporting visualizations. - Application interface for connecting an arbitrary program which generates graphs and controls their development. The interface provides commands for sending graphs, adding menus to daVinci's user interface, starting dialogues with the user, activating visualization operations, etc. On the other side, the application is informed about user events in daVinci such as selection of nodes, edges or menus. - Interactive graph editor available. This separate program can be connected to daVinci's application interface. daVinci is developed by the Institute for Formal Methods in Software- Engineering at the University of Bremen, Germany, since the end of 1992. The authors are Michael Froehlich and Mattias Werner. daVinci is written in the pure functional language ASpecT, developed at the University of Bremen also. The OPEN LOOKTM compliant user interface of daVinci is implemented in C using the window toolkit XView. As a result of the surprising worldwide approval, daVinci is now a widely used system for visualization of graphs. More than 500 educational and commercial sites all over the world are already using the tool. The system is available free of charge for non-profit use and can be downloaded from several ftp servers in Europe, North America, Japan and Australia. daVinci is an OPEN LOOK program, available for Sun SPARCstations (with SunOS 4.1.x and Solaris 2.x), HP 9000 workstations (with HP-UX), IBM RS6000 workstations, or PC's (with Linux or FreeBSD). Ports to other UNIX platforms are possible, but not available at this time. The system can be downloaded together with the documentation, manual pages, examples and tools by anonymous ftp from: ftp.Uni-Bremen.DE (134.102.228.2) in directory: /pub/graphics/daVinci The daVinci project is very interested in your opinion and experiences with the system. Reports about existing applications of daVinci, suggestions for new features and even criticisms are very welcome. You can contact the authors by sending an e-mail to daVinci@Informatik.Uni-Bremen.DE.