Space Debris Visualization

Space debris problem

Space Debris, also known as space junk or space waste, is thousands of objects that were left in Earth’s orbit by humans. Some of them are damaged satellites, pieces of rockets or even small paint flecks. They are extremely dangerous to active satellites and spacecraft orbiting the Earth. Not only because of how many of them there are but also because they travel at high speeds reaching thousands of km per hour. At this speed, even small paint flecks can cause huge damage to everything it encounters on its way.

Illustration
Illustration of space debris orbiting around the Earth

Some articles discuss potential solutions to this problem. One of the options is to make sure that new satellites have an inbuilt mechanism that would allow them to slow down at the end of their service. Therefore, they could deorbit, and burn up in the atmosphere. Those which are too high could use such a mechanism to go to higher orbits called ‘graveyard orbits’ and stay there making space on lower orbits.

Debris
A growing amount of space debris over the years
Solution
Visualization of a potential solution to reduce space waste

Outline of the project

This project is going to be a 3D visualization of space debris that orbits around the Earth. Its aim is to be a scientific application, that could be used to show how many objects orbit Earth today. I am planning to use third-party API that would allow me to obtain real data about these objects (i.e. speed, altitude, type etc.). In the final application, users would be able to move a camera around the Earth as well as zoom in or out, to better see visualization from different angles. There also would be an option to focus the camera on particular debris. It will then show all information about it on a screen.

After initial research into different graphics APIs that could be used, including OpenGL, DirectX and Vulkan, I decided to go with the last one. It would be the most interesting one to work with as well as challenging in terms of learning difficulty but also more efficient if coded properly. As to what language will be used, the choice is C++ because of my experience with it and my desire to expand my knowledge about it.

Methods, Techniques and Process

In terms of software, this project is going to be implemented using Visual Studio 2019 and C++. To keep track of all changes and version controls Git will be used. To make using Git easier and more efficient GitKraken Git GUI client will be used and the entire project will be stored on GitHub.

GitHub Projects is a visual board on which all tasks are going to be placed. There are going to be a few categories for instance: to do, completed etc. to help manage the project during development. This way it could be seen what is left to do and also make prioritising tasks easier.

At the beginning of the project master and development branches are going to be created. Then each task is going to have its own branch and merge into development after completion. Every month code from the stable development version is going to be merged into the master. That way everything is going to be clear and the chance of losing or breaking code is going to be much less.

To make development more flexible to any circumstances that could happen, an agile method is going to be used. To get the most out of this method, every week or two progress is going to be checked against the initial plan and adjusted or changed if does not suit or fulfils project criteria. If it is good, another part is going to be worked on for the next week or two depending on the complexity of a milestone.

Finished Project

An unhandled error has occurred. Reload 🗙