Awesome
GraphsJ
ScalaFX didactic application for graph algorithms
Introduction
GraphsJ is a modern didactic application and framework 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:
-
Artificial Intelligence:
-
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
-
A basic scenario introducing a paramount Data Mining concept: decision trees!
-
-
Operations Research:
- 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.
Features
-
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
Requirements
Java 8u91 or later compatible is recommended.
Running GraphsJ
The suggested way to run GraphsJ is MoonDeploy, as it will automatically download and launch the application - just go to the latest release page and open the file App.moondeploy.
Otherwise, to start the application:
- Download and decompress the zip archive
- Run the file bin/GraphsJ (on UNIX) or bin/GraphsJ.bat (on Windows)
Online help
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.
Screenshots
Special thanks
Operations Research
Artificial Intelligence
Icons
The icons in the menu and toolbar are part of the Crystal Clear icon set, by Everaldo Coelho.