SOCIS 2017 Cristian Meroño - poliastro/poliastro GitHub Wiki

Astrodynamics interactive web with orbital manouvers simulation

An old man said that you can’t start to build a house from the roof. But nowadays , if we want to think about future , we have to start to build our new houses from the space. That’s why I will start telling you how I will make astrodynamics accessible for all the people that want to learn and compute with his own data , without touching any line of code.

Poliastro has an enormous potential in the field of astronautics. Project’s main goal is to make it easier to use. Developing this proyect that , in my opinion , will be so useful for scientist and researchers who don’t know about code. Reinventing how to computate calcs in astrodynamics and representing all in 3D plotting is what I will be doing for the next three months.

Before explaining you how I will organize my time and how I will do this project, lets see what specifically the “poliastro interactive web” is:

The structure of the web will be simple , different fields of necessary data to make the bodie and trajectory. The possibility of making the plot with 2 or 3 axes (2D or 3D). All the posibilities that are implemented in Poliastro and all the future updates with new ones will be included in the web interactive version too.

The section of the web devoted to implement all the library properties and functions will be based in blocks , a type of Scratch structure. The main interface will look like this :

To see it better : http://imgur.com/wFjbWXS

Every block could be deleted and a new one could be added , the structure of the blocks and its content will determinate and plot the graphic in a different way depending on what type of problem or computation we want to do.

There will be two static blocks in the mission steps zone: Launch and Arrive. Then you have to add more blocks in function of what type of missions and calcs you want to obtain.

The axes x,y and z could be moved to see better how the plot and the launch are going like a 3D model cad program. At the same time , there will be a time line that affects the position of the rocket and the movements of the planets.

You can see how the plane and axes x , y and z will move in this url: http://jsfiddle.net/Lc8gH/20/

You will be able to see what is happening in every moment , at 24 frames per 1% of the mission , upgradable. This is possible by taking 24 positions in that 1% of the mission in time , replacing the position values in the vector ecuation generating 24 plots concatenated. It looks like an emulation of the mission and is very useful to see the complexity of the maneuvers that are involved in the trip.

As described in last paragraph, the x, y and z position will be behind the plotting space in that instant. You will also be able to see the exact time of the frame utc formuled.

Parameters that define the plots and the timeline could be modified. For example, If you want to see the change of orbit between two planets you can put instead of 24 frames per 1% of the total time of mission , 30 frames for the 0.5% or another.

You will have only a static block , the “Show calcs” in the calculation zone , and then you could add more blocks to view specifically speed , position vectors , v’s delta and all the parameters that are necessary to make a mission. Definitely you’ll be able to view how it’s going without a lot of hours of rendering and supercomputer’s time.

The Example you can watch in the last image , the project schema , is this code with poliastro library in Python:

You can ask the web for a table of instant positions and parameters in periods of 10 seconds. The table will be like this:

Thinking about the organization and how to manage my time, everytime I start a project, it is always on my mind that an hour away from the keyboard with a book and thinking about the project is more efficient that hitting your head with the code without any success. Thats why my schedule for the week will be composed by 6-8 hours daily with another 8 hours of sleep and the rest of the day hanging out with friends or doing another thing that allows me to take a break from the project. In those 6-8 hours there will be at least 3-4 breaks of 20 minutes , more if necessary to eat something or go for a walk.

The twelve weeks of work will be distributed in two git branches:

Represent all the functionalities of Poliastro in a 3D time-sensible interface with 360º rotation

This step/branch will be the most difficult. I will implement with Javascript and Django a web version of the graphics with the posibility of rotating 360 degrees all the graphics you can generate with Poliastro. The 3D plot will be affected by time like I said in the Presentation of the project. The sliders manage those two parameters (degrees and time) and then the javascript library three.js process the position and parameters of the objects received by django , which will have the Poliastro library integrated.

I have estimated five weeks of working in this branch.

  • First week: I will be reading the book Eloquent Javascript while Im finishing the javascript course in codeacademy and Using Python for Research course provided by Harvard University in Edx. Then start to practice and develop.
  • Second week : Im organizing all the structure and with the help of my mentor think how to develop it.
  • Third week: we’re starting to develop the algorithm and how we are going to deploy all the plots in a 3D interactive structure. Taking plots like frames and doing an engine for it will be the main way.
  • Fourth week: we will be coding the engine of the 3D viewer for a long time , all the necessary to finish it.
  • Fifth week: we have to finish the developing process and start trying the engine and apply on the web to see if any error appears and then solve it.

Implement a Scratch structure to do Poliastro web interactive and easier for all

  • The work of the four weeks will be most of the time developing Django , HTML5 , CSS3 and studying a course of Node.js to make the server more scalable.
  • The last week will be devoted to the complete and exhaustive test of all the technologies that we implemented.

About me

  • Finishing with who I am , my name is Cristian Meroño Gil and I am coursing Bachelor of technological sciences in the Jimenez de la Espada High School in Cartagena ,Murcia. I have been crazy about technology and astronomy since I was five.

  • Im available all the summer from 1st June to last of September to do this project. My holidays are not defined yet but it wont be an inconvenient.

  • I work in Linux enviroments to code , now in Xubuntu and I use Windows 10 with Photoshop for graphical support.

  • Languages: Spanish(native) and English

  • I’ve most of my experience programming in Python with the framework Django and libraries like Scipy , Matlib , Tkinter etc. Programming in Java is familiar to me and also the web technologies (HTML,CSS,JS). I’ve developed an IA , an e-commerce shop , and internal buy-sell programs.