GSOC2019 ideas for + KSat-Stuttgart e.V. + IFP University of Stuttgart + ep2lab of Carlos III University of Madrid

Google Summer of Code 2019 with Aerospace , KSat-Stuttgart eV, the Institute of Photogrammetry (IFP, University of Stuttgart) and ep2lab of Carlos III University of Madrid

This is’s common ideas page for Google Summer of Code 2019. Read everything, have fun, make space possible! You want to find here …

  1. General information
  2. Our Coding Ideas List for you
  3. Coding Ideas Full Description
  4. Infos for Students
  5. What else do we offer?
  6. Contacts

1. General information:

Constellation brings space to people by means of citizen science. We believe there is an open space for everybody …

„Space, is big, really big, you just do not believe how much, hugely, mind-bogglingly, big it is, I mean, you may think it’s a long way down the road to the chemists, but that’s just peanuts to space “ – Douglas Adams

We really enjoyed mentoring creative students during GSOC 2013, 2014, 2017 and 2018. We’ve learned a lot, so we want to share this experience again and support you! We collaborated with the Cosmic Dust Group and the KSat-Stuttgart Team of the Institute of Space Systems (IRS) at the University of Stuttgart. With them, we have launched two new apps, we even supported the European Space Agency (ESA) and their Interplanetary meteoroid environment for exploration (IMEX) project, we released several papers, simulated comets worth 10000 hours of computing power and discussing our findings with an astronaut and experts. How cool is that? And we want you to be part of this again. So we are re-applying this year and give you three chances to be part of this coding family.

– Be a GSOC student! 
– Be a GSOC Mentor! 
– Provide a GSOC Project!

We did not expect overwhelming reactions about our ideas. So we would like to expand the mentoring and projecting the process. There is space for everyone!

2. Coding Ideas List

Okay, ready for lift-off, we are approaching our coding ideas for GSOC 2018. 
The following is our list of current tasks we offer you. Feel free to select one or more for your application. If you can not find one you like, we have always attached it to you. The Cometary Dust simulation for ESA in the next video what so proposed by a student.

And we have lift-off with headlines (full description below) … and IFP

  • [gsoc19-a-lp1] Lone Pseudoranger: Orbit determination by doppler shift tracking cubesats
  • [gsoc19-a-sd1] Signal Detection: Doppler shift determination of satellite signals
  • [gsoc19-a-od1] OrbitDeterminator: Community Observation Input of many station locations
  • [gsoc19-a-dd1] DirectDemod: Decoding of PSK, BPSK, QPSK of Meteor M2 satellites (Improvement)
  • [gsoc19-a-dd2] DirectDemod: Decoding of ADSB and Multi-Lateral positioning
  • [gsoc19-a-dd3] DirectDemod: Improving the Decoding of Automatic Picture Transmission (NOAA)
  • [gsoc19-a-dd4] DirectDemod: Automatic Picture Transmission (NOAA) – BigImage and Globe Projection: Add merger of overlapping noaa records from different stations
  • [gsoc19-a-gs1] Ground Station API: Implemenation of I/O Interfaces between ground station apps and GS-API

KSat-Stuttgart eV

  • [gsoc19-k-01] Ksat: Visualizing multi-dimensional evolution on system and subsystem level
  • [gsoc19-k-04] VISualMAth – visma

ep2lab @ UC3M

  • [gsoc19-e-mn1] Improving the electron model in a space plasma thruster magnetic nozzle code
  • [gsoc19-e-me1] Advanced visualization capabilities for the Newtonian mechanics code Anakin
  • [gsoc19-e-op1] Test automatic design of interplanetary missions using MOLTO-IT
  • [gsoc19-e-ha1] Visualization tool of Halo manifolds in the Circular Restricted Three Body Problem.


3. Coding Ideas Full Description and IFP

[gsoc19-a-lp1] Lone Pseudoranger: Orbit determination by doppler shift tracking cubesats

