Home

Awesome

<p align="center"> <img src="preview/logo.png" /> <img src="preview/SimulationExamplePreview.png" /> </p>

forthebadge forthebadge

About

Graphi is an interactive network analysis and visualization software suite
The software provides users with the toolkit needed to simulate large random networks, perform complex network computations and elegantly display results, record network states, bundle common operations and execute them multiple times, import & export networks/data tables/recordings/etc., customize and enhance network visualization viewing with zooming, rotating, transforming, focusing tools. Additionally, the software features a comprehensive plugins API that allows developers to extend the application. Graphi has been used extensively in recent research and by education providers

Projects using Graphi

<a name="tableofcontents" />

Table of Contents

Features

Getting started

License

<a name="Features" />

Features

<a name="Controllingnetworkobjects" />

Controlling Network Objects

The view of the graph pane can be easily manipulated using your mouse
You can select, move objects, zoom in/out, rotate the graph and focus a node

<img src="preview/MouseFeaturesPreview.gif" /> <br /> <br /> <img src="preview/MouseSelectionFeaturePreview.gif" /> <a name="Networkrecording" />

Network Recording & Playback

In Graphi you can record the state of a graph many times and create a playback
All components can be recorded including node properties and data tables
You can view specific entries, play & pause and change the speed of the playback

<img src="preview/PlaybackGrowthPreview.gif" /> <br /> <br />

This feature is great for analysing network growth and behaviour
For example one could observe diffusion/virus phenomenon

<br /> <img src="preview/PlaybackDiffusionPreview.gif" /> <br /> <a name="Networksimulation" />

Network simulation

<img src="preview/SimulationControlsPreview.png" align="right" /> <br /> <a name="Tasks" />

Tasks

<img src="preview/TasksListPreview.png" align="right" /> <br /> <br /> <a name="Projects" />

Projects

Projects in Graphi are a users workspace, they maintain the users networks, table data, recordings etc.
Users can create new projects, save them and open existing projects

<img src="preview/ProjectsPreview.gif" /> <a name="Plugins" />

Plugins

Graphi allows users to users to extend the application using the Plugins API
The Plugins API is very powerful and gives developers a lot of flexibility where the following is possible:

<img src="preview/ManagePluginsPreview.png" /> <a name="Settings" />

Settings

Users can change many of the application settings from the options menu
Visuals can be customization to preference such as node, edge, background colour as well as themes and resolution etc. Additionally, network object labels and views can be toggled
Users can also change logging and updating settings

<img src="preview/SettingsPreview.png" /> <a name="Managenetworkobjects" />

Manage Network Objects

<img src="preview/GraphObjectControlsPreview.png" align="right" />

Graph objects such as nodes and edges can be managed from the Graph Object Controls
Users can create a new node or edge from the add button or editing an existing object by selecting it and click edit Objects can also be removed, simply select the object to removed click delete on the controls

<br />

Nodes & Edges can also be easily drawn onto the view pane
Simply select the drawing tool and left-click to create a node then
drag from one node to another to create an edge

<img src="preview/GraphObjectDrawingPreview.gif" /> <a name="Searching" /> <br />

Searching

<img src="preview/GraphObjectSearch.png" align="right" />

Users can search for nodes and edges using the object search feature
If the node/edge is found it will by highlighted in the view pane
Objects are searched by their ID, you can find an objects ID in the node/edge tables or by toggling object labels

<br /> <a name="Datalogs" />

Data & Logging

Raw data in Graphi is represented in the Data tables tab
The tables include node, edge and computation data
Additionally, some operations generate logs which you can find in the Output tab

<img src="preview/DataLogsCombinedPreview.png" /> <a name="Networkcomputation" />

Network Computation

<img src="preview/ComputationControlsPreview.png" align="right" />

Graphi provides multiple network computation algorithms which can be applied on a network to analyse its behaviour
Supported algorithms include centrality measures (eigenvector, closeness, betweenness) and computing clustering
If enabled, algorithms are able to transform the network visually i.e. enlarging or coloring central nodes

<br /> <a name="io" />

IO

<img src="preview/IOControlsPreview.png" align="right" />

Graphi offers users a number of importing & exporting options
Importing/exporting of the following objects and formats is supported:

<br /> <a name="Gettingstarted" />

Getting started

<a name="Prerequisites" />

Prerequisites

<a name="Installation" />

Installation

<a name="Building" />

Building

git clone https://github.com/kyleruss/graphi.git
mvn package

Note: The Graphi project can be directly imported into NetBeans

<a name="License" />

License

Graphi is available under the MIT License
See LICENSE for more details