Open Source Structured Graphics Libraries Written in Java

Share the article!

Here’s a new list inspired by a post by a reader (i.e. Hemant). The list covers libraries for developing 2 dimensional structured graphics. Just like the previous lists, everything is open source and written in Java.

  • Piccolo – Piccolo is a Java 2 toolkit that supports the development of 2D structured graphics programs in general, and Zoomable User Interfaces (ZUIs) in particular. It makes it easy for Java programmers to build their own animated graphical applications with zooming, multiple cameras, layers, images, etc. Jazz was the original toolkit, and Piccolo is Jazz’s successor. Other interesting visualization kits from the same group (i.e. UMD HCIL) include TreeMap and SpaceTree for hierarchies and TimeSearcher for time series.
  • JGraph – JGraph is a powerful, lightweight, feature-rich, and thoroughly documented open-source graph component available for Java. It is accompanied by JGraphpad, the first free diagram editor for Java that offers XML, Drag and Drop and more. With the JGraph zoomable component, you can display objects and relations (networks) in any Swing UI. JGraph can also be used on the server-side, for example to read a GXL graph, apply a custom layout algorithm, and return the result as a HTML image map.
  • Arakhnxc3xaa – A network editing environment. A Swing framework that permits to edit and show networks. It is domain-independant but it proposes a useful user interface that includes a dictionary of model’s objects, a manager of critic on model, a graphic user interface for model-object’s properies
  • Mica – Mica has complete support for advanced features such as infinite undo/redo, zoom and pan, network graph layouts and interactive graph templates, connections and connection points, annotations and annotation points, event handling and action percolation, layers and layer tabs, arrows, shadows, cut/copy/paste to/from clipboard, multiple printable pages, postscript, jpeg, and pdf output, rulers, toolhints, status bars, tool bars, default save/load to/from ASCII files, complete working network and diagramming editors, and more.
  • Diva – Diva is an architecture for visualizing and interacting with dynamic information spaces. In Diva, visualizations are built by hooking together software components which generate, supply, filter, and display information. The current release focuses on Diva’s canvas and graph visualization infrastructure.
  • Satin – Software support for making effective pen-based applications is currently rudimentary. To facilitate the creation of such applications, we have developed SATIN, a Java-based toolkit designed to support the creation of applications that leverage the informal nature of pens.
  • Batik – With Batik, you can manipulate SVG documents anywhere Java is available. You can also use the various Batik modules to generate, manipulate, transcode and search SVG images in your applications or applets.
  • GEF – The goal of the GEF project is to build a graph editing library that can be used to construct many, high-quality graph editing applications. A simple, concrete design that makes the framework easy to understand and extend. Node-Port-Edge graph model that is powerful enough for the vast majority of connected graph applications. Model-View-Controller design based on the Swing Java UI library makes GEF able to act as a UI to existing data structures, and also minimizing learning time for developers familiar with Swing. High-quality user interactions for moving, resizing, reshaping, etc. GEF also supports several novel interactions such as the broom alignment tool and selection-action-buttons. Generic properties sheet based on JavaBeans introspection. XML-based file formats based on the PGML standard.
  • Eclipse GEF – The Graphical Editing Framework (GEF) allows developers to take an existing application model and easily create a rich graphical editor. GEF allows a developer to quickly map any existing model to a graphical editing environment. The graphical environment is the SWT-based drawing plugin “Draw2d”. The developer can take advantage of the many common operations provided in GEF and/or extend them for the specific domain. GEF is suitable for creating a wide variety of applications, including: flow builders, GUI builders, UML diagram editors (such as work-flow and class modeling diagrams), and even WYSIWYG text editors like HTML. GEF does not assume that you must build one of these applications and is application domain neutral.
  • JHotDraw – JHotDraw is a Java GUI framework for technical and structured Graphics. It has been developed as a “design exercise” but is already quite powerful. Its design relies heavily on some well-known design patterns. JHotDraw’s original authors have been Erich Gamma and Thomas Eggenschwiler.
  • OpenJGraph – OpenJGraph is a Java library to create and manipulate graphs. Its features include directed, undirected, directed-acylic, and weighted graphs, and simple graph algorithms such as graph traversal, minimum spanning tree, and shortest path spanning trees for weighted graphs. The library also has some support for graph drawing, including straight line and orthogonal graph drawing, and for user interaction such as creating and removing a vertex, creating and removing an edge, dragging a vertex, and changing some of the vertex and edge properties.
  • Grappa – Grappa is a Java graph drawing package that simplifies the inclusion of graph display and manipulation capabilities. Methods for building, manipulating, traversing and displaying graphs of nodes, edges and subgraphs. Grappa includes methods for reading in and writing out graphs using the dot text format.
  • Grace – Grace is a generator for direct manipulation graph editors in Java. It can be used for any graph-like datastructure of your application.
  • Vector Visuals – Vector Visuals provides an easy-to-use, object-based API for creating and manipulating Java2D-rendered shapes and images. It features object embedding, dynamic connectors, and multithreaded task support. Vector Visuals is in use in a variety of applications. A few that we know of are a business ontology viewer, a particle simulator, and a children’s e-book builder.
  • GeoVISTA Studio – Studio is a programming-free environment that allows users to quickly build applications for geocomputation and geographic visualization.
  • NetBeans Graph Library – Graph Library has been designed to support visualization and editing of node-edge structures using drag’n'drop style of work. The library has been used in the Visual Designer in NetBeans Mobility Pack 4.1.
  • Graph Modeling Framework – The Eclipse Graphical Modeling Framework (GMF) provides a generative component and runtime infrastructure for developing graphical editors based on EMF and GEF.
  • Mascopt – Mascopt (Mascotte Optimization) project provides a set of tools for network optimization problems. Examples of such problems are routing, grooming, survivability, or virtual network design. Mascopt implements graph data structures, basic algorithms for graphs and import/export functionality. Mascopt provides graphical tools to display graph results.

If you happen to know of an active project that I should include, please let me know!

Share the article!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>