NetLogo banner

 Contact Us

 Modeling Commons

 User Manuals:


NetLogo User Community Models

(back to the NetLogo User Community Models)


by David Bowen (Submitted: 05/01/2007)

[screen shot]

Download Gaslab_Brownian_Motion
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 model of Brownian Motion is one in a series of GasLab models. This model simulates the motion of pollen particles or spores first observed by the English botanist Robert Brown in 1827. This motion was one of the first direct pieces of evidence for the Atomic Theory of Matter.

The GasLab models use the same basic rules for simulating the behavior of gases. Each model integrates different features in order to highlight different aspects of gas behavior. This model is a modified version of the "Circular Particles" model, so different from the other GasLab models in that the collision calculations take the circular shape and size of the particles into account, instead of modeling the particles as dimensionless points.


The model determines the resulting motion of particles that collide, with no loss in their total momentum or total kinetic energy (an elastic collision). The particles are either large spores or smaller gas molecules which collide with each other and with the spores. The gas molecules can be made invisible, but will still collide.

To calculate the outcome of collision, it is necessary to calculate the exact time at which the edge of one particle (represented as a circle), would touch the edge of another particle (or the walls of a container) if the particles were allowed to continue with their current headings and speeds.

By performing such a calculation, one can determine when the next collision anywhere in the system would occur in time. From this determination, the model then advances the motion of all the particles using their current headings and speeds that far in time until this next collision point is reached. Exchange of kinetic energy and momentum between the two particles, according to conservation of kinetic energy and conservation of momentum along the collision axis (a line drawn between the centers of the two particles), is then calculated, and the particles are given new headings and speeds based on this outcome.


NUMBER-OF-GAS-MOLECULES determines the number of gas particles used with SETUP, and NUMBER-OF-SPORES sets the number of spores (large particles). If the world is too small or the particles are too large, the SETUP procedure of the particles will stop so as to prevent overlapping particles.

GAS-MOLECULE-SIZE and SPORE-SIZE determine the sizes of the gas molecules and the spores, respecively, that will be created when SETUP is pressed. (Particles are also assigned a mass proportional to the area of the particle that is created.) BOX-SIZE sets the size of the box within which all particles collide; making the box smaller and reducing the number of particles will speed up the simulation.

If SHOW-GAS-PARTICLES? is set to Off, the gas particles are invisible. Click the switch to set it On and show the collisions with the gas particles that cause the stumbling Brownian Motion.

If SHOW-SPORE-TRACKS? is set to On, the tracks of the spore tracks are drawn, so that the stumbling motion is more visible. Setting this switch to "Off" will not completely erase the tracks, but it will stop further drawing.


The spores exhibit a stumbling motion that is difficult to explain, unless the gas molecules are made visible using the SHOW-GAS-MOLECULES? switch. Then we can see that it is the random collisions with the gas molecules that cause the stumbling motion of the spores.

Particles never overlap or penetrate into each other or the wall as they move about.


Start with SHOW-GAS-MOLECULES? and SHOW-SPORE-TRACKS? at Off, to show the puzzling motions that Robert Brown observed. The puzzling nature of the motion can be emphasized by setting SHOW-SPORE-TRACKS? On while the simulation is running. It is the jagged nature of the tracks that is puzzling, if we do not know about the Atomic Theory of Matter. Setting SHOW-GAS-MOLECULES? to On while the simulation is running explains the jagged nature of the tracks as caused by collision with the gas molecules.


The simulation could be improved by doing a better job of erasing the spore tracks when the SHOW-SPORE-TRACKS? is switched from On to Off while the simulation is running.


MANAGE-VIEW-UPDATES? uses the VIEW-UPDATE-RATE slider to enforce a requirement that a minimum amount of ticks (simulation time) must pass before the view is updated. VIEW-UPDATE-RATE sets what this minimum value is. This helps smooth out the motion of the particles that is seen in the WORLD & VIEW. The particles should appear to have a linear rate of change in their motion when they are not colliding. Without a minimum VIEW-UPDATE-RATE, however, this would not appear to be the case, since without a the model would update the graphics every time after every tick and ticks vary in length, depending on how close the next projected collision is. As the tick length moved up and down, the simulation time the particles were allowed to move forward before they were redisplayed would also move up and down. This would cause the motion of the particles to look jerky and non-linear.


Look at the other GasLab models to see collisions of "point" particles, that is, the particles are assumed to have an area or volume of zero. Look at the "Circular Particles" model to see collisions of extended particles with a range of sizes.


This Brownian Motion simulation was developed by David Bowen at Wayne State University, in Detroit, Michigan. This simulation is based on the "Circular Particles" model by Uri Wilensky.

To refer to the "Circular Particles" model in academic publications, please use: Wilensky, U. (2005). NetLogo GasLab Circular Particles model. Center for Connected Learning and Computer-Based Modeling, Northwestern University, Evanston, IL.

In other publications, please use: Copyright 2005 Uri Wilensky. All rights reserved. See for terms of use.

(back to the NetLogo User Community Models)