Tracking CubeSats by its frequency’s doppler shift shall bring another feature to our DGSN system. Depending on each ground station’s location, the same signal will be received with another dopplershift pattern of the satellite’s RF-signal. This task is connected to the [gsoc19-a-sd1] task, from where the set of doppler shift patterns will come from.

Expected Outcome: Your task is to determine the position of the satellite by its doppler shift pattern. For this, you will create the mathematics basis for the algorithm, you will describe/explain the mathmatics in a suitable form to the community (wiki, github page), write a simulator on the basis on satellite positions by the TLE and then setting up a measurement campaign with the community to provide you real RF-data from several ground stations so that you can validate the simulated positions with those of the calculated one.

Mentor: A. Hornig, Kai Wilke

Code Difficulty: Python-high


[gsoc19-a-sd1] Signal Detection: Doppler shift determination of satellite signals

You all had this effect during your high school physics classes, the Doppler shift. You can clearly see that in the RF signals being received from satellites. We want to use these form patterns from several stations and determine the position of a satellite in the other task of [gsoc19-a-lp1]. This task will be the basis for it. There are many kinds of meodulations, like contineous NOAA transmissions, randomly and short APRS, somehow contineous ones like for morse codes, or frequency hopping ones, etc… With the human eye you can see and detect the doppler shift. With this GSOC19 task, it is your turn to put this into an algorithm. We already have one working prototype for it and you can use it, but it is also your task to find something better. You can use our prototype or machine learning or something else.

Expected Outcome: In the end, you will organize a measurement campaign and get raw iq-data from different DGSN ground stations and it is your task to compare the frequency shift you detected with the one that you got from the simulation you wrote on the basis on the same satellite’s TLE. Furthermore you will define the interface to handover your shifts to the [gsoc19-a-lp1] project.

Mentor: A. Hornig, Vinay Chandrasekhar, T. Eversmeyer

Code Difficulty: Python-medium, but many cases of doppler shift forms


[gsoc19-a-od1] OrbitDeterminator: Community Observation Input of many station locations

During the last two GSOCs, our OrbitDeterminator code evolved a lot. It can already determinate a lot of satelite orbits around Earth and even Orbits of comets around the Sun. But what is a software that only experts can master? Your task will be to implement an easy to use interface for the community to add their observation input from a single station and even a mix of many stations to OrbitDeterminator. You will start by cleaning the code and merge open Pull Requests, learn how orbit determination is done and in the end have a real test amoung the user group like .

Expected Outcome: You will have done at least one beta test within the target group of your choice. Typical sets of mixed observations needs to be loaded in and result in orbits of their observation. You will be responsible that the user group can install the the code, run it and use it. You will be responsible that the code of your „stable“ branch will not break as much as it did before your start of GSOC. And the Users shall have their outputs in the form they told you during your beta test.

Mentor: Nilesh, Alexandros, A.Hornig

Code Difficulty: Python-medium, but requires a lot of testing and user handling testing (including beta test with user groups)


[gsoc19-a-dd1] DirectDemod: Decoding of PSK, BPSK, QPSK

And for those of you who the previous ideas were boring, cubesats also use phase shift keying. For that, the FM demodulator needs to receive some tweaks and therefore the decoding algorithms needs to reflect it. In the future, with more and more CubeSats going to Sband (2.2GHz) and even Xband (8GHz), PSK is the standard to be. We want to be prepared for this and have this „child’s discipline“ amoung our ideas.

meteor m2
meteor m2: rough demo decoding by DirectDemod from GSOC2018 student Vinay

Expected Outcome: On „our demonstration day“, we want to make contact with the Flying Laptop of the University of Stuttgart. That would be our high hanging fruit, but for the low hanging fruits, so there are cubesats with lower datarates to start with. At the end of the QPSK signal we recorded as an RF file.

Mentor: A. Hornig, Vinay Chandrasekhar

Code Difficulty: Python-high


[gsoc19-a-dd2] DirectDemod: Decoding of ADSB and Multi-Lateral positioning

