Specification - GSoC Timeline
Timeline player and movie creation for Gephi
This document outlines the plan to implement new features involving the interaction of dynamic graphs to Gephi, in the context of the Google Summer of Code 2011 project. In a nutshell: redesign the current timeline to improve user experience and add extra features (zooming, graduation, highlighting, etc) and introduce an animation scheme with the possibility to export the resulting video.
The main idea to allow for zooming is to couple a global timeline and a detailed timeline -- with zooming controls to change the resolution. The detailed timeline would display the zoomed time interval and the time needle (which indicates the time evolution during the animation) and the detailed timeline would represent the zoomed interval within the whole interval. More precisely, the detailed timeline would be similar to Gephi's current timeline and the global timeline could be implemented as a scroll bar in the bottom of the detailed timeline where its bar width to the whole scroll bar width would be proportional to the zoomed interval length to the total time interval length; the position of the bar in the scroll would also correspond to the relative position of the zoomed interval.
This approach is used in other applications in which the timeline is key to the general interface. This is the case in the video editing software context: consider the example of the software Kdenlive (screen-shots). In this case we have the coupled timeline and some zooming controls in the bottom -- two magnifying glass icons '+' and '-' and a slide control. Inspired by this design, I propose to use similar zooming icons on the side of the timeline to save space. As the user zooms the time interval, the relative size of the scroll bar changes, as well as the graduation.
In addition to these improvements, we plan display "friendly" time units (days, hours, mins, secs, etc) when appropriate, enhance the tooltip by adding relative time units (percentage) and introducing pinpointing markers to highlight precise instants. Another feature considered is to include a plot within the detailed timeline of some graph attribute (number of node, number of edges, etc) to allow the user to quickly identify interesting phenomena in the network.
With a proper timeline in place, a fairly natural improvement is to implement an animation scheme where the several states of the network would stream in time. This feature will potentially represent a capital gain for Gephi in terms of dynamic data/event visualization. Here the challenge is to keep the interface as simple and accessible as possible and to well calibrate the frame speed so that we do not miss important changes in the object.
The next step is to be able to export those animations in a video format. A possible way to implement this feature is to make use of the OpenGL rendering engine in Gephi to create the frames; to wrap the data it will be necessary to choose a suitable video format and compression scheme. Since Gephi is not a professional video creating software and the fact the animations are fairly simple and soundless we could use the JMF module to process video. The choice of the encoding and compression scheme will be defined after a benchmark.
List of constraints here.
- User can select the Time Interval column: a dataset may contain more than one column with time.
Following the guidelines of the GSoC website we can break down the planning in the following way:
- June 26: Timeline prototype by customizing UI components and integration to main project
- July 8 : Addition of a sparkline graph from a given metric (e.g. # of nodes)
- July 15: Implement animation (as a sliding time frame)
- July 29: Code/integrate an exporter for the animation
- August 5: Tweak timeline component (choosing metric for sparkline, zooming controls)
- August 15: Fine tunning + bug fixing
- August 22: Documentation
- Kde'n'live - http://www.kdenlive.org/