Google Summer of Code 2012

GSoC_2012_logo_250pxIt’s a great news, Gephi has been accepted again for the Google Summer of Code. The program is the best way for students around the world to start contributing to an open-source project. Since 2009, each edition is a great success and dramatically boosted Gephi’s project development.

What is Gephi?

Networks are everywhere: email systems, financial transaction systems and gene-protein interaction networks are just a few examples. Gephi began as a university student project four years ago and has quickly become an open source software leader in the visualization and analysis of large networks. It is an important contribution to the ecosystem of tools used by researchers and big data analysts to explore and extract value from the deluge of relational data and disseminate a better understanding for people to think about a “connected” world.

Gephi is a “Photoshop” for graphs: designed to make data navigation and manipulation easy, it covers the entire process from data importing to aesthetics refinements and communication. Users interact with the visualization and manipulate structures, shapes and colors to reveal the properties of complex and messy data. The goal is to help data analysts make hypotheses and intuitively discover patterns or errors in large data collections.

Gephi’s project aims at providing the perfect tool to visualize and analyze networks. We focus on usability, performance and modularity:

  • Usability: Easy to install, an UI without scripts and real-time manipulation.
  • Performance: Visualization engine and data structures are built scalable. Supporting always-larger graphs is an endless challenge!
  • Modularity: Extensible software architecture, built on top of Netbeans Platform. Add plug-ins with ease.

Learn more about Gephi, watch Introducing Gephi 0.7, download and try it by following Quick Start Tutorial.

Gephi’s project is young, the growing community is composed of engineers and scientists involved in network science, datavis and complex networks.

List of ideas

List of ideas are availabe on our wiki. They cover various skills and level of difficulties:

* Legend moduleIntegrate a legend in the Preview module
* Flexible Table ImporterCreate a generic network creation wizard from data tables
* Cloud GephiBuild an online gallery and bring some of Gephi’s features to the cloud
* Force Directed Edge BundlingImplement Force Directed Edge Bundling algorithm
* Statistics Reports and HTML5 ChartsImprove statistic report and port existing charts to HTML5+Javascript
* Statistics Unit TestsAdd unit tests to the statistical algorithms
* Graph StreamingImprove Graph Streaming API and interconnect GraphStream’s dynamic graph event model with Gephi

Please also propose your ideas on the forum. They will be considered and discussed by the community. Have a look at our long-term Roadmap.

Students, join the network

Students, apply now for Gephi proposals. Join us on the forum and fill in the questionnaire. Be careful, deadline for submitting proposals is April 6 (timeline)!

Hélder Suzuki, student for Gephi in 2009 and now software engineer at Google, wrote:
At Gephi students will have the opportunity to produce high impact work on a rapidly growing area and be noted for it.

View our previous Google Summer of Code projects here and read former students interviews.

Follow Gephi on Twitter

screenshot_gephi1903

Introducing the Gephi Plugins Bootcamp

We’re happy to announce a new tool for the community today: the Gephi Plugins Bootcamp. The bootcamp is a large set of plug-in examples to guide developers create Gephi plugins easily.

Gephi’s vision focuses on the platform and we want developers to be creative and successful. Gephi is built in a way it can be easily extended with plug-ins (layout, filters, io, preview, …) but it’s not always easy to know where to start. The bootcamp addresses this need and provide the environment and the examples to get started.

Want to create a new layout? The Grid Layout example shows how to read the graph and to change coordinates. A new filter? A new exporter? Check out the JPGExporter or the SQLite exporter examples. Below is the complete list of examples and we’ll add more soon upon requests.

Checkout the code on GitHub.

The README file contains the instructions to get the code and to run the examples.

Layout

Grid Layout Example Grid Layout
Place all nodes in a simple grid. Users can configure the size of the area and the speed.
Sorted Grid Layout Example Sorted Grid Layout
Same example as Grid Layout but users can sort nodes using an attribute column.

Filter

Transform to Undirected Example Transform to Undirected
Edge filter to remove mutual edges in a directed graph.
Top Nodes Filter Top nodes
Keep the top K nodes using an attribute column.
Filter Edge Crossing Example Remove Edge Crossing
Example of a complex filter implementation which removes edges until no crossing occurs.

Tool

FInd with Autocomplete Find with autocomplete
Tool with a autocomplete text field to find any node based on labels and zoom by it.
Add Nodes example Add Nodes
Listen to mouse clicks and adds nodes. Also adds edges if selecting other nodes.

Export

