This is a model of how sand particles interact with each
other.  In this environment, all sand particles on the screen try to move down if
any of the following four rules apply.  The four rules are:

1.) If there is no sand particle in the space directly beneath you and you are
not at the bottom of the simulation (red line), move directly down. 2.) Go down
and to the left if there is sand directly beneath you and to the lower right. 3.)
Go down and to the right if there is only sand down and to your lower left. 4.)
If there is only sand directly under you go down and either left or right at

GO: Starts and stops the simulation.

SETUP: Sets up the model in spout mode.

RELEASE CHANCE: Determines the percent chance that a particle of sand will fall
from a spout each turn.

DUMP SAND: Dumps sand on all of the model according to the density level, use
this only after you have run SETUP.

DENSITY:  Sets the density of sand particles dumped in DUMP SAND.  For example
setting the density to 40 will, at random fill 40 percent of the patches with

Observe how sand will roll down a ³mountain² of
sand particles.  Consider how this phenomenon is supported by the rules.  Notice
the patterns that form when two ³mountains² of sand grow into each other?

Observe how the spouts will form uniform pyramids of
sand.  Try DUMP SAND at a low density once you have a relatively large pyramid
shape.  How does this effect the shape of the pyramid?  Does the pyramid ever
return to its original shape?

Try decreasing RELEASE CHANCE.  What effect does this have on the growth rate of
sand ³mountains²?

Notice the global variable spoutspace.  Try changing the number of spouts at the
top of the screen by changing spoutspace.

Does this model accurately reflect how
sand behaves?  If not what rules could you devise to more accurately model sand's
behavior?  How could they be incorporated into the model?

What effect does weight have on sand particles?  Should particles with lots of
particles above them behave differently?  If so how would this change the rules?

Try simulating erosion with this model.  How could you simulate wind?  What
effect would this have on the shape of the piles?  How could you simulate rain? 
What effect would this have on the shape of the piles?

This model is constructed exclusively with
patches.  There are some issues involved in moving patches down the screen.  In
this model if you simply move a patch down (turn a patch off and turn the patch
bellow it on) it will not move in a step wise fashion.  Due to the scanning order
of starlogo the patch will move directly to the bottom of the screen.  To
counteract this all new patches are set to green and set back to blue after all
the patches are moved.  Try eliminating the use of green patches from the code.
Change all instances of the word green to blue and comment out the procedure
greenblue in go.  What visual effect does this have on the operation of the
model?  Does this change the behavior of the model in any serious way?