< SoCiS
Revision as of 09:12, 15 July 2012 by Rkulaga (talk | contribs)


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 2012 (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 (http://edu.kde.org). The Marble webpage is at http://edu.kde.org/marble and the developers' mailing list is at https://mail.kde.org/mailman/listinfo/marble-devel.

Project: Marble: To Mars and Venus - Planetary Satellite Plugin in Marble

Brief explanation: During ESA SoCiS 2011 Guillaume Martres developed a Satellite plugin that can visualize the satellite orbits around our earth. Meanwhile Gerhard Holtkamp has created some code for Marble that can be used to calculate orbits of satellites / space probes around Venus, Mars and the Moon. This code needs to be converted into a plugin and needs to be extended to provide a nice visualization.

Marble already provides several Map Themes of other planets and moons including Photographic, Topographic and Historic Planet maps of Mercury, Venus, Mars and the Moon. See the bottom half of this page:


The aim of this project is to have Marble visualize orbits and positions of planetary satellites / space probes such as the ones of Venus Express , Mars Express, Mars Odyssey, Mars Reconnaissance Orbiter. This should be implemented as a plugin for Marble which the user can configure up to his needs - either via a configuration dialog or interactively via a mouseclick or via a dedicated control. It should be possible to view the position of the probes for any point of time and gather the flight data. If there is still time the map themes for each planet can be improved (e.g. by adding more data, KML files of lander missions, Panoramic images etc.). Also the existing plugin that covers the Earth's satellites might be improved as needed.

Expected results: Planetary Satellite / Space Probe positions in Marble get displayed nicely for other planets (Venus, Mars, Moon). Orbits are displayed. For some probes a dedicated icon is shown.

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>, Gerhard Holtkamp


Project: Displaying Solar / Lunar Eclipses in Marble

Brief explanation: This project is about displaying Solar and Lunar Eclipses in Marble. Gerhard Holtkamp has donated some code to the Marble Project to calculate the occurance and the appearance of eclipses. The goal of this project is to create a plugin for Marble that allows to provide a nice informative visualization of solar eclipses and lunar eclipses inside Marble.

Especially in combination with Marble's other features (OpenStreetMap 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 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.

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

Mentor: Torsten Rahn <rahn AT kde DOT org> , Gerhard Holtkamp


KStars -- Desktop Planetarium for KDE

KStars is a "Desktop Planetarium" based on KDE technology and is a part of the KDE Edu Suite (http://edu.kde.org). The KStars webpage is at http://edu.kde.org/kstars and the developers' mailing list is at https://mail.kde.org/mailman/listinfo/kstars-devel

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.

Project: KStars: Decouple computational code from the UI and Database

Brief explanation: KStars has its computational code tightly bound to the rest of the application. The aim of this project is to:

1. Investigate possible replacements for KStars' in-house computation, like libnova. It is important to keep KStars cross-platform. Hence we should look at cross-platform replacements.

2. Decouple KStars' interface and database from its computational code

3. Create a KStars computational engine library which contains all the computational code

4. Write test cases to ensure that the computations are correct.

5. Get KStars to use this library

6. If time permits, write an interactive command-line client / python module / D-Bus interface to use this library.

This is a difficult project, and requires a good deal of patience and endurance ;-). Probably not everything on this is achievable within the time-span of a GSoC, but this is the ultimate goal of a project like this.

Currently, a lot of the computational code is sprinkled across KSPlanetBase, SkyPoint and SkyObject. It would be easier if these were put into a library. I think parts 2 and 3 of the project could be split into stages like this:

1. Move all computational code from SkyPoint and SkyObject into a bunch of classes. Get these object classes to use the new class for all computations. These computational classes should have access to a copy of KSNumbers, KStarsDateTime, GeoLocation and other paraphernalia.

2. The Sun and moon are rather important for a lot of calculations. Create a separate class to answer computational questions about the sun. Replace the current use of KSSun / KSMoon to perform computations in a lot of places in the code by references code that uses this class.

3. More changes [to be worked out later]

Expected results: Clean, restructured code for KStars, which now uses a library that can be re-used in user-written scripts etc.

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

Possible Mentors: Rafal Kulaga (IRC: rkulaga) <[email protected]>, Akarsh Simha (IRC: kstar) <[email protected]>. We prefer communication to be addressed to [email protected] so that all potential mentors may respond.

Project: Overlay DSS / SDSS images on the SkyMap

Brief explanation: It would be very useful to overlay DSS and SDSS images on the sky map in KStars. This feature can be useful for amateur astronomers, professional astronomers and astronomy teachers. With the new OpenGL support that was integrated into KStars as a part of GSoC 2010, this is now realizable.

KStars mostly uses OpenGL 2-D rendering and does the projection in code, since KStars supports a number of projection techniques. This might increase the difficulty of this task.

KStars already has code to fetch DSS and SDSS images. One needs to texture map them and add more sources. Just texture mapping might not suffice as a 3-month project. The student is encouraged to explore and suggest other possibilities. One possibility might be to integrate with astrometry.net to plate-solve and then texture map images.

Expected results: Image overlays on the Sky map.

Knowledge Prerequisite: C++ and Qt; OpenGL; texture mapping.

Possible Mentors: Rafal Kulaga (IRC: rkulaga) <[email protected]>, Akarsh Simha (IRC: kstar) <[email protected]>. We prefer communication to be addressed to [email protected] so that all potential mentors may respond.

This page was last edited on 20 July 2012, at 22:34. Content is available under Creative Commons License SA 4.0 unless otherwise noted.