jpg export JPG Export
Vectorial export to the JPG image format. Contains a settings panel to set the width and height.
sqlite_export SQLite Database Export
Current graph export to a SQLite Database file. A new sub-menu is added in the Export menu and an example of a custom exporter is shown.

Preview

Highlight mutual edges example Highlight Mutual Edges
Colors differently mutual edges. Overwrites and extends the default edge renderer.
Glow Renderer example Glow Renderer
Adds a new renderer for node items which draws a glow effect around nodes.
Z-Ordering Example Node Z-ordering
Extends the default node builder by reordering the node items by size or any number columns. Also shows how to create complex Preview UI.

Importer

Matrix import example Matrix Market File Importer
File importer for the Matrix Market format. Large set of matrix file examples on Yifan Hu’s gallery.

Statistics

Count Self Loop example Count Self-Loop
Example of a statistics result at the global level. Simply counts the number of self-loop edges in the graph.
Average Euclidean Distance Example Average Euclidean Distance
Example of a per-node calculation. For a given node it calculates the average distance to others.

Plugins sub-menu

Submenus Example Test action
Simple action which displays a message and a dialog.
remove_self_loops Remove self loops
Action which accesses the graph and removes self-loops, if any.
Progress Example Using Progress and Cancel
Action which creates a long task and executes it with progress and cancel support.

Execute at startup

UI Ready Example When UI is ready
Do something when the UI finished loading.
workspace_events Workspace select events
Do something when a workspace is selected.

Processor

Initial Position Processor Example Initial Position
Set up the nodes’ initial position always the same. It calculates a hash with all nodes so the X/Y position is randomized always in the same way.

Panels

Panel Example New panel
Example of a new panel plugin set up at the layout position.

If you have any questions please send an email to the gephi-plugins [at] lists.gephi.org mailing list or stop by on the forum.

Gephi migrates to GitHub

Github logoWe are happy to announce we finished the migration of our code from Launchpad to GitHub. All the code and bugs have been successfully transfered with the complete history. We can now profit from the best platform out-there and use Git, the fastest revision control system.

We hope you’ll find GitHub faster and easier to use than Launchpad. The team is already appreciating how easy it is to report issues and work together on the code. GitHub has more than a million users and will make the project more visible and ease external contributions.

Technically, we migrated our branches from Bazaar to Git (thanks to git-bzr) so the history is entirely kept. We also moved all our bugs with a simple script. We are still working on the details. If you see something wrong or missing on GitHub, please contact us or create an issue on GitHub. If you had some branches on Launchpad, you can find them on the GitHub repository. Let us know if you have questions. Contributors simply fork the repository and get started. We updated the documentation on the wiki. Consult the Developer Handbook.

Checkout code

Run
git clone git://github.com/gephi/gephi.git

Report issues

Simply go to the Issues tab.

Build in one step

Simply run ant at the root of the repository to build Gephi. The executable are located in the dist folder.

We made some improvements on the building process. Previously, Netbeans was required to build Gephi. We now integrates the platform directly in the source code so it’s not necessary anymore. It’s literally a one step process.

Please let us know your feedbacks and questions as usual on the forum.

New Gephi Toolkit release, based on 0.8 beta

Gephi Toolkit on TruthyA new release of the Gephi Toolkit arrived, based on the 0.8 beta version. Download the latest package, including Javadoc and demos by clicking on the link below.

Download Gephi Toolkit

It includes all features and bugfixes the 0.8 beta version has. Check out the Release Notes

Demos available on the Toolkit Portal have been adapted when necessary and tested. If you are interested in using plug-ins from the Toolkit, checkout How to use plug-ins with the Toolkit.

One of the exciting new feature released in the 0.8 beta is the new Preview. Because it has been completely rewritten with a much simpler and powerful API it’s now possible to reuse the Processing-based applet in other applications. You can now reproduce the zoom-and-pan experience in Gephi’s Preview tab in other Java applications easily. Checkout this demo to learn more.

Screen-shot-2011-10-16-at-7.45.39-PM

Links you may be interested:

Gephi 0.8 beta released

The latest beta version of Gephi has been released, download it for Windows, Mac OS and Linux platforms. This release focus on new features for both users and developers, and the new license unlocks opportunities for business. The Ranking and Preview modules have been completely rewritten in a modular way and can be now extended with plug-ins! Preview can now be extended in many ways, for instance group shapes or edge bundling. Moreover, continuous progress have been made on the dynamic network support and we release today the last big part: statistics over time, available from the Statistics module when the network is dynamic. Thanks to users who reported bugs, it’s the only way to fix them.

