Google Summer of Code is a program that offers student developers stipends to write code for various open source projects. Google will be working with several open source, free software, and technology-related groups to identify and fund several projects over a three month period.
See also feature request tracker
Graphical User Interface (Mentor: Sergey Fomel)
- Add an option to sfdoc to output spec files in the format defined for TKSU. This should make TKSU immediately applicable. Spec files can be generated automatically at the compile time.
- Rewrite TKSU in Python, possibly using TkInter
- See http://sourceforge.net/forum/forum.php?thread_id=1579059&forum_id=552249 for more discussions.
- Investigate alternative solutions.
Data Visualization (Mentor: Vladimir Bashkardin)
- Migrate 2D rendering OpenGL-based code from GSEGYView to Madagascar and create an interactive viewer with zooming/panning features.
- Migrate 3D rendering GLSL-based code from GSEGYView to Madagascar and create a viewer with the support of pluggable shader programs.
- Finish 3D rays viewer
- Create a set of alternatives to sfgraph, sfgrey, sfcontour programs, that would use PLPLOT library instead of VPlot; also, create "pens", that could read from those programs and generate ps, pdf, png output; analyze flexibility of PLPLOT and the possibility to fully mimic VPlot's output (including animation).
Java API (Mentor: )
- Add a Java interface to other supported interfaces
- Possibly use JNI
- Investigate possible connections with Mines JTK and JavaSeis
Seismic I/O Library (Mentor: Bert Bril)
- See Seismic Library
- Generate binary packages to simplify installation on multiple platforms.
- Given Madagascar's dependencies, and a standardized way of finding other package's dependencies come up with a way/apply a tool to determine the minimum number of packages that make a self-contained Linux distributions that runs Madagascar. Build such a distribution starting from an existing well-supported distribution. Build a virtual appliance from that distribution.
Geophysics / Numerical Analysis
- Implement an optimal algorithm for parallel transposes of arrays with 4 or 5 dimensions, up to a few tens of terabytes in volume, on a multi-node Linux cluster
- As a bonus, FFT one of the transposed dimensions
- Implement a hardware-adaptive transpose algorithm for a 1-node, SMP machine of 8 nodes or more. Investigate speed of transfers, size of caches, memory arrangement, etc, and make it hardware-adaptive. Bonus for out-of-core capabilities.
- Implement 3-D seismic data header storage using the fastest open-source database, then compare header I/O times with the classic approach of having a simple table. Which is the fastest way of implementing a large database knowing that the values it will hold are all bools, ints and floats?
- Vladimir Bashkardin
- Bert Bril
- Sergey Fomel
- Paul Sava
- Nick Vlad