GraphsJ 3.5

GraphsJ is a modern didactic application dedicated to interactively execute graph algorithms; it features both a visual user interface and an SDK to develop custom scenarios.

Several students of Operations Research need to easily execute graph algorithms, in order to study them with a "hands-on" approach showing every step: GraphsJ meets this requirement by running, even step-by-step, some well-known algorithms - such as Dijkstra's shortest path problem - which often prove to be cross-subject.

On the other hand, research workers want to test their algorithms on a PC, as it's faster and less error-prone, in particular if one wants to perform several tests. However, writing a whole computer program just to test an algorithm is not always at hand - just creating a GUI is indeed a rather complex, time-consuming task.

GraphsJ satisfies both user groups, because it provides an easy-to-use interface as well as a simple Java framework: this means that anyone knowing just a bit of Java can create their own algorithms, without dealing with details such as the creation of a user interface or disk I/O - these features are already provided by the application, so the developer only has to create a few classes, compile them and provide the program with their location, therefore focusing on the business logic making up the algorithms.

This new version, GraphsJ 3, is mainly oriented to a global refactoring of the software architecture, which is now much simplified and far more elegant; it is based on two open-source libraries developed by me - Helios and Arcontes, as well as on a vast set of modern technologies, in particular JavaFX, in order to deliver an enhanced user experience.

  • A modern user interface, based on JavaFX
  • Flexible and greatly enhanced canvas to draw and edit your graphs
  • Includes 4 predefined, widely-used algorithms
  • Customizable fonts and colors for graph, vertexes and edges. Graphical settings are stored in each scenario file, along with the graph they describe
  • Java-based SDK, enabling anyone to easily create new scenarios to plug into the program
  • Full source code available, especially for the standard algorithms: developers can create a new algorithm starting from a consolidated base
  • Per-scenario options dialog and help page, customizable by scenario developers
  • XML-based document files, to foster interoperability
  • New, redesigned and much more elegant architecture, based on Helios and Arcontes.
  • Short but complete online help
  • Open source and, hopefully, elegant

Java 8 or later is recommended in order to run GraphsJ or to use its SDK.

Version 3.5 - Current

The most convenient way to run GraphsJ is to directly launch it from this website, by clicking on the related button: apart from being fast and simple, it also ensures that you're always working with the latest version of the application.

However, you can also download the program bundle as a zip file: in this case, you just need to decompress it and execute the contained main jar file - to this purpose, some operating systems support a double click on the jar, whereas others require you to issue the java -jar jarFile console command. Anyway, no update checks are performed in this case.

Some example files are also available, ready to run within GraphsJ.

GraphsJ SDK is a library providing classes and interfaces to easily create scenarios that you can import and run within GraphsJ.

GraphsJ consists of the following modules:


Provides classes and interfaces required to create your custom scenarios


Contains the built-in algorithm classes, whose logic and results can be used within your own algorithms

The suggested way to download a module of GraphsJ is to reference it as a Maven dependency:


Please, remember that, in order to reference GraphsJ within your POM, your Maven configuration or your POM itself must reference Hephaestus, my Maven repository hosted on this website.

If you are not using a dependency-management system, or just want to manually download specific artifacts, you can browse the related section of Hephaestus.

Please, note that all the jars provided by the SDK should be referenced as provided dependencies, because they are needed only during the compilation of your project, whereas they are provided by GraphsJ itself at runtime.

GraphsJ features a fairly easy-to-use interface, but you can find out more about its commands by looking at the online help, accessible by clicking the menu item ?->Help within the program.

You can also consult the pseudocode of the standard algorithms provided by the application.

Visit GraphsJ on Facebook

GraphsJ 3.5 was created by Gianluca Costa. Copyright © 2009-2013 Gianluca Costa.

GraphsJ 3.5 is released under the GPLv3 license . GPLv3

Most of the icons in the toolbar are a customization of the Primo icon set , by Double-J Design.

Special thanks to Paolo Tagliapietra for beta testing and some interesting brainstorming small talk about architectural and domain-related aspects.

Special thanks to:

for their support and advice.