Menu

Tree [c5a353] master /
 History

HTTPS access


File Date Author Commit
 img 2017-06-07 crmathieu crmathieu [76f589] Add files via upload
 200km+asteroids_orbital_elements.txt 2017-07-21 crmathieu crmathieu [c4d381] Add files via upload
 200m+PHA_orbital_elements.txt 2017-07-21 crmathieu crmathieu [c4d381] Add files via upload
 200m+comets_orbital_elements.txt 2017-07-04 crmathieu crmathieu [79b096] Add files via upload
 LICENSE 2017-06-03 crmathieu crmathieu [d5946e] Initial commit
 README.md 2017-07-22 crmathieu crmathieu [e9c77f] Update README.md
 TransNeptunian_objects.txt 2017-07-21 crmathieu crmathieu [c4d381] Add files via upload
 controls.py 2017-07-22 crmathieu crmathieu [c5a353] Add files via upload
 orbital.py 2017-07-21 crmathieu crmathieu [e53ad9] Add files via upload
 planetsdata.py 2017-07-21 crmathieu crmathieu [e53ad9] Add files via upload
 screenshot-1.jpg 2017-07-22 crmathieu crmathieu [81c4de] Add files via upload
 screenshot-2.jpg 2017-07-22 crmathieu crmathieu [81c4de] Add files via upload
 solar_system.py 2017-07-22 crmathieu crmathieu [714b36] Add files via upload
 solarsys.py 2017-07-22 crmathieu crmathieu [71159b] Add files via upload

Read Me

Orbital

An accurate interactive 3D representation of the solar system featuring inner and outter planets, asteroids,
comets and Trans-Neptunian objects. Also includes the asteroid belt, Jupiter Trojans, Kuiper belt and inner
Oort cloud.

3D orbits of major objects in the solar system are rendered and can be zoomed in and out as well as rotated. Each
object is located on its actual orbit position at the time of rendering.

Interacting with the simulation:

To zoom in/out: click on both mouse buttons and drag the mouse forward or backward.
To rotate the scene: click on the mouse left button only and drag the mouse sideways.

All data was collected from the JPL Small-Body Database Search Engine and the Nasa planetary factsheets.

Keep in mind that

- All distances between each object and the sun are proportional to the actual distance.
- Objects sizes are NOT proportional to their actual size (this is by design in order to 
  view all objects properly).
- Asteroid belt, Kuiper belt, Jupiter Trojans and Oort Cloud are included for illustration purpose only. 
  Even though their size and thickness is somehow proportional to their actual dimension, the distribution 
  pattern within the belt is purely random/aesthetic.

Platform:

python 2.7.9
vpython 6
wxpython 3.0

you will also need the following libraries:

numpy
scipy

The Orbital control modal window will take a little less than a minute to load as PHA, Asteroids, Comets and
trans-Neptunian objects orbits get calculated and rendered during this initial phase, but inner planets are
displayed right away and can be interacted with. If the loading time is too long for your taste, you may limit
the number of objects being loaded by updating the constant MAX_OBJECTS in solarsys.py. The constant specifies
the upper limit of objects to load per data file.

Once the Orbital Control modal pops up, you may visualize the other major bodies in the solar system: Gas giants,
dwarf planets or Asteroid / Kuiper belts etc... All orbits of PHAs, Big Asteroids, Comets and Trans-Neptunian objects
can be displayed with the SlideShow feature. You may pause at any time to take a closer look at trajectories by
zooming in/out and rotate, and then resume. You may also animate the current object from the slideshow along
with other visible objects by using the ">" button. You may also do it step by step using the "+" button.

Animations can be played at increased or decreased speeds between - x20 to + x20, allowing to go back in time as well
as in the future. Specific dates can also be entered directly to examin orbits relative positions. That is an interesting
feature to verify passed events, such as close encounters between earth and PHAs (ie The asteroid named Toutatis on
December 12, 2012). Remember that planets sizes are not realistic (they are much bigger than their actual size), so even
though objects may look sometime very close to each other, the actual distance is much larger. A good way to figure
that out is to look at the Earth MOID parameter that displays the closest distance between the object's orbit and the earth's
orbit.

The current object orbital elements are displayed at the bottom of the Orbital Control dialog.
Legend is:

i: Orbital Inclinaison
N: Longitude of Ascending node
w: Argument of Perihelion
e: Orbit Eccentricity
q: Perihelion distance to the sun

M: Mass in kg
R: Average radius in Km
P: Orbital Period in years

Moid: Minimum Orbital Intersection Distance (in this case with Earth)
Velocity: The current velocity on orbit (this will be updated during animation)

Files:

solarsys.py:    Main file
orbital.py:     Orbits trajectory and belts calculations classes
controls.py:    Orbital controller class used in the "Orbital Control" user interface
planetsdata.py: Orbital elements for major planets and belts

To launch the application, go to the folder where you downloaded the project and type:

> python2.7.exe solarsys.py

Note: There is a bug in the autoscale feature in vpython. If you are in a very expansive view that includes far objects such as dwarf planets and also closer to the sun objects like inner planets, unchecking the far objects and refreshing the scene may "autoscale" you back inside the sun (even though everything looks black). To eliminate the problem, simply perform a zoom out.

One Last thing: Planets do not rotate on their axis during animation. Since the time increment is always a multiple of 1 earth day,
the earth does not rotate on its axis, so to keep things as simple as possible, there is no planet spin.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.