This was initially a toy project to see how the Mars Polar Lander crash happened, and how it could have been prevented.
It escalated from there.
I started adding a GUI written in GtkAda, with the help of AICWL, and then added more and more stuff, now it looks colourful (and still ugly, I am no UI designer.)
I decided to release the source code, there is nothing special about it, but for the uninitiated it might be fun to dig through it.
The software consists of two parts, the simulator, and the user interface to it. The simulator can be run separately, it will spit out messages at certain critical mission points (entering atmosphere, separating heatshield, deploying lander, etc.).
The mars_mpl executable comprises the graphical user interface, from there
you can enable and disable the TDM bug and also change all kind of parameters
(initial height, approach velocity, fuel reserves, fuel consumption, etc. pp.)
and start/stop the simulator.
GUI part and simulator part communicate via Shared_Passive packages.
AICWL is defined as git submodule, so when cloning this directory you may want
to use the --recurse-submodules option with git.
source/landercontains the actual lander simulationsource/physicsgravity stuff, rocket equationssource/simPart of the lander, but everything that concerns only the simulation (external triggers, etc.)source/uiThe GUI part, obviouslysource/Globally shared stuff (shared types, parameters, and logging)aicwlAICWL3.24 submodule
This work is solely based on freely available sources from the internet and as
such may not be factually correct. I have no affiliation with any of the
involved parties. For easy access, I put all the documentation I used when
writing this into the doc directory. This includes basic information about MPL's
planned EDL (Entry, Descent, and Landing) phases as well as NASA's investigation
report.