< SoCiS
Revision as of 19:54, 18 July 2011 by Tackat (talk | contribs) (→‎Marble Virtual Globe)
(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 2011 (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: Display Satellite orbits in Marble

Brief explanation: Marble has a dedicated framework for displaying geospatial data. Our plugin framework allows to visualize data from various topics (e.g. earthquakes, wikipedia articles etc.). It would be great if Marble would display satellite positions (current ones and past) on their orbit. This could either be done via a plugin that uses the ready-made positions and data from web services or by calculating the positions from the orbital elements locally.

Expected results: Satellite positions in Marble get displayed. Orbit is displayed. For some probes (like ISS or Hubble Space Telescope) a dedicated icon is shown. Tooltip over the satellite has information about local set and rise times.

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 <[email protected]>


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): http://marsrover.nasa.gov/gallery/panoramas/

Titan (Huygens): http://www.beugungsbild.de/huygens/huygens.html

Moon (Apollo): http://www.lpi.usra.edu/resources/apollopanoramas/

Venus (Venera): http://www.mentallandscape.com/C_CatalogVenus.htm

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 files.kde.org. 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: https://github.com/shentok/marble/tree/gnomonic ).

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


Project: Extending Marble's Stars plugin

Brief explanation: Since a few years Marble has a very basic stars plugin that accurately shows the brightest stars. It would be great if this could be extended so that it provides more advanced visualization (constellation lines, Dec/Rect grid, planets, deep sky objects, labels, etc.). So in the end some advanced feature set would be implemented that would be a bit closer to Stellarium, KStars or Google Sky.

Expected results: Improved Stars Plugin that has a more sophisticated sky visualization - including planets, labels, deek sky objects, dec/rect coordinate grid, etc.).

Knowledge Prerequisite: C++. Familiarity with Qt will help. Some basic astronomy or stargazing knowledge is expected.

Mentor: Torsten Rahn <rahn AT kde DOT org>


Project: Marble - Natural Earth Vector Map

Brief explanation: The current "Atlas map" which is targeted at education is based on the MWDB2 dataset. The data is pretty old and the whole implementation that covers the Atlas map still has a few traces of "historic" code. There's a new proposal that would introduce the high quality Natural Earth data. This would require several changes to the Marble code and its data. See


Expected results: A fully optimized rendering of the Natural Earth map as vector rendering by using and extending Marble's existing classes.

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

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


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: Make KStars more interesting for beginners

Brief explanation: Many people have an interest in astronomy, and some of them do start up KStars, but don't know what to do or what to look at in the sky. This project aims to fix that. Thus, KStars can act as a better channel of astronomy outreach.

The idea is to suggest to users interesting things to look at in the sky, or interesting concepts to look up, and give them interesting bits of information depending on what they are doing in the program, to enrich their learning experience.

Here's one idea from us -- a "What's interesting in the Sky" box, that tells you what's interesting in the sky tonight, with the equipment accessible to you. Here's a mockup:


KStars does most of the positional calculations already. One just needs to put the right bits of information together to create that box, and your mentor(s) can help you with this. For this particular idea, assume that you are given the data required (eg: the description text).

Other ideas that we have, but have not developed completely:

  • Provide relevant information / interesting facts about an object whenever you center on it in the map.
  • Retrieve observational information (eg: other observers' logs, information about visual appearance of the object, photographs and sketches by other observers) about an object and display it when you point a telescope to the object through KStars.

You are encouraged to come up with your own ideas!

Expected results: A less confused user when she runs KStars; Provide interesting and relevant bits of information to the user.

Knowledge Prerequisite: Really, just a good grasp over C++ and object-oriented programming. Preferably some experience with Qt; user interface design skills / experience will be a plus; experience with QML will be a big plus;

Possible Mentors: Akarsh Simha <[email protected]>, Rafał Kułaga <[email protected]> We prefer communication to be addressed to [email protected] so that all mentors may respond.

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: Akarsh Simha <[email protected]>, Victor Carbune <[email protected]> We prefer communication to be addressed to [email protected] so that all mentors may respond.

Project: KStars: Improve the observation planner and logging feature

Brief explanation: KStars already has an observation observation planner and logging feature. It requires a lot of tiny and not-so-tiny improvements though. Here's a list of some of the improvements we'd like to see. Not all might be implementable in a single GSoC, so pick and choose! :D

1. "Smart" assignment of observation times to objects (accounting for time taken to observe each object) -- currently, the observation planner can make a timeline of objects to observe during an observing session (Fire up KStars, hit Ctrl + L). However, this is done by just stamping the time of meridian transit. That may not be reasonable in a real observing session, because it takes some time to view each object. A possibly smart way of assigning times would be to account for the time taken to view each object and then assign times by sorting the objects by RA first and then by abs(declination).

2. A time-line view for your observation session plan, on which you can drag objects around to set observing times -- it would be great to have a time-line on which each object to observe is a slider. The time of observation of the object should be changeable in discrete units by moving the slider. The other objects' times should "re-adjust" to accommodate the change.

3. Ensure compatibility with OAL 2.0 XML schema is perfect -- We use the OAL 2.0 XML schema, which is gaining on as a standard format for observation log and observing list exchange. However, OAL compliance is not 100% and needs to be polished and tested.

4. Currently, OAL parsing code is tightly tied to the rest of KStars -- separate it out into a Qt-based OAL library

5. Clean up the Observation Planner interface

6. Clean up the Execute Session interface. Fix bugs.

7. Bring the time-line view of a session into the Execute Session interface

8. Add the ability to export OAL-compliant target lists (removing the 'scheduled time of observation' field, which is not compliant with OAL 2.0)

9. Add the ability to read and edit OAL-compliant observation logs within KStars

10. Add the ability to publish observation logs on a server.

Expected results: A better observation planning and logging feature for KStars.

Knowledge Prerequisite: C++ and Qt; XML parsing, in particular with Qt; be comfortable with desiging UIs using Qt

Possible Mentors: Akarsh Simha <[email protected]>, Victor Carbune <[email protected]>, Rafał Kułaga <[email protected]>. We prefer communication to be addressed to [email protected] so that all 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: Akarsh Simha <[email protected]>. We prefer communication to be addressed to [email protected] so that all potential mentors may respond.

This page was last edited on 18 July 2011, at 19:54. Content is available under Creative Commons License SA 4.0 unless otherwise noted.