The awesome thing about the DGSN system is that it can track any form of radio signal. This includes the ADSB signals planes are transmitting on 1090MHz. ADSB is a standard for planes to help the air traffic control to track them as a form of redundancy in case of ground based radars are not available. There are two kinds of ADSB signals: One of them is includding the planes actual position. and the others are having other kind of information like speed & heading or just the planes ICAO number. So if a plane is just transmitting the ICAO number, we want to be able to track it by applying the DGSN methods we are using for tracking CubeSats in orbit. The great thing is that no external time synchronization should be needed. By having the ADSB signals with known positions of planes you can combine these „markers“ with the known positions of at least 5 ground stations. These markers then serve as the time reference markers of the time of arrival markers of the following ADSB signals, even the ones without positions inside. In this way, we will create our own open source method how the community can track every plane.

Expected Outcome: Have ADSB messages decoded from IQ files in real-time. Find the same messages in other station’s IQ files. Have the reference markers calculated by using the ADSB signals with positions inside. Calculate the positions of all messages that were eceived at all stations. The code shall run for a single user with several stations as well as for our DGSN station infrastructure. It is also your task to discuss with us a suitable way in storing the data and plotting them on a map. This is something to think about to have it in close to real time or with a time offset. The calculations could take some time and would mix in with the results of planes that were already positioned.

 Mentor: A. Hornig, Kai Wilke

Code Difficulty: Python-Medium, but much code

Files to play with: ADSB Recordings

[gsoc19-a-dd3] DirectDemod: Improving the Decoding of Automatic Picture Transmission (NOAA)

One of the cool things about space is peacefully working together and using space. The NOAA Weather satellites are good examples here, even though they were financed by the US, they offer all their home harbor. These maps allow ships to recognize dangerous storms on their routes so they can ship around it.

map overlay example
map overlay example of NOAA decoder in DirectDemod you shall improve

The NOAA satellites are like lines scanners constantly scanning the Earth below them and directly sending each line down to Earth. This is done with the APT method, the automatic picture transmission, that some people also call „weather fax“ because of the noise pattern that you can. Like the mentioned software before, there is no software yet. RF data in high sampling rate and IQ-mode and output the final data (in this case the weather map). For DGSN and so everyone else, we would like you to develope open source tool.

Expected Outcome: At „our demonstration day“. The RF data will be grabbed from the RTL-SDR receiver in IQ mode and you will use your software to generate the maps as seen in the above video. But now with only one tool, directly and by keeping the 2MHz original signal usefull for DGSN and our tracking algorithm.

Mentor: A. Hornig, Vinay Chandrasekhar

Code Difficulty: Python-high


[gsoc19-a-dd4] DirectDemod: Automatic Picture Transmission (NOAA) – BigImage and Globe Projection: Add merger of overlapping noaa records from different stations

You can tackle an open issue here and add a new feature. What shall we do with all the many single „weather maps“? Of course, let’s stitch them together to cover the globe. We will receive many maps by our DGSN stations and also many more people can receive NOAA weather maps at any given orbit they NOAA-satellites do. We could all work together and form a spatial and time map of everything we as a community receive, and make it accessable to everyone.

Expected Outcome: create a „big map“ of single weather maps received by NOAA satellites. There are two ways how to do. 1. stitch them together like a panorama photo. Or in a better way, 2. map each pixel of the weather map to the geo location and project it on a virtual globe. And in the very end, make it possible to scroll through time and project the pixels according to the timestamp. This shall be possible be a single person on a single PC loading in a set of NOAA data he/she owns himself. Or as the last step, online.

Mentor: A. Hornig, Vinay Chandrasekhar

Code Difficulty: Python-high


KSat-Stuttgart e.V.

[gsoc19-k-01] Ksat: Visualizing multi-dimensional evolution on system and subsystem level.

Spacecraft design is complex. Multiply technologies exists to solve different needs for a mission. For example a multitude of propulsion system technologies exists, which often can be operated with multiple propellants at different operation points. Finding a an optimal solution is not straightforward.

