NetLogo banner

 Contact Us

 Modeling Commons

 User Manuals:


NetLogo User Community Models

(back to the NetLogo User Community Models)


by David McAvity (Submitted: 03/20/2007)

[screen shot]

Download Bouncing_Ball
If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".

(You can also run this model in your browser, but we don't recommend it; details here.)


This bouncing ball model illustrates the concept of entropy change as a result of the redistribution of energy in a system to available microstates. The system in this case is a simulation of a rubber ball composed of a number of particles that are bound together with Hookian springs, with particular equilibrium length and spring constants. The ball of particles starts above the ground and when allowed to fall under the influence of gravity rebounds off the ground. Energy is conserved in this process, nevertheless the height of the ball of particles decreases with each bounce as the initial potential energy of the system is transferred to disordered vibrations of the internal particles. External mechanical energy, such as potential energy and ordered kinetic energy is transferred to internal potential energy of the springs and disordered kinetic energy. It is possible to investigate how the rate at which this energy is redistributed relates to factors such as the strength of the springs and number of particles.


Particles are created randomly in a small area near the top of the world view. In the simulation each particle interacts pair-wise with every other particle via a Hooke's law F=-kx force, where x is the distance between the two interacting particles minus the equilibrium length of the spring. (Note: the particles do not interact in any other way, which means that they can pass through each other if they move fast enough to overcome the repulsion from the springs). The motion is simulated numerically based on Newton's second law F=ma. In order to have precision with the simulation and to conserve energy we use a fourth order Runge Kutta, rather than Euler's method. (Euler's method tends to result in energy loss over time due to numerical errors). There are options to include a number of other forces in the simulation. The initial default is to add a damping force that serves to gradually dampen out the motion so that the particles can reach an equilibrium configuration. When this equilibrium is established, damping can be turned off and gravity turned on to allow the ball to fall. It is also possible to have both damping and gravity at the same time, and neither. The elastic, gravitational and kinetic energy of each particle is calculated at each time step. The internal energy is set equal to the total elastic energy of the particles and the kinetic energy that is in excess of the center of mass kinetic energy. The total energy is the total gravitational potential energy and the center of mass kinetic energy.


Choose the number of particles, the rest length of the springs connecting them and the spring constant and the click setup. The particles are in a group near the top of the screen. Now click go. The default mode is "damping", in order that the particles will reach an equilibrium configuration corresponding to a ball of particles. When the particles have reached equilibrium change the mode to "gravity". Now gravity acts on the particles and there is no damping. Total energy is conserved, but as the ball bounces the distribution of energy between internal and external energy shifts, with the result that the ball of particles does not return to its original height.

It is possible to change the mode so that both damping and gravity apply or neither applies. The later mode is interesting to try out if you want to see how a large number of particles with springs interact. It is possible to add additional particles by using the add-particle button and clicking on the screen. Be aware that if you add particles a long way from the other particles you will be adding a large amount of elastic energy to the system, which may result in particles disappearing from the screen.


Notice that when the ball of particles bounces external energy is always converted to internal energy. The bounce allows other energy states (namely vibrations of the particles) to become available. Notice also that external energy is never totally lost, as long as damping and gravity are not both on at the same time.

Try changing the spring constant and rest length of the spring and see how this changes how quickly the ball of particles looses its external energy to internal energy. You can make a quantitative comparison using the behavior space feature of NetLogo.


Initially, with damping on, the particles settle into a configuration with symmetry depending on the number of particles. Try starting with a low number of particles and then adding particles. You should observe definite symmetry breaking transitions at particular numbers of particles.

With about 25 particles try putting gravity and damping on. The ball of particles will reach terminal velocity and settle on the ground in a configuration. Observe how the configuration changes with shape with different values of k.

Allow about 25 particles to come to an equilibrium configuration with damping on. Then turn the spring constant off. Now turn on gravity only and observe the particles falling. Because there is no internal interaction the particles gradually loose their cohesion, due to the difference in time it takes for the different parts of the ball to drop during each bounce.


It would be interesting to change the interaction force to be a more realistic force like the Lenard-Jones 6-12 potential, which is Hookian in a small range around the equilibrium length, but diminishes for larger extensions and becomes very large for high compression.


See the other Entropy Models in this series


Copyright 2006 David McAvity

This model was created at the Evergreen State College, in Olympia Washington
as part of a series of applets to illustrate principles in physics and biology.

Funding was provided by the Plato Royalty Grant.

The model may be freely used, modified and redistributed provided this copyright is included and it not used for profit.

Contact David McAvity at if you have questions about its use.

(back to the NetLogo User Community Models)