Skip to content

🌠 An interactive network analysis & visualization tool

License

Notifications You must be signed in to change notification settings

kyleruss/graphi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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



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



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



  • Graphi offers a number of network generation algorithms to help simulate scale-free, small-world and random network topologies
  • Supported algorithms include the Kleinberg Model, Barabasi-Albert Model and Erdos-Renyi Random Model
  • Network simulations are highly configurable in the UI and script parameters
  • Interpersonal ties can also be simulated using a probabalistic wiring mechanism

  • Tasks save alot of time by offering a great way to combine commonly run operations, execute them multiple times and reuse them
  • Many of the common Graphi operations such as network simulation, recording, exporting, computing etc. are available as tasks
  • Users can add and execute setup & repeatable tasks where setup tasks can be used for example in experiment initialization and repeatables for operations that need to executed many times
  • Operation parameters can be set individually for each specific task instance
  • Users can create their own custom tasks using the comprehensive Graphi Plugins API


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

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:

  • Create new or change existing Graphi UI components i.e. skins
  • Create custom tasks
  • Add new network simulation algorithms
  • Add new computation operations
  • Create custom node and edges types with new states & variables
  • Change mouse controls on the network view pane
  • Change data views
  • Add new export & import options
  • Many more

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

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


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


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


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

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


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

  • Networks (Supports Graphi .graph files, GraphML, GML, Matrices .txt)
  • Network recordings
  • Data tables
  • Tasks
  • Logs

  • JDK 1.8
  • Maven 3.3
  • Recommended: NetBeans 8.1+
  • Download the latest release
  • Unpack the zip contents
  • Run Graphi.exe
  • Clone the Graphi repository
git clone https://github.com/kyleruss/graphi.git
  • Build the project
mvn package

Note: The Graphi project can be directly imported into NetBeans

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