Evolutionary algorithms are utilized to solve complex optimization problems. Incremental random changes (mutation) and follow-up non-random selection allows for incremental improvement of a design solution. Any (sub-)system change is another dimension of the problem, increasing the complexity exponentially.
Although computers are capable to solve this challenge with sufficient calculation time it is critical that human can understand the solution and the behavior of the algorithm visually and make decisions for further improvements or adaptions.

Expected outcome: Evolutionary algorithm output data processing. GUI development for multi-panel visualization of different system and subsystem parameters and behavior of design points and generation lineages within the design space.
Processed output storage support in image and video formats.

Demo Video:

Mentors: Manfred Ehresmann

Code difficulty: Matlab/Octave – medium

[gsoc19-k-04] VISualMAth – visma

Maths gets tough once numbers start to vanish, and alphabets start to take over? visma aims to make life simpler, visma provides a step-by-step solution to basic algebraic equations. The project aims to help people solve complex problems and learn. It can help students in learning concepts. It can be used in research-oriented, double-checking the solution to problems. It is still in its early stages of development, so there is a lot of scope for improvement.

visma demo

Expected Outcome:

  • Replace simplify module by modifying built-in class methods (__add__, __mul__ etc) and add support for new function classes
  • Extend calculus and transform modules
  • Integrate matrix module with GUI (also add matrix dependent modules like multi-variable linear equation solvers)
  • Add a discrete math module. Also any module which can be of great use (math has no limits…)


  • Support for functions as exponents (currently only constant exponents supported)
  • Render LaTeX/graph plot in CLI (no popup matplotlib figures)

Code Difficulty: Python – Intermediate
Mentor: Siddharth Kothiyal, Manfred Ehresmann
Idea Board:

ep2lab @ UC3M

[gsoc19-e-mn1] Improving the electron model in a space plasma thruster magnetic nozzle code

Magnetic nozzles guide and accelerate the expansion of a plasma, and are used by the next generation of a space plasma thrusters to create hypersonic plasma jets. The near-collisionless plasma expansion makes it difficult for fluid models to predict its behavior in the magnetic nozzle, and kinetic models are required to fully understand its physics and assess the performance of a thruster.

„Magnetic nozzle of a helicon plasma thruster, operating at the EP2 laboratory“

Expected Outcome: Extend the capabilities of the Akiles kinetic code to support anisotropic electron populations, essential in modern plasma thrusters, like the Electron-Cyclotron-Resonance Thruster (ECRT), improve robustness and documentation of the code, and possibilitate its link with the Dimagno/Fumagno magnetic nozzle codes.

Mentors: Mario Merino, Filippo Cichocki

Code difficulty: Matlab/Octave – high


[gsoc19-e-me1] Advanced visualization capabilities for the Newtonian mechanics code Anakin

Learning classical mechanics is one of the hardest steps in becoming a practiced (aerospace) engineer, and educational software can help a big deal toward that goal. Anakin (Aerospace eNgineer’s Assistant for Kinematics, Inertia and dyNamics) is a simple framework, still under development, to model point particles and rigid bodies, study their kinematics and dynamics, and simulate their motion.

Expected Outcome: Implement a simple but flexible and appealing way to integrate and visualize the motion of a system of point particles and rigid bodies in Anakin that can be used by engineering students. Use it to illustrate practice problems and their solutions. Aid with the development of Anakin itself.

Mentors: Mario Merino, Adrián Domínguez

Code difficulty: Matlab/Octave – medium


[gsoc19-e-op1] Test automatic design of interplanetary missions using MOLTO-IT

The preliminary design of interplanetary missions with low-thrust engines is a highly complex process. The mission designer must select the number of gravitational assists, the planets where they are carried out and, in some cases, the final destination. In addition, the law of guidance based on time is obtained as a solution to an optimization problem. Normally the evaluation of thousands or millions of possible trajectories is required, which can be very expensive in terms of human work hours. For all this, the department is developing the MOLTO-IT computer tool with the aim of solving the problem automatically.

Expected Outcome: Extension of MOLTO-IT’s capabilities: automatic selection of destination and application of operational restrictions. Development of a graphical interface for MOLTO-IT in Matlab/Octave. Identification, selection and resolution of a series of type problems within the field of interplanetary mission design to validate the tool

Mentors: David Morante, Manuel Sanjurjo Rivo

Code difficulty: Matlab/Octave – medium


[gsoc19-e-ha1] Visualization tool of Halo manifolds in the Circular Restricted Three Body Problem.

The analysis of dynamical systems as the Circular Restricted Three Body Problem is of great use when designing missions to Lagrangian points of the Earth-Moon system or when searching for periodic orbits in cis-lunar space. The use of tools for computation of periodic orbits, assessment of their stability and the associated manifolds is mandatory in those missions. We have a tool able to perform these tasks but without visualization, which is also relevant for mission design purposes.

Expected Outcome: Development of a GUI for the tool. And incorporate visualization capabilities.

Mentors: Manuel Sanjurjo Rivo, David Morante

Code difficulty: Matlab/Python – medium



[gsoc19XX] Propose YOUR idea!

This is up to you! Propose your idea what you think we need and miss. Please contact us to discuss it beforehand. Also provide your expected results. Having working code would be beneficial!

[XXXX19xX] Previously unused ideas of other coding campaigns

Click the link above to find previous ideas of previous coding campaigns. Please refer to their ideas code (in []).

4. Info for Students:

Being accepted as a GSOC 2019 student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent 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. But we encourage you to also submit and post your own ideas. Prepared and working code works best for our well-acceptance.

As a result of our last two participations in Google and ESA summer of code campaigns, we adapted our selection process. We now have a transparent application scheme where you see for what you get points. And you get points for what we expect of you. We tried to find a good compromise between the fundamental skills we want to see, and also give newcomers and space students a fair chance. And as you can see, there is also a way to surprise us with your creativity. We like to be convinced with working prototypes and good community interaction. Overall, we BELIEVE everyone can do that and we mentors will help you help yourself.

When you will ask us afterwards, we will also take time to discuss with you how you ranked. This could help you improve for next year’s GSOC.

Transparent Application Rating (New since 2016)

Please read the baseline and the optional parts of the pointing schemes. We are listing those points to help you successfully apply and not missing an obvious point. You can always do more, but please check those points. We will be fair, we promise. You can always ask us and we will help you.


  • 5pts Communicated with us org mentors (via their emails below)?
  • 5pts Communicated with the community (via email list)?
  • 5pts Does your application contain a motivation letter? Tell us why you like us and our projects! And prove that you know who we are and what we do!  (1 page is okay)
  • 5pts Do you reference projects you coded WITH links to repos or provided code?
  • 5pts Do you provide all demanded ways of contact (email, skype, mobile/phone, and twitter, chat and/or tumblr if available)
  • 3pts Do you add a preliminary project plan (before, during, after GSOC)?
  • 3pts Do you state which project you are applying for and why you think you can do that?
  • 3pts Do you have time for GSOC? This is a paid job! State that you have time in your motivation letter, and list other commitments!
  • 1pts Only applied via the GSOC 2019 page (please don’t send it directly to us!)
  • 1pts Added a link to ALL your application files to a cloud hoster like github or dropbox? (easy points!  )
  • 0pts Be honest! Only universal Karma points. 
  • 5pts Did you do push code to the existing code? Or did a bugfix?


  • 10pts Do you have an aerospace background and did you reference it in your application?
  • 15pts Wild space. Be creative, impress us! 
  • 5pts completed CV (1-2 pages optimal!)
  • 2pts If you select hardware related projects, do you have (access to) it?

Again, please try to get the maximum number of points! 

5. What else do we offer?

  • Awesome space projects
  • long term involvement
  • scientific papers with you as Co-Author for international conferences (video below)
  • letter of recommendation

6. #contact