The team will now start developing the 0.9 version of Gephi (please consider joining us!) and integrate the latest Google Summer of Code projects, including a new timeline. We are also willing to help as much as possible plug-ins developers to get things done and improve documentation. We want to leverage the new Preview and will help newcomers to get started.

Because it’s a major release, changes are not deployed through the AutoUpdate, you need to download and install the new version. Plug-ins also need to be checked for compatibility. They will reappear on the Plugin Center in the coming days, as they are verified. Thanks for your patience.

Consult the release notes and the new Javadoc for more information.

Features highlight

Ranking Auto Apply Dynamic Ranking

Ranking now works with dynamic networks and it’s easy! When manipulating a dynamic network with the Timeline simply enable the ‘Auto Apply’ and the color/size is updated in real-time. To import a dynamic node size simply import a regular dynamic column in your GEXF and select it in Ranking like before.

PNG Export PNG Export

A new powerful PNG export has been added to the existing PDF and SVG export. One can create high-resolution network images with all the customization available in Preview. You can even create transparent background images!

New Preview New Preview

Major effort to completely rewrite the Preview module in a modular way. One can now create plug-ins for Preview! The new Preview includes new opacity options, a text outline, radius (customize edge start/end points) and a simplified list of properties.

Dynamic Metrics Dynamic Metrics

New dynamic metrics in the Statistics module: Dynamic Degree, Dynamic Node Count, Dynamic Edge Count and Dynamic Clustering Coefficient. Dynamic metrics are executed on a dynamic network and allow to analyze how network properties evolve over time.

New And Noteworthy

* Data Lab node merging
* ForceAtlas2 layout algorithm, with multi-thread option
* Node and Edge transparency in Preview
* Edge labels on curved edges in Preview
* Text outline now in Preview
* Database importer now supports time columns (start & end)
* DL Export (Thanks to Taras Klaskovsky)
* GML Export (Thanks to Taras Klaskovsky)
* NET Export (Thanks to Daniel Bernardes)
* K-core filter
* Inter and Intra partition filter
* Now supports SQLite databases
* Display the number of layout iterations in status bar when ended
* Recent Palette in Ranking
* Weighted degree now also for directed graphs

New localization (Go to Tools > Languages)

* Portuguese (Brazilian) (Thanks to Célio Faria Jr)
* Japanese (Thanks to Siro Kida and Koji Chono)

Performance

* Memory starvation manager, warns the user before running out of memory
* Less memory usage with attributes

Bug fixes

* Timeline need more precision when dealing with dates (bug 521937)
* Exception on range slider (bug 541808)
* Inconsistent label data from Overview to Preview (bug 660204)
* Statistics: sub-optimal modularity (bug 727701)
* Timeline cann’t drag if the two sliders moved to the left (bug 745476)
* Missing Polish characters when exporting to pdf (bug 746740)
* Edge selection color is not correct on OSX (bug 752300)
* Workspace name truncated, hard to read (bug 758578)
* Average degree cannot be switched to directed / undirected (bug 760454)
* Window->Favorites appears in 0.8 alpha (bug 764494)
* Disable ‘directed’ on metric settings if the graph is undirected (bug 771318)
* Timeline does not work (exception) (bug 774455)
* Layout properties can’t be saved in a language and loaded in another language (bug 783637)
* Preview: edge label not shown (bug 783868)
* Possible memory leak on Dynamic Range Filter (bug 784606)
* Edge attributes not saved in .gephi project file (bug 785268)
* Data Lab: Exception when selecting only one column for merging (bug 785269)
* Data Lab Import Spreadsheet should not ignore parallel edges (bug 785635)
* Data Laboratory: wrong edge type created (mutual instead of directed) (bug 787401)
* Data Lab: impossible to edit time intervals in a date format (bug 793163)
* Spelling of Proportionnal (bug 794358)
* Graphics errors when JOGL installed as a JRE/JDK extension (bug 799545)
* NPE if source/target is empty in GEXF import (bug 799574)
* Toolkit can’t open .gephi files (bug 802101)
* Resizing edge sizes changes edge weight values (bug 803763)
* Preview does not use node label settings from overview tab (bug 805763)
* Data Lab ‘Import Spreadsheet’ dialogue should accept other file types than .csv (bug 806798)
* Edge weights not imported from CSV matrix (bug 808078)
* Preview tab: no option to switch off node borders? (bug 808606)
* Gephi runs out of memory without warning the user (bug 811373)
* Counter-intuitive filename in Data export dialog (bug 814178)
* NullPointerException when creating newProjects too quickly (bug 817170)
* Nodes and edges Id attribute dictionary is not properly created when loading a .gephi file (bug 818181)
* Database driver doesn’t persist in Edge List Database import UI (bug 822316)
* NodeEqualNumberFilter does not work (bug 823038)
* Gephi does not build on JDK 7 (bug 823543)
* SVG node, edge export should include relevant node IDs as classes (bug 827706)
* Import Spreadsheet: need to trim column names (bug 829956)
* Layout list not sorted by name (bug 830149)
* In/Out degree metric is computed on the main graph instead of the visible graph (bug 830752)
* Layout is not giving the algorithm’s number of iterations (bug 831782)
* Banner height issues, need a fixed height (bug 834400)
* NPE when running ClusteringCoefficient on a filtered graph (bug 852799)
* Missing node properties from dot file (bug 855410)
* ‘The value column doesn’t exist’ error when opening a gephi file (bug 857595)
* Import fails for NET (Pajek) file with position/color data (bug 860825)
* GEXF export referes to v1.1 schema, should be v1.2 schema (bug 864484)

