All Projects → Todense → OmniGraph

Todense / OmniGraph

Licence: MIT license
Desktop application for creating graphs and algorithm visualisation

Programming Languages

java
68154 projects - #9 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to OmniGraph

DashboardFx
JavaFx Dashboard
Stars: ✭ 272 (+907.41%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps, javafx-project
Bank-Account-Simulation
A Bank Account Simulation with JavaFX and SQLite back-end. Material UX|UI.
Stars: ✭ 19 (-29.63%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps, javafx-project
JFXGoogleDrive
A JavaFX Google Drive Client (For Demonstration Purposes Only).
Stars: ✭ 29 (+7.41%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps, javafx-project
store-pos
It is java accounting software basically developed using javafx which has various modules like purchase, sales, receipts, payments, and journals.
Stars: ✭ 84 (+211.11%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps, javafx-project
sqlbrowserfx
A feature rich cross platform sql client for SQLite , MySQL.
Stars: ✭ 19 (-29.63%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps
vkmusic
Приложение для выгрузки аудио библиотеки из ВК
Stars: ✭ 31 (+14.81%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps
ChatRoomFX
JavaFX ChatRoom using JAVA RMI
Stars: ✭ 33 (+22.22%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps
tqrespec
TQRespec - The respec tool for Titan Quest game
Stars: ✭ 59 (+118.52%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps
hacklympics
🏆 Full-stack online programming examination system
Stars: ✭ 44 (+62.96%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps
gramophy
A JavaFX based Open-Source YouTube Music Downloader/Player
Stars: ✭ 88 (+225.93%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps
Jabref
Graphical Java application for managing BibTeX and biblatex (.bib) databases
Stars: ✭ 2,385 (+8733.33%)
Mutual labels:  javafx, javafx-application, javafx-desktop-apps
mano-simulator
🖥️ An assembler and hardware simulator for the Mano Basic Computer, a 16 bit computer.
Stars: ✭ 20 (-25.93%)
Mutual labels:  javafx, javafx-application
SnakeFX
Snake game in JavaFX
Stars: ✭ 41 (+51.85%)
Mutual labels:  javafx, javafx-application
subtitles-view
基于javaFX的简单字幕处理桌面程序,集成在线翻译及语音转换
Stars: ✭ 368 (+1262.96%)
Mutual labels:  javafx, javafx-desktop-apps
PrayerTimes
Desktop application 💻 for calculating Muslim prayer times 🕌 and setting an alarm (Adhan) ⏰ for the prayer times.
Stars: ✭ 151 (+459.26%)
Mutual labels:  javafx-application, javafx-desktop-apps
InvMan
Open source JavaFX inventory management application
Stars: ✭ 40 (+48.15%)
Mutual labels:  javafx, javafx-application
FxEditor
JavaFX rich text editor able to handle billions of lines (WORK IN PROGRESS)
Stars: ✭ 21 (-22.22%)
Mutual labels:  javafx, javafx-desktop-apps
JavaFXWorkshop
Code and a handout for a JavaFX workshop
Stars: ✭ 24 (-11.11%)
Mutual labels:  javafx, javafx-application
msgbots
Messenger Bot Simulator ( Rhino )
Stars: ✭ 17 (-37.04%)
Mutual labels:  javafx, javafx-application
AsyPad
A simple drawing tool that can convert diagrams into Asymptote code.
Stars: ✭ 18 (-33.33%)
Mutual labels:  javafx, javafx-application

OmniGraph

A multiplatform desktop application that lets you build graphs and visualize a collection of algorithms. Build in JavaFX.

main

Features Overview

  • Interactive graph editor
  • Classic algorithms step-by-step visualization
  • Graph layout algorithms
  • Travelling salesman problem solvers
  • Random & preset graph generators
  • Graph export & import

How To Run

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

Features

Basic algorithms

Step-by-step visualizations for basic algorithms, including:

  • DFS
  • BFS
  • Dijkstra's shortest path algorithm
  • A* shortest path algorithm
  • Prim's minimum spanning tree algorithm
  • Kruskal's minimum spanning tree algorithm
  • Hamilton cycle search algorithm

astar

Layout algorithms

Layout algorithms aims to create readable graph drawing by arranging node positions.

Currently, OmniGraph has two force-based layout algorithms:

  • Adaptive cooling force-directed layout by Yifan Hu [1]
  • D3-Force Layout algorithm [2]

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]).

layout

Travelling salesman problem solvers

Current algorithms for solving TSP are several variants of ant colony optimization technique for TSP based on [3]:

  • Ant System
  • Ant Colony System
  • Ranked Ant System
  • Max-Min Ant System

Parameters of solvers can be tweaked while algorithms are running. Options for visualization include moving ants and pheromone levels animations.

tsp

Generators

Graph generators include both random graph models and pre-defined collections of graphs (e.g. cycles, grids)

Random generators:

  • Erdős–Rényi model
  • Barabási–Albert model
  • Geometric model
  • Randomized geometric model
  • Maze generator

generated

Saving & importing graphs

Supported file formats:

  • .ogr - OmniGraph custom format (save node positions, node labels, edge weights and colors)
  • .tsp - TSPLIB format for the travelling salesman problem (only EUC_2D edge weight type)
  • .mtx - Matrix Market format (save structure of a graph)
  • .graphml - GraphML format (save node positions)
  • .svg - export graph as SVG image

Build with

  • Java 11
  • OpenJFX
  • Maven - dependency management
  • Scene Builder - visual layout tool for JavaFX Applications
  • MvvmFX - an application framework for implementing the Model-View-ViewModel Pattern for JavaFX
  • ControlsFX - custom JavaFX controls
  • JFoenix - JavaFX material design library
  • Ikonli - icon packs for Java applications
  • JUnit 5 - Java testing framework
  • CSS

References

[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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].