Coder Social home page Coder Social logo

kyleruss / graphi Goto Github PK

View Code? Open in Web Editor NEW
23.0 2.0 1.0 14 MB

:stars: An interactive network analysis & visualization tool

License: MIT License

Java 100.00%
java graph graph-analytics visualization graph-theory graph-processing graph-visualization

graphi's Introduction

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

graphi's People

Contributors

kyleruss avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

libaoke

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.