Google Summer of Code 2012

From Stellarium Wiki
(Difference between revisions)
Jump to: navigation, search
m
(Satellite and ring shadows on parent planets)
 
(20 intermediate revisions by 4 users not shown)
Line 1: Line 1:
Ideas for the [http://www.google-melange.com/gsoc/homepage/google/gsoc2012 GSoC 2012] (Google Summer of Code 2012)
+
Ideas for the [http://www.google-melange.com/gsoc/homepage/google/gsoc2012 GSoC 2012] (Google Summer of Code 2012).
 +
 
 +
'''We propose [[GSoC_Application_Form_Template|this template for students application form]] for GSoC 2012.'''
  
 
==Common requirements==
 
==Common requirements==
 
All of these tasks require knowledge of '''C/C++''', as Stellarium is written in it, and some knowledge of the [http://qt.nokia.com/products/ '''Qt framework'''] (or willingness to learn the basics very quickly), because Stellarium relies heavily on it, especially for its GUI.
 
All of these tasks require knowledge of '''C/C++''', as Stellarium is written in it, and some knowledge of the [http://qt.nokia.com/products/ '''Qt framework'''] (or willingness to learn the basics very quickly), because Stellarium relies heavily on it, especially for its GUI.
 +
 +
==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
 +
*All of this should prepare you to write a good proposal.
 +
  
 
==Ideas/projects==
 
==Ideas/projects==
Line 11: Line 21:
 
'''Knowledge Prerequisite:''' OpenGL, Geometry, Astronomy.
 
'''Knowledge Prerequisite:''' OpenGL, Geometry, Astronomy.
  
'''Mentor:'''  
+
'''Mentor:''' [https://launchpad.net/~xalioth Fabien Chéreau]
  
 
===Meteor shower calendar ===
 
===Meteor shower calendar ===
:See [[Proposals:Realistic meteor showers]], Launchpad Blueprint: https://blueprints.launchpad.net/stellarium/+spec/realistic-meteor-showers
+
:See [[Proposals:Realistic meteor showers]], Launchpad Blueprint [https://blueprints.launchpad.net/stellarium/+spec/realistic-meteor-showers Realistic meteor showers]
 
'''Brief explanation:''' At the moment, Stellarium can show meteors, but they are simply decorative - they appear at random points at a rate set by the user. The existing code of the MeteorMgr class can be used as a base for a plug-in that shows more or less scientifically accurate meteor showers. They are not random - the meteors appear to "stream" from a single point in the celestial sphere, the radiant.
 
'''Brief explanation:''' At the moment, Stellarium can show meteors, but they are simply decorative - they appear at random points at a rate set by the user. The existing code of the MeteorMgr class can be used as a base for a plug-in that shows more or less scientifically accurate meteor showers. They are not random - the meteors appear to "stream" from a single point in the celestial sphere, the radiant.
  
This feature can take several forms:
+
The data behind the rendering can be organized in two different forms:
* Weak form: Allows the user to define a meteor shower and/or pick it from a list, and then to turn it on and off on a whim.
+
* Strong form: Keeps a meteor shower catalogue in JSON format as with the other kinds of objects tracked by Stellarium, and shows only what should be in the sky for the given date. The catalogue should contain information about the radiant and the annual changes in the zenith hourly rate (as meteor showers typically have a peak and are active some time before and after that; a distribution function can do).
* Strong form: Keeps a meteor shower catalogue in JSON format as with the other kinds of objects tracked by Stellarium, and shows only what should be in the sky for the given date. The catalogue should contain information about the radiant and the annual changes in the zenith hourly rate (as meteor showers typically have a peak and are active some time before and after that; a normal distribution function can do).
+
 
* Very strong form: Use a professional model for predicting meteor showers, based on the orbits of the clouds of space particles that cause them.
 
* Very strong form: Use a professional model for predicting meteor showers, based on the orbits of the clouds of space particles that cause them.
  
Data about visual meteor showers can be found on the website of the [http://www.imo.net International Meteor Organization] (e.g. [http://www.imo.net/calendar/2011 calendar for 2011])
+
Data about visual meteor showers can be found on the website of the [http://www.imo.net International Meteor Organization] (e.g. [http://www.imo.net/calendar/2011 calendar for 2011]) or the [http://www.ta3.sk/IAUC22DB/MDC2007/ Meteor Data Center]. Attribution and/or copyright issues should be cleared before using the data!
  
The implementation should allow the user to toggle a marker showing the radiant.
+
It would be nice to have an improvement in the quality of the graphics, but the main point of this project is the support for a catalog of multiple meteor showers.
 +
 
 +
In all cases, the feature should meet the following requirements:
 +
*It should display a list of the meteor showers in the catalog
 +
**It should allow individual showers to be enabled/disabled
 +
**It should allow individual showers to be triggered on a whim. (Perhaps by jumping to the day of the peak? By setting radiant/ZHR, for example for demonstrations of historic showers?)
 +
*It should allow the user to toggle a marker showing the radiant(s). (Note that the radiants are not exactly point objects.)
 +
*It should model the drift of the radiant across the sky over time.
 +
*It should model the increasing/decreasing ZHR of each shower over time.
 +
*Some support for random "background" meteors would be nice to remain.
  
 
'''Knowledge Prerequisite:''' OpenGL, Geometry, Basic Astronomy.
 
'''Knowledge Prerequisite:''' OpenGL, Geometry, Basic Astronomy.
  
'''Mentor:'''  
+
'''Mentor:''' [https://launchpad.net/~alexwolf Alexander Wolf]
  
 
===Realistic comet rendering ===
 
===Realistic comet rendering ===
:See [[Proposals:Realistic comet rendering]], Launchpad Blueprint: https://blueprints.launchpad.net/stellarium/+spec/realistic-comet-rendering
+
:See [[Proposals:Realistic comet rendering]], Launchpad Blueprint [https://blueprints.launchpad.net/stellarium/+spec/realistic-comet-rendering Realistic renedring of comets]
 
'''Brief explanation:''' At the moment, Stellarium supports comets as solar system bodies, but displays them as star-like objects. More realistic and more scientifically accurate rendering of a comet requires the rendering of four elements - a core, a coma and two tails, oriented according to the comet's relative position to the Sun and its direction. The tails and the coma should appear only when the comet is close enough to the Sun. (See the Wikipedia article on comets for more information.)
 
'''Brief explanation:''' At the moment, Stellarium supports comets as solar system bodies, but displays them as star-like objects. More realistic and more scientifically accurate rendering of a comet requires the rendering of four elements - a core, a coma and two tails, oriented according to the comet's relative position to the Sun and its direction. The tails and the coma should appear only when the comet is close enough to the Sun. (See the Wikipedia article on comets for more information.)
  
Line 38: Line 56:
 
'''Knowledge Prerequisite:''' OpenGL, some mathematics and astronomy.
 
'''Knowledge Prerequisite:''' OpenGL, some mathematics and astronomy.
  
'''Mentor:'''
+
'''Mentor:''' [https://launchpad.net/~treaves Timothy Reaves]
  
 
===Satellite and ring shadows on parent planets===
 
===Satellite and ring shadows on parent planets===
At the moment, satellites and ring in Stellarium don't cast visible shadows on their parent planets and vice versa (solar and lunar eclipses are implemented as special cases).
+
'''Brief explanation:''' At the moment, satellites and ring in Stellarium don't cast visible shadows on their parent planets and vice versa (solar and lunar eclipses are implemented as special cases).
  
The implementation should be done having in mind that not all computers running Stellarium can use OpenGL shaders and other OpenGL2 features. It should either provide a fall-back mechanism in case they are not available, or it should be implemented in a way that doesn't use them. If the implementation causes visible performance degradation on weaker systems, there should be an option for to turn the feature off.
+
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.
  
 
'''Knowledge Prerequisite:''' OpenGL
 
'''Knowledge Prerequisite:''' OpenGL
  
'''Mentor:'''  
+
'''Mentor:''' [https://launchpad.net/~treaves Timothy Reaves]
  
 
===Irregular Solar System bodies===
 
===Irregular Solar System bodies===
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.
+
'''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.
  
The implementation should be done having in mind that not all computers running Stellarium can use OpenGL shaders and other OpenGL2 features. It should either provide a fall-back mechanism in case they are not available, or it should be implemented in a way that doesn't use them. If the implementation causes visible performance degradation on weaker systems, there should be an option for to turn the feature off.
+
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.
  
 
'''Knowledge Prerequisite:''' OpenGL
 
'''Knowledge Prerequisite:''' OpenGL
  
'''Mentor:'''  
+
'''Mentor:''' [https://launchpad.net/~treaves Timothy Reaves]
 +
 
 +
===Add-on manager for management of downloadable extras===
 +
:See Launchpad Blueprint [https://blueprints.launchpad.net/stellarium/+spec/add-on-manager Add-on manager for management of downloadable extras]
 +
'''Brief explanation:''' An Add-on manager something along the lines of that in Firefox, for downloading, installing, updating and removing extras: specifically landscapes, scripts, sky cultures, star catalogs, nebula sets.
 +
 
 +
'''Knowledge Prerequisite:'''
 +
 
 +
'''Mentor:''' [https://launchpad.net/~alexwolf Alexander Wolf]
 +
 
 +
=== Update the current DSO catalog ===
 +
:See Launchpad Blueprints [https://blueprints.launchpad.net/stellarium/+spec/new-ngc-catalog Update the current NGC catalog to a new updated one], [https://blueprints.launchpad.net/stellarium/+spec/stellarium-dso-catalog Stellarium DSO catalog] and [https://blueprints.launchpad.net/stellarium/+spec/messier-caldwell Display Messier and Caldwell Objects]
 +
The NGC catalog used in Stellarium currently has many mistakes. Fabien had the very kind permission from Wolfgang Steinicke to use his updated NGC and IC catalogs available from his web site: http://www.klima-luft.de/steinicke/ngcic/rev2000/Explan.htm
 +
 
 +
His catalog provide more accurate positions, merge doublons etc..
 +
 
 +
He also provide more information on the type of the nebula. This info could be used to use icons matching the type of nebula, and also to draw ellipses for galaxies.
 +
 
 +
The code change should be located in modules/NebulaMgr.hpp/cpp and modules/Nebula.hpp/cpp
 +
 
 +
A lot of amateur astronomers set out to track down all of the Messier and Caldwell objects. It would, therefore, be very handy if Stellarium could highlight these objects. Envisage an option which would make all M (or C, or NGC, or Herschel) objects visible at all zoom levels and distinguish then from other DSOs by making their symbols a different colour and (optionally) labelling them by their catalog number.
 +
 
 +
'''Knowledge Prerequisite:''' Basic astronomy knowledge
 +
 
 +
'''Mentor:''' [https://launchpad.net/~alexwolf Alexander Wolf]
 +
 
  
 
[[Category:Summer of Code]]
 
[[Category:Summer of Code]]

Latest revision as of 10:10, 3 April 2012

Ideas for the GSoC 2012 (Google Summer of Code 2012).

We propose this template for students application form for GSoC 2012.

Contents

[edit] 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.

[edit] 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
  • All of this should prepare you to write a good proposal.


[edit] Ideas/projects

[edit] Support for collections of multi-resolution sky surveys

Brief explanation: Work has already started on this project and we have a working initial code displaying images encoded in the TOAST format. The image data for each sky survey needs to be pre-processed and stored on a server. We currently have a server hosted by the Free Software Fundation France with a potentially high bandwith for serving the (huge amount of) data.

Knowledge Prerequisite: OpenGL, Geometry, Astronomy.

Mentor: Fabien Chéreau

[edit] Meteor shower calendar

See Proposals:Realistic meteor showers, Launchpad Blueprint Realistic meteor showers

Brief explanation: At the moment, Stellarium can show meteors, but they are simply decorative - they appear at random points at a rate set by the user. The existing code of the MeteorMgr class can be used as a base for a plug-in that shows more or less scientifically accurate meteor showers. They are not random - the meteors appear to "stream" from a single point in the celestial sphere, the radiant.

The data behind the rendering can be organized in two different forms:

  • Strong form: Keeps a meteor shower catalogue in JSON format as with the other kinds of objects tracked by Stellarium, and shows only what should be in the sky for the given date. The catalogue should contain information about the radiant and the annual changes in the zenith hourly rate (as meteor showers typically have a peak and are active some time before and after that; a distribution function can do).
  • Very strong form: Use a professional model for predicting meteor showers, based on the orbits of the clouds of space particles that cause them.

Data about visual meteor showers can be found on the website of the International Meteor Organization (e.g. calendar for 2011) or the Meteor Data Center. Attribution and/or copyright issues should be cleared before using the data!

It would be nice to have an improvement in the quality of the graphics, but the main point of this project is the support for a catalog of multiple meteor showers.

In all cases, the feature should meet the following requirements:

  • It should display a list of the meteor showers in the catalog
    • It should allow individual showers to be enabled/disabled
    • It should allow individual showers to be triggered on a whim. (Perhaps by jumping to the day of the peak? By setting radiant/ZHR, for example for demonstrations of historic showers?)
  • It should allow the user to toggle a marker showing the radiant(s). (Note that the radiants are not exactly point objects.)
  • It should model the drift of the radiant across the sky over time.
  • It should model the increasing/decreasing ZHR of each shower over time.
  • Some support for random "background" meteors would be nice to remain.

Knowledge Prerequisite: OpenGL, Geometry, Basic Astronomy.

Mentor: Alexander Wolf

[edit] Realistic comet rendering

See Proposals:Realistic comet rendering, Launchpad Blueprint Realistic renedring of comets

Brief explanation: At the moment, Stellarium supports comets as solar system bodies, but displays them as star-like objects. More realistic and more scientifically accurate rendering of a comet requires the rendering of four elements - a core, a coma and two tails, oriented according to the comet's relative position to the Sun and its direction. The tails and the coma should appear only when the comet is close enough to the Sun. (See the Wikipedia article on comets for more information.)

As not all comets are identical, this feature should allow comet customization. The visual characteristics of comets should be stored along with their orbital elements.

Knowledge Prerequisite: OpenGL, some mathematics and astronomy.

Mentor: Timothy Reaves

[edit] Satellite and ring shadows on parent planets

Brief explanation: At the moment, satellites and ring in Stellarium don't cast visible shadows on their parent planets and vice versa (solar and lunar eclipses are implemented as special cases).

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.

Knowledge Prerequisite: OpenGL

Mentor: Timothy Reaves

[edit] 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.

Knowledge Prerequisite: OpenGL

Mentor: Timothy Reaves

[edit] Add-on manager for management of downloadable extras

See Launchpad Blueprint Add-on manager for management of downloadable extras

Brief explanation: An Add-on manager something along the lines of that in Firefox, for downloading, installing, updating and removing extras: specifically landscapes, scripts, sky cultures, star catalogs, nebula sets.

Knowledge Prerequisite:

Mentor: Alexander Wolf

[edit] Update the current DSO catalog

See Launchpad Blueprints Update the current NGC catalog to a new updated one, Stellarium DSO catalog and Display Messier and Caldwell Objects

The NGC catalog used in Stellarium currently has many mistakes. Fabien had the very kind permission from Wolfgang Steinicke to use his updated NGC and IC catalogs available from his web site: http://www.klima-luft.de/steinicke/ngcic/rev2000/Explan.htm

His catalog provide more accurate positions, merge doublons etc..

He also provide more information on the type of the nebula. This info could be used to use icons matching the type of nebula, and also to draw ellipses for galaxies.

The code change should be located in modules/NebulaMgr.hpp/cpp and modules/Nebula.hpp/cpp

A lot of amateur astronomers set out to track down all of the Messier and Caldwell objects. It would, therefore, be very handy if Stellarium could highlight these objects. Envisage an option which would make all M (or C, or NGC, or Herschel) objects visible at all zoom levels and distinguish then from other DSOs by making their symbols a different colour and (optionally) labelling them by their catalog number.

Knowledge Prerequisite: Basic astronomy knowledge

Mentor: Alexander Wolf

Personal tools
Namespaces
Variants
Actions
in this wiki
other languages
Toolbox