NOC: Rocket Design Genetic Algorithm for Asteroid Mining
My final project is a interactive simulation which generates rockets to reach an asteroid using a genetic algorithm.
The project envisions the near future where asteroid mining has become a flourishing industry, and simulations such as this are used to determine the best trajectory and rocket designs for reaching asteroids of different speed and orbits to conduct asteroid mining. More information on asteroid mining and my initial idea can be found in my project proposal blog:
The simulation depicts the space between earth and and asteroid which can have it's speed and orbit changed with sliders.
Modified from the smart rocket sketch by professor Daniel Shiffman ( https://editor.p5js.org/codingtrain/sketches/o5PwECj42 ), the simulation creates a new batch of rockets every time then create subsequent generations with a higher probability of inheriting characteristics from previously successful rockets (fitness measured by the distance between the rocket and the target asteroid). I've added an additional characteristic to the rocket - mass/size, which affects the way rockets are affected by the Earth and Asteroid's gravity.
Gravity was added to the Earth and the Asteroid using an attractor object similar to the one used in the gravitational attraction sketch ( https://editor.p5js.org/codingtrain/sketches/MkLraatd ). Polar coordinates are used for the asteroid's position to make the asteroid orbit, the orbit and speed of the asteroid is linked to sliders to allow the user to customize the traits of the asteroid.
Two status indicators keeps track of the attempts made by the simulation so far to generate rockets along with weather or not a rocket has landed on the asteroid yet.
Final Sketch: https://editor.p5js.org/ukpfilms/full/1iAw6CTO3