GraphsJ is a modern didactic application dedicated to interactively executing graph algorithms; it features both a ScalaFX visual user interface and a Scenario Development Kit - to create custom scenarios based on the EighthBridge toolkit for ScalaFX.
Starting from version 5.0, GraphsJ targets two paramount, complementary fields of study:
- Operations Research, whose concepts constitute the very core of EighthBridge and GraphsJ itself
- Artificial Intelligence, via the introduction of LambdaPrism into the application kernel
GraphsJ includes predefined scenarios dealing with problems from both fields - in particular:
- PlanBricks, which is an interactive canvas for solving Partial Order Planning (POP) problems
- A customized version of GraphPlan, which generates a construction graph showing Add and Delete arcs applied to positive literals
- Prim's Shortest Spanning Tree (SST), which is a very interdisciplinary algorithm
GraphsJ is inspired by the elegance and effectiveness of Functional Programming, which it mixes with OOP techniques thanks to the Scala programming language.
Modern user interface, employing ScalaFX
Flexible and vastly enhanced canvas to draw and edit graphs, supporting zoom and pan, similar to map navigation
ScalaFX-based SDK, enabling anyone to easily create new scenarios
Scenario-discovery engine, automatically adding and removing scenarios
Automated installation of the predefined scenarios, retrieved from GraphsJ-scenarios
Graphs can be exported as PNG images
Simplified model, inspired by Functional Programming
Per-scenario options dialog and help, customizable by scenario developers
XML-based document files, to foster interoperability and compatibility with previous versions
Open source code available: developers can create a new scenario starting from a consolidated base
Java 8u91 or later compatible is recommended.
The suggested way to run GraphsJ is MoonDeploy, as it will automatically download and launch the application - just click "Run with MoonDeploy".
Otherwise, to start the application:
- Download and decompress the binary zip archive
- Run the file bin/GraphsJ (on UNIX) or bin/GraphsJ.bat (on Windows)
GraphsJ features a very user-friendly interface, but ideas and suggestions can be found in the wiki!
Scenario development kit
For detailed information, please refer to the SDK project page.