The Physics of Reddit's Spinning Solar System Icon

If the dots on the loading screen were planets, is their motion realistic? And can we actually model it?
two small circles in two bigger ones
Photograph: Getty Images

While waiting for Reddit to load on my phone, I wondered if I could do some physics with the loading icon. Maybe you've seen it. It looks like a mini solar system with four planets (two inner planets and two outer planets). Let's model it!

Video: Rhett Allain via Reddit

We should start with some data. I can do a screen capture of the loading screen and then use my favorite video analysis program (Tracker Video Analysis) to get position and time data. Of course, the screen shows distance in units of pixels and that's not very useful. I don't know the actual size of this “planetary system” (or whatever it is), so I will just set the scale size to 1 outer orbital diameter unit. This is the distance across the whole orbit of one of the outer “planets."

In order to see if this figure moves in some type of realistic way, I need to look at the motion of the planets. One of the simplest things would be to look at the angular position as a function of time. What is the angular position? If you were to draw a line from the middle of the center sun to one of the orbiting planets (in a flat plane), the angle between this line and the x-axis would be its angular position. This is the same as if you were using polar coordinates instead of Cartesian coordinates. By using the angular position instead of x and y coordinates, I can still map out the motion, but I don't have to worry about the orbital size. Then I can see if different orbital distances have different orbital speeds.

From the video analysis, I get the following data for the angular positions (in units of radians) of the inner and outer planets.

For every frame in the animation, I get two things—the time and the angular position. These two things represent one data point on the graph where the horizontal axis is time and the vertical axis is the angular position (in radians). Remember that there are multiple ways to represent angles. It's possible to go from 0 to 2π radians—or you could go from 0 to π and then negative π to 0. It's really all the same, but the video analysis program uses negative angles.

This data looks nice and linear. That means that the inner and outer planets orbit at a constant rotational rate (which is expected). The angular velocity is defined as the change in angular position divided by a change in time—that means the slope of angle vs. time would actually be the angular velocity (we use the symbol ω for this), and I can find that from the plot. From this, the inner planets orbits at 3.203 radians/second (based on the slope of the line), and the outer ones moves at 2.084 radians/second. Of course, this assumes that the loading graphic is in “real time," but who knows.

But should a planet that's farther from the center have a longer orbital period? Well, that's what happens with the planets in our actual and real solar system. Why is that? There are really two big physics ideas to consider.

The first physics concept is the universal gravitational force. This is an interaction between any two objects with mass. So, let's consider the inner planet (or maybe it's a moon) and the big thing in the middle, the "sun." Since both objects have a mass, there is an attractive force between them. This force depends on the value of the two masses (m1 and m2) as well as the distance between their centers (r).

Illustration: Rhett Allain

In this expression, G is the universal gravitational constant with a value of 6.67 x 10-11 N*m2kg2—at least that's its value here in the real world. But notice that the gravitational force decreases with distance. That's important.

The second big idea is Newton's second law and acceleration. This says that the magnitude of the acceleration of an object is related to the magnitude of the total force on an object with the following expression.

Illustration: Rhett Allain

But what about  the acceleration? Ths is defined as a measure of how quickly the velocity changes (technically, this is the time rate of change of velocity). Even though these planets seem to move with a constant speed, they are also changing direction. Velocity is a vector such that a change in direction is still a change in velocity. That means that an object moving in a circle has an acceleration even when moving at constant speed. The magnitude of acceleration for an object like this is called centripetal acceleration (which means center-pointing).

Illustration: Rhett Allain

Notice that this acceleration can be calculated using either the velocity or the angular velocity (ω). I'll use the angular velocity version, since that's what I measured from the Reddit graphic. So this means that the gravitational force causes the “planet” to accelerate as it moves in a circle. Putting these two expressions together, I get:

Illustration: Rhett Allain

