Google Classroom
GeoGebraGeoGebra Classroom

Free fall on a sphere

This activity belongs to the GeoGebra book The Domain of the Time. This animation simulates the motion of a mass falling on a spherical surface in real-time, disregarding friction. The animation (almost) does not use formulas (neither trigonometry nor motion equations nor differential calculus), but only makes the necessary variations in the vectors that direct the movement. A mass, represented by the blue point M, is located at the top of a sphere with radius r (which includes the distance from the center of mass to the spherical surface), that is, in its upper hemisphere. The animation varies at each moment both the velocity vector v (in red) and the position M of the mass, due to the action of gravity, whose constant acceleration is represented by the vector g (in dashed green line). The motion followed by M consists of two parts. In the first part (which I will call part1), it falls along the circumference of the sphere in a (accelerated) circular motion. This is the motion that the point MM will follow in the slider script anima. In the second part, it detaches from the spherical surface to move in a free-fall motion with the initial velocity it has at the moment of separation. The vector g can be decomposed into two components: one tangent to the sphere, gt​, and another perpendicular to it, gn​. This latter vector does not influence the motion, as we saw in the previous inclined plane activity, but it is crucial to determine at which point the mass detaches from the sphere and thus differentiate both parts. This is all we need to write the script for the slider anima. Remember that, as we saw in the centripetal acceleration activity of uniform circular motion, for the mass to remain on its circular path, it is necessary to apply an acceleration greater than or equal to that centripetal acceleration, whose magnitude was v2/r​, where v is the tangential speed. The condition to remain in part1 is:

When the magnitude of gn is less than that of the centripetal acceleration, that component of gravity will be insufficient to keep the mass glued to the sphere, causing it to abandon the circular motion and start, in the second part, a free-fall motion with an initial speed equal to the one it had at the moment of detaching. In the construction, we have centered the sphere at the origin of coordinates. You can place the initial position at any point on the arc of the first quadrant.
  • Note: In reality, this arc does not correspond to 90º, but rather to 89.99º. The reason is to prevent you from choosing 90º as the initial position (the "North Pole" of the sphere), since in that case the mass would be in unstable equilibrium, as gt would be zero and the motion would not begin.
If we call h0​ the height of the initial position, you can check in the construction that part1 always corresponds to one-third of h0​. It does not matter the mass, the radius of the sphere, or even the value of gravity: the mass (without friction) will always stay glued to the sphere for 1/3 of the initial height.
  • Note: To demonstrate this, activate the Diagram checkbox. The mass has descended a height h from its initial position, located at a height h0​. Observe that the yellow right triangle, with hypotenuse |g| and leg |gn| is similar to the green one, with hypotenuse r and leg h0h. Thus, |gn|/|g| = (h0h)/r​. We know that, at the moment of detachment, the condition |gn| = v2/r​ must be met. Furthermore, since the magnitude of the velocity (remember that it is the same as in free fall) was , we have that |gn| = 2 |g| h/r​, meaning |gn|/|g| = 2h/r. By equating the two previous equalities, (h0h)/r = 2h/r​, from which we find h = h0/3​​.
SCRIPT FOR SLIDER anima # Calculate the elapsed seconds dt; add one second if t1(1) < tt SetValue(tt, t1(1)) SetValue(t1, First(GetTime(), 3)) SetValue(dt, (t1(1) < tt) + (t1(1) − tt)/1000) # Move MM and M (r is the distance from the center of M to the center of the sphere) SetValue(part1, abs(M) < r) SetValue(v, If(part1, vt + dt gt, v + dt g)) SetValue(MM, MM + dt v) SetValue(M, If(part1, MM, y(M + dt v) > 0, M + dt v, Intersect(Line(M, M + v), xAxis))) StartAnimation(anima, y(M) > 0) Author of the activity and GeoGebra construction: Rafael Losada.