First of all, those are some pretty neat visuals; I can see why you’re inspired.
Second of all, can I ask you to brake down the problem into smaller parts? When doing any type of problem solving, something that always helps me is to take a step back and ask myself “What can I do, and what can’t I?”
How about exploring how the ellipse() function works?