Note that I am assuming the orbiting planet has a mass of m1 and the other mass is stationary. So you can see this planet mass cancels (since it's on both sides of the equation). Let me just write this equation so that it will work for both the inner and outer planet. This has the angular velocity and the orbital radius on one side (the two things that change).

Illustration: Rhett Allain

If the Reddit icon is an actual orbit, then the following should be true (using an “i” subscript for the inner planets and “o” for the outers).

Illustration: Rhett Allain

See. Isn't that great? I don't actually need to know the gravitational constant or the mass of the center planet—which is nice. Also, for the orbital radius and the angular velocity I don't even need to know the proper units, since it's the same on both sides of the equation. But I can still build a model of how this orbit-con (an orbiting icon) moves.

Fine, let's see if it works. Remember, the orbital diameter for the outer planets is “1 unit." This means I get the following:

Clearly, these two values are not the same. What does that mean? It means that this Reddit thing is not an actual orbiting planet with a real-world gravitational force. This is fine. Really, it's fine. It's good, actually—now I can try to figure out exactly what is happening here. If I had more than two orbital distances, I could make a plot of the angular velocity as a function of orbital distance and use this to figure out the model for the gravitational force. However, with just two data points you wouldn't really be able to tell anything about the functional relationship between angular velocity and distance.

Since I only have two data points, I'm going to just make a guess. What if I try this:

Illustration: Rhett Allain

Using r2instead of r3 gives constants of 1.07 and 1.09 for the inner and outer planets. I like that. They aren't exactly the same as each other, but they are really close. That would mean the gravitational force would look like this:

Illustration: Rhett Allain

We can call this the Reddit Law of Gravity since it's not the real gravitational force. Of course, I don't know the Reddit version of the constant G, and I don't know the mass of the center planet. However, the product of this center planet's mass and the gravitational constant would have to be around 1.08 m2s2.

OK, what's next? I like to say that you don't really understand something unless you can model it—so let's build a model.

For this model, I'm going to use GlowScript. This is a version of Python that runs in a web browser and includes 3D visualizations. If you haven't used it, it's pretty nice. I will use a numerical calculation to find the position of the planets at different times. The basic idea is to break the calculation into tiny time intervals. During each time interval, I can assume that the force is constant and use that to find the new position and velocity. Then I just need to do this a whole bunch of times to get my model.

Here is an example of a numerical calculation using real-world gravity.

For this Reddit-model, I need to make some assumptions:

  • The center planet is very massive. That means that even though the two orbiting planets exert a gravitational force on it, it doesn't change in its motion. It just stays stationary.
  • The orbiting planets don't interact with each other.
  • Since this is a numerical calculation, I need numbers. I know the angular velocities, but not the distances. I am going to say that the orbital diameter of the outer planets is 1 meter (instead of 1 “unit”).

So, here you go. This is the actual code. You can look at (and change) the code by clicking the “pencil” icon, and if you need to rerun it, click the play icon.

Boom. I did it. There's your Reddit icon built from the ground up.

Oh wait, I can't just leave it alone. I need to give you some homework questions also.

  • Modify the model so that there is a gravitational interaction between all the orbiting planets. Is it still a stable situation? You can assume the outer planets have twice the mass of the inner planets.
  • Suppose the orbiting planets are spheres with a uniform density. The inner planets have a radius of 0.05 units and the outer planets have a radius of 0.066 units (arbitrary units). Find the planetary density assuming the inner planets have a mass of 1 ukg (fake kilogram unit). Find the mass of the outer planets.
  • Use this same planetary density to find the mass of the center planet. Now modify the model to include motion of the center planet. Note: If the orbiting planets don't interact with each other, I think the symmetry of the situation will prevent the center planet from moving—but you should check just to make sure.
  • Use this Reddit-based model of gravity to calculate the orbital period of the Earth as it moves around the sun. This is the new length of the year.
  • With this Reddit-based gravitational force, what is your weight on the surface of the Earth?
  • Redesign the reddit icon so that it has a realistic gravitational force.

More Great WIRED Stories