Google Summer Of Code draft
From Gephi:Wiki
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:
- GSOC 2010 proposals
- How to write a layout
- All supported layout by Gephi
- A paper of graph with bend edge
- Orthogonal layout example
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:

