Skip to content

Mission Space Lab Rulebook

Mission Space Lab Overview

In Mission Space Lab 2025/26, teams need to write Python programs to accurately estimate the speed at which the International Space Station (ISS) is travelling in Earth’s orbit.

Teams must test their program using the Astro Pi Replay Tool we provide especially for Mission Space Lab teams. The tool simulates their program’s run based on historical data from previous Astro Pi missions.

Mentors and teams

One mentor may supervise a maximum of 10 teams per year. If you would like to co-mentor more than 10 teams, you need to find another mentor who can be the main point of contact and have that person apply to supervise the extra teams.

There is no limit to the number of teams that a school or club can enter provided there are sufficient mentors, but each team can only submit one entry, and each participant can only be part of one team. All submissions must be in English.

Creating your program

Your team’s program must meet some simple requirements so that it can be executed automatically. Any programs that do not meet these requirements will not be given ‘flight status’ (be allowed to run on the ISS). 

The deadline for submissions is 12:00 CET 16 February 2026. Submissions are made by team mentors using the unique link they received when they registered their teams. 

What does your program need to output?

  • Your program needs to produce a numeric output of the average speed that the ISS is travelling. This is also known as the magnitude of velocity.

  • The output that your program produces must be a .txt file as described in the Mission Space Lab creator guide (rpf.io/msl-creators).

  • The numeric output should use no more than 5 significant numbers (5 digits in total, including decimal places, for example, 1.2345 km/s).

  • The speed must be given in kilometres per second (km/s). 

Your program should measure the average linear speed that the ISS is travelling around the Earth, not how much the ISS is rotating.

Deploy (April – May 2026)

Once Astro Pi Mission Control has received your program, it will be tested to make sure it works and does not contain any functionality that might adversely affect the ISS or its networks. The best programs will be selected to be deployed on the ISS and receive ‘flight status’, and we will notify the teams that created these by the end of April 2026. The selected entries will be uplinked to the ISS and deployed on the Astro Pi computers on board. The programs will run on the ISS between April and May 2026 (depending on ISS operational constraints).

Program requirements checklist

Requirements: General

  • Your program does not rely on interaction with an astronaut.

  • Your program is written in Python 3.11 and is named main.py. It runs without errors when tested with the Astro Pi Replay Tool using python3 main.py.

  • Your program does not rely on any additional libraries other than those listed in the Mission Space Lab creator guide (rpf.io/msl-creators).

  • Your program monitors its running time and stops after 10 minutes have passed.

  • There is no bad language, rudeness, or political statements in your program.

  • Your program uses at least one Sense HAT sensor or the camera.

  • Your program is uploaded in a zip file. If you have additional files that are required for the operation of your experiment, they can be included in the zip file too. However, the zip file must contain a file called main.py, which must be how your program is run.

  • Your program does not display flags during its run.

  • Your program is not allowed to retain more than 42 images at the end of the 10 minutes, though it can store more than that while it is running.

  • Your zipped program must not be more than 3MB, unless it includes a TensorFlow Lite (.tflite) machine learning model, in which case your zipped program must not be more than 7MB.

Requirements: Security

  • Your program is well-documented and understandable. There is no attempt to hide or obfuscate what a piece of code does.

  • Your program does not start a system process, or run another program, or any command usually entered on the terminal (e.g. vcgencmd).

  • Your program does not use networking.

  • Your program does not include malicious code (i.e. code that deliberately attempts to disrupt system functionality).

Requirements: Files and threads

  • Your program does not use threads, or if it does, it does so only by using the threading library. Threads are managed carefully and closed cleanly, and their use is clearly explained through comments in the code.

  • Your program only saves data in the same folder where your main Python file is, as described in the Mission Space Lab creator guide (i.e. using the special __file__ variable). Your program does not attempt to create new directories for storing your data, and no absolute path names are used.

  • Your program runs without errors and does not raise any unhandled exceptions.

  • Any files that your program creates have names that only include letters, numbers, dots (.), dashes (-), or underscores (_).

  • Your program does not use more than 250MB of space to store data.

  • As well as containing your main.py file, the zip file that you submit must only contain the following file types: .py, .main, .csv, .txt, .jpg, .png, .yuv, .json, .toml, .yaml, .tflite.

  • In addition to your result.txt file, the output of your program must only include the following file types: .csv, .txt, .log, .jpg, .png, .yuv, .raw (camera), .h264, .json, .toml, .yaml.

Programs that do not respect this checklist will be disqualified.

Timeline

Encourage your team to decide on the ideal date they would like to finish writing their program. They should make sure they have enough time to test it fully before submitting it, and to check it against the requirements checklist.

Download timeline
timeline for mission space lab 23/24

After submission

Once you have submitted your program, it will be reviewed and tested by Astro Pi Mission Control. They will assess your program according to the program checklist and the following criteria.

Does your program meet the guidelines? 

  • Is your program investigating the scientific challenge that Astro Pi Mission Control has set?

  • Does it output an estimate for the speed of the ISS in a file named result.txt in the required format?

  • Is there a file named main.py in the submission?

Program readability and quality

  • Is your program easily understandable?

  • Is it structured well, and does it include rigorous error checking?

  • Is reused code from other sources/authors correctly attributed with a LICENSE file?

  • Does the program respond to changes in the speed of the ISS?

Clarity and comprehensiveness

  • Does your program perform the calculations you have attempted to make?

  • Does it follow the guidance provided in the Mission Space Lab creator guide (rpf.io/msl-creators)?

Astro Pi Mission Control will email you about whether your team’s experiment has passed our testing and achieved flight status by the end of April 2026. 

We will then prepare and upload the successful programs to the ISS. You will receive the results of your experiment by email once your experiment data has been downlinked from the ISS. This will happen in June 2026. 

Please note that the above timings are dependent on ISS crew operations and can change.