JasonCoombs / eyesonearth

Satellite Trajectory Animating & Rendering: Satellite Orbit Visualiser using Blender

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Eyes on Earth

Eyes on Earth is a 24-hour simulation of the 3,000+ satellites that are orbiting and observing our planet on a daily basis.

The code for this project is based on the amazing work by Jasmeet Singh on his S.T.A.R. project found here. https://github.com/jasmeet0915/S.T.A.R

More information about this project including links to the NFT on Foundation and the Blender files can be downloaded Download on Dropbox.

All orbit data is based on the Two Line Element (TLE) Sets found on https://celestrak.com/. Text files for the orbits used in this simulation can be found in the /orbital_mechanics/data folder for the project. They can be replaced with any other TLE orbit data by adding the .txt files to /data and adjusting the code in 2BodyProblem.py and OrbitPropagator.py

How it Works

  1. The entire simulation for Eyes on Earth is done through the .Blend file and cache folder that can be downloaded here Download on Dropbox.
  2. Download the .zip file, unpack, and run EyesonEarthv2.blend
  3. The .Blend file contains a model of Earth, a sun light and a collection of satelitte objects
    1. The earth model has a standard texture setup using the shadow generated by the sunlight to mask between the earth texture and night light texture
    2. The animation is set for 30 frames per section with the the earth is set to rotate on the Z axis once every 720 frames or once every 24 seconds
    3. The camera is set on a perfect loop over the 720 seconds zooming into earth and back out to the original position
    4. The satelittes are contained in a hidden collection with a different colour emission for each satelitte type (a description of each type can be found here)
    5. The earth object has a particle system referencing each object in the hidden collection and particle animations baked to the cache folder contained in the zip
    6. The actual orbits for each satelitte type have been replaced using the python code contained in this repo
  4. The code for this project is contained within the /orbital_mechanics folder contained in this repo and can be adjusted to use new orbit data
    1. Ensure the .blend file, the cache folder, and the /orbital_machanics folder are in the same director
    2. Generate a TLE file on https://celestrak.com/ and add it to the /data folder
    3. Create a new partical simulation in Blender using the same settings as the existing (ensure to set the number of particles to the same number of satelittes in the .txt file
    4. Bake the cache for the new particles to disk and take note of the index number
    5. Open the 2BodyProblem.py and OrbitPropagator.py in a code editor
    6. In 2BodyProblem.py adjust the .txt file name in line 56
    7. In 2BodyProblem.py adjust the particleCachePath in line 89 to match the index number for your particles in line 56
    8. In particlecache.py adjust the index number in line 163 and 170
    9. Execute code>2BodyProblem.py
  5. The python code will overwrite the cache files with the correct orbit data from the .txt file
  6. Run the animation in Blender and the new correct orbits should be applied to the particles
  7. Note: This was a trial and error process for me over several months. If this doesn't work the first time, don't be discourage. Review the code, look at Jasmeet's .readme in his repo, and troubleshoot. If you're stuck, feel free to find me on Twitter here

    Thanks! Good luck!

    Scobel

About

Satellite Trajectory Animating & Rendering: Satellite Orbit Visualiser using Blender


Languages

Language:Python 100.0%