This project spun off the official idea suggestion #4: Exoplanets and Stellar Wobble
I've been TAing for optics at the undergraduate lab, and happen to be looking back at Doppler shifts about two weeks before the Hackathon. Spectrography always fascinates me because it measures things that, at first glance, appear hidden to our perception, yet it reveals tangible and nontrivial features and mechanisms of physical nature.
With #DopplerLooper, I am attempting to bridge the gap between these two notions -- tiny perceived changes, and immense amounts of information we can learn from them.
In this version of DopplerLooper, the spectrogram due to orbital Doppler shift is quantitatively computed. Then, I pass the numerical model down the pipeline, and visualise it in a logically exaggerated manner, making the subtle effects appreciable and intuitive.
What it does
- Solves an arbitrary bound 2 body problem with given masses, separation, and orbit eccentricity.
- Computes the orbital Doppler Shift factors along any given direction.
- Generates the shifted profile of any given spectral line in free space.
- [Blender 3D] Visualise the shift-factor using a colour-changing star.
How I built it
The prototype was made in a Jupyter Notebook and is included in the repository for completeness. Solving NBody problem rigidly is something I have done before, so the algorithm was relatively easy to implement.
The orbit is evaluated twice. First analytically using the given parameters, and then numerically by integrating the problem from perihelion for one full period. The data points generated by the integrator are then mapped to coordinates of Blender objects, and written to an animation sequence.
Challenges I ran into
- Getting scipy to run in Blender... Chances are your copy of Blender will not run my code out of the box.
- Solution: go to the shipped Python folder, and type
python -m pip install scipy
Accomplishments that I'm proud of
- Hey it works, sans some angle inconsistencies, probably!
- With Eevee rendering, the star bloom is pleasant to look at.
What I learned
- Learned how to write to Blender data paths procedurally. This opens a gateway to a new world for me.
- Refreshed the simple orbital mechanics' equations such as Virial theorem
What's next for Doppler Looper
- Python-based Screensaver...?
- A teaching tool for celestial motion.
- __ If I stretch it a little and show the ground view on the planet with ray tracing, it refutes flat earth too. __