The last couple of weeks have seen multiple rounds of iteration over my code and a few realizations on how a better structure could have been had from the beginning.
The first big thing change was the move from circles to ellipses, this took me a while. Turns out, there is a delightful bit of math for tracing the path of an ellipse called the parametric ellipse equation, this takes a parameter, theta (t in this case), an angle between 0 and tau (two * pi), and outputs an x and y value for the circumference of the ellipse at that angle. This plugs into code very simply and allowed me to stretch my orbits to better fit a non-square display.
Below is the note I have written for myself in the code. It includes a link to the site I used to learn this.
Parametric equation of an ellipse
x = cx + a * cos(t)
y = cy + b * sin(t)
t = angle parameter, from 0 to Tau (2 PI)
cos(t) = x component
sin(t) = y component
a & b = scale value for eccentricity
cx & cy = offset for center point
Source: Math Open Ref - Parametric Ellipse
With that addition came the challenge of mixing and matching equations. Previously I have been using a p5.js function, arc() to draw the orbits of the planets and fill in the portion of the orbit that they have completed. This also takes the parameters of an ellipse, but this function calculates angle differently. So my orbit fell out of sync with my planet, except at quarter PI intervals. Instead I have switched to drawing the whole orbit, and changing the fill value over time to indicate when an orbit has been completed.
While adding this functionality and preparing an output of my piece for the HCC Media Wall, I stumbled upon a very simple method for creating a “film grain” effect, simply drawing random points with a slight fade every frame, I am unsure if I will use it for my final piece, but it was a neat find.
Below is an export of my piece as I have it being shown on the HCC wall (except rotated 90 degrees).
After that I have been playing around with adding text, I greatly enjoyed seeing the work of Ryoji Ikeda at the High Museum in Atlanta in March. His exhibition, data-verse was, perhaps, the greatest thing I have ever seen in a museum, and I loved the way he uses data and text in his work.
Currently I have 3 chunks of text, The first displaying how long in seconds until each planet will complete an orbit, the second displaying a count of how many orbits each planet has completed, and third, a percentage of how far along in an orbit each planet is.

What’s Left
Over the next couple of days I will refine this and refine my musical piece in lead up to Research and Creativity day where I will be giving an oral presentation on this project.
Before I present I will be experimenting with having the text pushed all to one side, adding more text, and most importantly, fixing the synchronization of my music and visuals, I believe I miscalculated either the speed of the music or the speed of rotation of the planets, they do not line up at all.
I will leave you with a link to the High Museum website which shows a glimpse into Ryoji Ikeda’s beautiful work, and a promise that by next week I will have a finished piece and a reflection to share.