Contents

Common requirements

All of these tasks require knowledge of C/C++, as Stellarium is written in it, and some knowledge of the Qt framework (or willingness to learn the basics very quickly), because Stellarium relies heavily on it, especially for its GUI.

You should also become familiar with Stellarium's merge proposal review guideline, which outlines how your code will be reviewed before it's merged in Stellarium's code.

Suggested workflow

For each task that looks interesting to you:

Understand it - read the description and try to imagine what is required

Research it - if the description is unclear, you can ask for clarification and/or do some research and come up with your own ideas. Also, look at how Stellarium works with similar tasks

Sketch it - Check out Stellarium's code and build it (there are instructions on this wiki), look at what can be used and what needs to be done to implement your idea, how it will come together with the rest of Stellarium

Irregular Solar System bodies

Brief explanation: At the moment, all Solar System bodies are rendered as spheroids. This is fine for all planets and large satellites, but unrealistic for all asteroids and some smaller moons (such as Phobos, etc.). Realistic rendering of asteroids requires the rendering of a simple 3D model, either in some accepted open 3D model format (e.g. COLLADA?) or in a simple format developed for Stellarium. Rough shape data for about 20+ asteroids can be found somewhere on NASA's websites. Working on this project should start with finding it and deciding which format to use.

If the implementation causes visible performance degradation on weaker systems, there should be an option for to turn the feature off. Many such features are enable/disabled via preferences.