< SoCiS
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


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:

  • by adding KML data tracks of rover missions (e.g. Opportunity, Spirit and Curiosity) and their current position according to Marble's time tracker. The same goes for the lander missions.
  • e.g. by adding more data, possibly via Online Plugins
  • by adding Panoramic images etc.

Also the existing plugin that covers the Earth's satellites might be improved as needed:

  • We still need some means to track the visibility of a satellite from a certain location on earth (e.g. via azimuth/altitude charts that include constellations).
  • Better offline support for satellites (by reusing older data for describing the orbit).
  • Improve education aspects (e.g. web links to public resources).

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!

Recommended Books: Astronomical Algorithms by Jean Meeus - this book has been commonly regarded as the "bible" of celestial computations since the very first home computers were sold in the late 70ies.

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, 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.

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

Recommended Books: Astronomical Algorithms by Jean Meeus - this book has been commonly regarded as the "bible" of celestial computations since the very first home computers were sold in the late 70ies.

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.

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

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 SOCIS, 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: Very good grasp over C++ and object-oriented programming, and Qt; writing test cases with Qt; ability to solve software design problems.

Possible Mentors: Rafal Kulaga (IRC: rkulaga) <rl.kulaga - at - gmail.com>, Akarsh Simha (IRC: kstar) <akarsh.simha - at - kdemail.net>.

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.

Please note that this is rather small project, so extending it or combining it with other ideas is particularly welcome.

Expected results: DSS/SDSS image overlays on the Sky map.

Knowledge Prerequisite: Very good knowledge of C++, Qt and OpenGL.

Possible Mentors: Rafal Kulaga (IRC: rkulaga) <rl.kulaga - at - gmail.com>, Akarsh Simha (IRC: kstar) <akarsh.simha - at - kdemail.net>.

Project: Integrate and fix logging features inside KStars

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 they don't share data in user-convenient way. Another problem is that those features are not really well designed. We also have near-perfect OAL log file support, but it's not yet merged.

The aim of this project is effectively to redesign and reimplement logging system in KStars. The exact scope of the project is for applicants to define.

Expected results: Integrated logging features, unified storage for logs.

Knowledge Prerequisite: Very good knowledge of C++, Qt, XML (including XSD) and SQL.

Possible Mentors: Rafal Kulaga (IRC: rkulaga) <rl.kulaga - at - gmail.com>.

Project: Improved star hopping feature in KStars

Brief explanation: Star hopping is a technique that is often used by amateur astronomers to locate objects in the sky. It uses brighter objects as a guide for finding fainter ones. Many good star hopping tutorials are available on the web.

KStars currently has an experimental implementation of star hopping (tools/starhopper.cpp and tools/starhopper.h) that uses A* algorithm. It's currently not configurable - it would be good to give user the possibility to specify equipment used during session and then use this information to create better star hopping lists by adjusting cost function. Also, changing the way star hopper feature is enabled by the user is worth considering. The option to print star hopping list together with instructions and basic information about intermediate objects would be desirable. Classes that comprise extended star hopper feature should come with proper unit tests.

Please note that this is relatively simple project, so extending it with other ideas and tasks is welcome.

Expected results: Reliable and configurable star hopping feature in KStars with possibility to print star hopping instructions.

Knowledge Prerequisite:

  • Good knowledge of C++, Qt and KDE libs.
  • Basic knowledge in astronomy would be a plus.

Mentor: Rafal Kulaga (rl.kulaga - at - gmail.com, IRC: rkulaga)

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.