+@node Google Summer of Code
+@unnumberedsec Google Summer of Code
+
+@divClass{column-center-top}
+@subheading What is Google Summer of Code?
+
+A global program run by Google that offers students stipends for working
+on open source software projects during summer vacations.
+
+It is an excellent opportunity to find new contributors, and encourage
+students already participating in LilyPond development, to become more
+involved. One of our contributors was accepted in the 2012 program as
+part of the @uref{http://www.gnu.org/, GNU project}; and we are always
+looking for others to participate in future programs.
+
+@divEnd
+
+@divClass{column-center-middle-color2}
+@subheading Our Ideas List
+
+Below is a list of projects that were suggested for the GSoC 2012
+students and is retained here as an inspiration for anyone
+who is interested in developing LilyPond for future GSoC projects.
+
+There are many more things that can be done to improve LilyPond and
+members of the LilyPond development team are always willing to help
+those who would like to tackle projects such as those listed below.
+
+A full list of all the current open issues can be found
+@uref{http://code.google.com/p/lilypond/issues/list, here}.
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Grace notes
+
+Fix problems with synchronization of grace notes. Grace notes can
+intefere with LilyPond's timing and cause odd effects, especially when
+multiple staffs are used where some have grace notes and others don't.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} C++, MIDI
+@strong{Recommended:} familiarity with LilyPond internals
+@strong{Mentor(s):} Mike Solomon, Carl Sorensen
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading MusicXML
+
+Improving MusicXML import and export functions:
+
+@divClass{keep-bullets}
+@itemize
+
+@item
+Handle basic musical content export like the MIDI export (i.e. using
+dedicated exporter classes, derived from the translator class).
+
+@item
+Build the XML tree of the basic musical content, add a connection from
+music event to XML tag.
+
+@item
+Let all LilyPond engravers do their job.
+
+@item
+Link each output object (i.e. each stencil or group of stencils) to the
+music cause (and thus to the XML tag in the XML tree).
+
+@item
+Add an XML output backend, which can then add layout information for
+each output object to the XML tags.
+
+@end itemize
+@divEnd
+
+@strong{Difficulty:} medium
+@strong{Requirements:} MusicXML, Python, basic LilyPond knowledge
+@strong{Mentor(s):} Reinhold Kainhofer, Mike Solomon
+
+Familiarity with other scorewriters (for cross-testing) would also help.
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Improve slurs and ties
+
+The default curves of slurs and ties are often unsatisfactory. Ties
+@q{broken} by clef or staff changes are not handled well. The project
+could include collecting and sorting examples of bad output, deciding on
+the intended output and writing code to improve them.
+
+@strong{Difficulty:} hard
+@strong{Requirements:} C++, experience with writing heuristics
+@strong{Recommended knowledge:} LilyPond knowledge, aesthetic sense
+@strong{Mentor(s):} Mike Solomon
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Adding variants of font glyphs
+
+@divClass{keep-bullets}
+@itemize
+
+@item
+Adding @q{on} and @q{between} staff-line variants.
+
+@item
+Shorter and narrower variants of some glyphs for example, accidentals.
+Another, more specific example could be an ancient notation breve
+notehead coming in two variants one with a small or big @q{hole} within
+it.
+
+@end itemize
+@divEnd
+
+@strong{Difficulty:} easy
+@strong{Requirements:} MetaFont, C++, good eye for details
+@strong{Recommended knowledge:} basic LilyPond knowledge
+@strong{Mentor(s):} Werner Lemberg
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Improve default beam positioning
+
+For regular, cross-staff, broken and kneed beams. Beaming should depend
+on context and neighbor notes
+(see @uref{http://icking-music-archive.org/lists/sottisier/sottieng.pdf,
+section 2.2 here}). If possible also reduce beaming-computation time.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} C++, experience with writing heuristics
+@strong{Recommended knowledge:} aesthetic sense
+@strong{Mentor(s):} Mike Solomon, Carl Sorensen
+
+@divEnd
+
+@divClass{column-center-middle-color3}
+@subheading Help improve compilation behavior
+
+Automatic code analysis tools, like valgrind memory leak detection or
+callgrind code profilers, provide valuable information about possible
+flaws in our C++ code. Cleaning up warnings would allow us to automate
+the rejection of any patch which introduced extra warnings.
+
+@strong{Difficulty:} medium
+@strong{Requirements:} C++
+@strong{Mentor(s):} Joe Neeman, Reinhold Kainhofer
+
+@divEnd