See also: SOCIS Instructions

Guidelines for ESA Summer of Code in Space

Information for Students

These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.

Being accepted as a ESA Summer of Code in Space 2013 (ESA SoCiS) student is quite competitive. Students are supposed to thoroughly research the technologies of their proposed project. Also they are supposed to be in contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors is unlikely to work out.

When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!

If there is no specific contact given you can ask questions on the KDE EDU list [email protected] or on the general KDE development list [email protected] See the KDE mailing lists page for information on available mailing lists and how to subscribe.

Adding a Proposal

Follow the template of other proposals!


Brief explanation:

Expected results:

Knowledge Prerequisite:


When adding an idea to this section, please try to include the following data:

  • if the application is not widely known, a description of what it does and where its code lives
  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • mailing list or IRC channel for your application/library/module
  • your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.


How to find ideas? Obvious sources of projects are the bugs database, the forum, and your list and IRC channel ideas.

Marble Virtual Globe

Marble is a Virtual Globe based on Qt technology and is a part of the KDE Edu Suite ( The Marble webpage is at and the developers' mailing list is at If you want to apply for one of these projects please check out the student application form on the ESA Summer of Code in Space 2013 (ESA SoCiS) website! Deadline for the application is August 4th, 2013!

Project: Marble: Bringing Marble into the Planetarium

Brief explanation: Marble is a great educational tool for desktops and mobile devices. It has extensive support for projections. As such it could be easily used to provide the view in a format that can be used for single projector digital planetariums. This could be developed further into a solution that can be used with multiple projectors and multiple servers. The initial challenge would be to provide Marble's view in a projection that can be used by a single projector. This approach should be fully implemented during the project's timeline. Possibly Marble's OpenGL mode could be extended to provide a richer feature set. Later on the challenge would be to distribute Marble's view across multiple projectors and ensure proper synchronization. This step is certainly a lot harder to accomplish but it would be nice already if the result of this project would provide a simple prototype.

Ressources: Stellarium already does provide a similar feature. However Stellarium only features a minor subset of the capabilities Marble provides. See

We are also in touch with some planetarium people who would be able to provide some input (and maybe ressources).

Expected results: Marble is used to display the starry sky, earth and planets inside a digital planetarium dome.

Knowledge Prerequisite: A good grasp over C++ and object-oriented programming, and Qt; writing test cases with Qt; should quickly learn how to write libraries; have a lot of patience; ability to solve software design problems.

Math skills are needed, familiarity with celestial mechanics is a plus!

Mentor: Torsten Rahn <rahn AT kde DOT org>, Rene Kuettner <rene AT bitkanal DOT net>


Project: Displaying Solar / Lunar Eclipses in Marble

Brief explanation: This project is about displaying Solar and Lunar Eclipses in Marble. Gerhard Holtkamp has kindly donated some code to the Marble Project to calculate the occurance and the appearance of eclipses. René Küttner has used this code to create a basic plugin for visualizing solar eclipses: See

for a video of a slightly outdated version of this plugin. To see the latest code please visit

The goal of this project is to extend this plugin for Marble so that it allows to provide a nice informative visualization of solar eclipses and lunar eclipses inside Marble. Possible areas where this plugin can be extended:

  • UI improvements
  • visualizing the moon in Marble's stars plugin (moon phases and correct moon position)
  • displaying isochrones and lines of equal maximum phase
  • video recording feature to record the eclipse as visualized in Marble
  • improvements for time and animation handling in Marble (better time control float item)
  • portage to scenegraph approach / performance improvements.
  • bugfixing

Especially in combination with Marble's other features (OpenStreetMap, Climate charts, Real Time Cloud Cover in Marble, etc.) this provides a powerful tool for the casual user and astronomer as well as for the eclipsophile enthusiast who wants to plan a journey to a certain solar eclipse.

Expected results: Marble automatically informs the user about an upcoming eclipse that is soon to happen via a dialog, Visualization of eclipse paths (umbra / penumbra), User can search for eclipses and different eclipse types (partial/total lunar, partial/annular/total solar) inside Marble, Marble can visualize eclipses and prepare trips to a solar eclipse. Graphs are rendered onto Marble similar to the ones provided by Fred Espenak on the NASA Eclipse Website. Where possible links could be integrated that point to more information on each eclipse. A very basic implementation of the plugin, which proves the feasibility of certain features, exists and may be used as a base.

Knowledge Prerequisite: C++. Familiarity with Qt will help.

Mentors: Torsten Rahn <rahn AT kde DOT org> , Rene Kuettner <rene AT bitkanal DOT net>, Gerhard Holtkamp


Project: Panoramic picture support for celestial bodies in Marble

Brief explanation: Projects like the Mars Exploration Rovers or the moon landings have produced stunning Panoramic images:

Mars (MER):

Titan (Huygens):

Moon (Apollo):

Venus (Venera):

At least some of them are available in the public domain. Marble has support for visualizing other planets (like Mars and Venus) already. It would be great if Marble would e.g. display icons on top of the Mars Globe which the user could use to visualize the panoramic photos in a panoramic view. The data would get retrieved in the background automatically from The visualization of the Panoramic view would be done through the Marble library's feature-set itself: There is some initial code for using the Gnomonic projection in Marble here: ).

Expected results: The user can visualize Panoramic photos from past space missions in Marble as a panoramic view (e.g. Apollo Missions, MER, Viking, etc.).

Knowledge Prerequisite: C++. Familiarity with Qt will help.

Mentor: Torsten Rahn <rahn AT kde DOT org> and/or Dennis Nienhüser <earthwings AT gentoo DOT org&gt and/or Rene Kuettner <rene AT bitkanal DOT net>


KStars -- Desktop Planetarium for KDE

KStars is a "Desktop Planetarium" based on KDE technology and is a part of the KDE Edu Suite ( The KStars webpage is at and the developers' mailing list is at

KStars can draw a map of the sky as seen from any location on the earth, at any time and with a variety of settings. But in addition to this basic sky map feature, KStars has a number of tools that can be used for astronomy education / outreach or for hobby astronomy. KStars, with INDI library support, can drive telescopes and other instrumentation making it suitable for use in small observatories. KStars aims to cater to the amateur astronomer, the science / astronomy educator, astronomy outreach programs and small observatories.

New project ideas or modifications of existing ideas are always welcome!

Project: KStars: Enhanced logging features

Brief explanation: Currently, features related to logging are scattered in different menus and windows of KStars ('Execute the session plan', 'Observing list', 'Flags' etc.) and are not designed well. We have a new SQLite backend to store logs but it is not being used.

The aim of this project is effectively to redesign and re-implement the logging system in KStars. The exact scope of the project is for applicants to define. Ideally, the system should be able to at least store, view, import and export these logs.

Expected results: Integrated and user friendly logging features

Knowledge Prerequisite: C++, Qt, XML and SQL.

Possible Mentors: Rishab Arora <ra.rishab -at-> (IRC: spacetime)

Project: KStars: Fix our deep-sky data handling

Brief explanation: Currently, KStars handles data from deep-sky object catalogues in an SQLite database. While this is working well, there are some more features we would like to have, and some that should be implemented in order to sanitize the deep-sky data handling, such as automatic cross-referencing of deep-sky objects across catalogs, organizing deep-sky data better in the database etc using Hierarchical Triangular Mesh, etc.

The student will need to:

  • Look at the relevant code, and propose a tractable plan for implementing some of the improvements within the SOCIS timeframe.
  • Implement some of the improvements, producing production-ready code that can be included in the next release of KStars after SOCIS.

More details here:

Expected results: Some, or all of the improvements to deep-sky handling suggested above (or maybe even your own suggestions), implemented completely in solid, release-worthy code.

Knowledge Prerequisite: C++, Qt, understanding of astronomical catalogues, some experience with data structures.

Possible Mentors: Rishab Arora <ra.rishab -at-> (IRC: spacetime)


This page was last edited on 2 August 2013, at 03:24. Content is available under Creative Commons License SA 4.0 unless otherwise noted.