Desktop application for creating graphs and algorithm visualisation
MIT License
A multiplatform desktop application that lets you build graphs and visualize a collection of algorithms. Build in JavaFX.
OmniGraph runs on Windows, Linux and macOS - Java 11+ is required.
Download and run the app with jar file from the latest release,
or clone & run with maven:
git clone https://github.com/Todense/OmniGraph.git
cd OmniGraph
mvn clean javafx:run
Step-by-step visualizations for basic algorithms, including:
Layout algorithms aims to create readable graph drawing by arranging node positions.
Currently, OmniGraph has two force-based layout algorithms:
Both algorithms are dynamic, meaning graph can be changed by user while algorithm is running.
For larger graphs, it is best to use Barnes-Hut algorithm which speeds up computations. Also, better layout could be achieved by using multilevel variants which include graph prolongation step between layouts step (see section 5 of [1]).
Current algorithms for solving TSP are several variants of ant colony optimization technique for TSP based on [3]:
Parameters of solvers can be tweaked while algorithms are running. Options for visualization include moving ants and pheromone levels animations.
Graph generators include both random graph models and pre-defined collections of graphs (e.g. cycles, grids)
Random generators:
Supported file formats:
[1] Hu, Yifan. (2005). Efficient and High Quality Force-Directed Graph Drawing. Mathematica Journal. 10. 37-71.
[2] M. Bostock. (2011) Force-directed Graph Layout Using Velocity Verlet Integration. https://github.com/d3/d3-force
[3] St, Thomas & Dorigo, Marco. (1999). ACO Algorithms for the Traveling Salesman Problem.