Google Summer Of Code draft

From Gephi:Wiki

Jump to: navigation, search

This page is an incubator for official GSoC proposals.

Edge Refactoring

This proposal focuses on system architecture and graph layout.

 Difficulty: Medium
 Required skills: Java, Architecture
 Assigned Mentors: 

Description:

Graph layout is a very important part in graph drawing. Many of the layout algorithm(Force directed layout,etc) used straight edges. But bend edge and curve edge are also used in some area(circute layout, edge bundling). Currently, Gephi only support bend edge in preview window. It can't fully support bend edge(support only in preview window) and segmented edge because of the architecture and data structure of edge. We want students to overcome such problem.

What students might do is understanding the mechanism of the edge and layout in Gephi, then refactor the architecture. After that, students should implement their own layout to prove their mechanism is workable and extendable. For example, they can implement an orthogonal layout, or an edge bundling implementation.

Prerequisite for the student:

  • Have interest in open-source environment, tools and software architecture.
  • Good at design patterns and other design rules.
  • A good experience in graph drawings and layout algorithms.

Resources:

Collaboration Support

 Difficulty: Medium to Hard
 Required skills: Java, Architecture, Networking
 Assigned Mentors: 

Description:

SNA and many other kinds of graph analysis are complex processes, sometimes collaboration is necessary. In this proposal, we want to add such support. Two or more users sharing a common graph, if one operate on the graph, others can see the changes. We can also take full advantage of the timeline. The history of many users displayed on the timeline and users can turn back to any time of any person. Then start from a new branch. Sounds like SVN, but support realtime and can be used in graph analysis. There are many amazing points in collaboration. If you have other ideas, feel free to let us know.

An elementary guidance:

I think there are two ways to do this:

  • Firstly, students should know the main structure and features of Gephi. Then, they might implement a collaboration environment. Of course it would be amazing if you use the timeline feature.
  • students can implement such idea by Gephi toolkit, only on the application itself.

Prerequisite for students:

  • Have experience in network programming.
  • Ability of grasping the main branch of a large project.
  • Have ideas in collaboration working environment.

Resources:

Personal tools