This discussion is archived
1 Reply Latest reply: Mar 23, 2010 6:42 AM by 796262 RSS

Google Summer of Code proposal

843853 Newbie
Currently Being Moderated
Hi all,

Gephi organization, open-source graph visualization plaform is looking for students application about a Shader-based visualization engine.

You may already know how Google SoC works, basically a student will receive payment (*5000$*) for working on a mentoring open-source projects.

Some facts:
- We are Java and JOGL
- Our current visualization engine is compatible OpenGL 1.5 and can already draw hundred thousand elements at least.
- We use Octree, LOD and culling

[Quick demonstration video|http://vimeo.com/9726202]

*Short version of the [Shader Engine Proposal|http://wiki.gephi.org/index.php/Google_Summer_Of_Code_2010#Shader_Engine]:*
-----
The aim is to create a basic 3D engine using suggested technologies and use it for drawing as many nodes and edges as possible. Moreover the engine should guarantee the possibility to add an interaction layer to develop the network exploration.

Existing Gephi 3D engine is intended to be used with as much hardware as possible and thus doesn’t profit from GPU so much. The particularity of a network visualization 3D engine is the need to draw a huge amount of very basic shapes (sphere or cube for nodes and lines for edges). For a traditional "direct" engine, drawing millions of objects, even if it is the same object costs millions of loop iterations and CPU-to-GPU transfers. When using shaders, graphics are directly processed by the GPU and therefore speed-up rendering.

We suggest this draft roadmap:

Get started with loading and executing vertex and fragment shaders within a JOGL routine in a sample application.
Code impostors for nodes, work on sphere appearance with ambient occlusion technique. The molecular visualization can be a great source of inspiration.
Code basic geometry and camera positioning to allow displacement and zoom.
Build the architecture to manage node updates (position update, select, color, size).
Try to draw edges with GPU.
Propose nice post-processing effects. Try to make a glow effect around spheres.
-----
Instructions to apply here

Spread the word!