New Plug-ins documentation

Checkout the documentation for the newly created Preview module: HowTo write a Preview Renderer. Learn also how to extend the Data Laboratory features in a new tutorial.

New license

Gephi is now released in the dual license CDDL + GNU GPLv3. We abandon the GNU AGPL to offer new opportunities to reuse and integrate parts of Gephi in a full Open Source way. The dual license system means the possibility to choose to apply either the CDDL or the GNU GPLv3 when Gephi source code is integrated to a derivative work. When modified, original files of Gephi should always be published publicly so that the community benefit from the improvements. However, the CDDL license does not require to publish the whole work, so you can build commercial applications for free using Gephi source code!
The CDDL is a license created by Sun and approved by the Open Source Initiative. It is business-friendly. Read the Legal FAQs to learn more, and ask questions on the forum.

Contribute

It’s fun to contribute to an open-source project! Contribute whatever the time you can give: few minutes to  report a bug, some hours to fix one or to translate the user interface or more to create a plug-in. If you’re a student and looking for cool and challenging semester projects check out the Gephi Student Program or contact us.

Do Gephi technologies matter for your research or business? You can support us by donating to the Gephi Consortium, or becoming a member to have an impact on our roadmap.

Feel free to reach to us if you are willing to organize events (meetups, workshops, hackathon, etc.), we will support them.

First Gephi Plugin Developers Workshop on October, 6

gephi workshop

This is an announcement for the first Gephi Plugins Developers Workshop October 6, 2011 in Mountain View, California. Come and learn how to write your first Gephi plugin and ask questions. The workshop is organized by Mathieu Bastian, Gephi Architect and will be gratefully hosted by IMVU.

Gephi is a modular software and can be extended with plug-ins. Plug-ins can add new features like layout, filters, metrics, data sources, etc. or modify existing features. Gephi is written in Java so anything that can be used in Java can be packaged as a Gephi plug-in! Visit the Plugins Portal on the wiki and follow the tutorials to get started.

The workshop will start with a presentation of Gephi’s architecture and the different types of plugins that can be written with examples. Details about Gephi’s APIs, code examples and best practices will be presented in an interactive “live coding” way. The Gephi Toolkit will also be covered in details. The second part of the workshop will be dedicated to help individuals with their projects and answer questions.

Some of the best projects using or extending Gephi are developed in the Silicon Valley and we are looking forward helping the developer community. Please don’t hesitate to send us your ideas to maximize efficiency.

RSVP here

New Gephi Toolkit release, based on 0.8alpha

toolkitarticleexample1-300x211 A new release of the Gephi Toolkit arrived, based on the 0.8alpha version. Download the latest package, including Javadoc and demos by clicking on the link below.

It includes all features and bugfixes the 0.8alpha version has, notably:

  • GEXF 1.2 support (partial)
  • Add Neighbour Filter
  • Improve support of meta-edges in Statistics and Filters
  • Edge weight option in PageRank, which can now be used by the algorithm
  • VNA Import (Thanks to Vojtech Bardiovsky)
  • Label Adjust algorithm 3 times faster
  • Saving/Loading projects is faster and use less memory

Demos available on the Toolkit Portal have been adapted when necessary and tested. If you are intrested in using plug-ins from the Toolkit, checkout How to use plug-ins with the Toolkit.

Links you may be interested:

This summer, the student Luiz Ribeiro is working on GSoC Scripting Plugin, a project to bring advanced scripting features in Gephi, using Python. This project will work with the Gephi Toolkit, and greatly facilitate its usage.