NetLogo User Community Models
(back to the NetLogo User Community Models)
If clicking does not initiate a download, try right clicking or control clicking and choosing "Save" or "Download".
Try It in NetLogo Web
WHAT IS IT?
This is a simple simulation of falling particles.
HOW IT WORKS
Particles fall, pile-up, and flow over each other and obstacles, according to a collection of simple rules
HOW TO USE IT
This sets of the field and draws some default obstacles
This starts particles falling.
If active-mouse? is on, you can draw particles or obstacles
If draw-mode? is on, then the mouse will add and erase obstacles,
otherwise, the mouse will add particles.
The fat-pen? switch causes the mouse to draw or erase a larger block of obstacles at once.
If fill? is on, new particles are created at the top.
If drain? in on, particles are removed from the bottom.
The sliders fill-rate and drain-rate control how quickly particles are added and removed.
THINGS TO TRY
Draw in various configurations of obstacles.
Draw an hourglass.
Draw a cascade fountain.
Draw a waterfall
Draw conduits and pipes.
EXTENDING THE MODEL
There is no sense of "pressure" on the particles, so particles will not flow horizontally (except in certain cases, like along one-unit-high channels) or up-hill, like water.
So, add "pressure" : a force that can cause particles to move because of the state of particles that may be quite far away.
Falling objects accelerate as they fall. That is, they gain speed. In this model, the particles fall at a steady speed. Change the model so that the particles speed up as they fall. Careful! You need to make sure the particles don't skip past the obstacles, other particles, or the "ground"!
Particles like sand and ball-bearings don't usually just fall, land, and sit there. They often bounce when they land. In this model, particles do not bounce. Should particles landing on "sloped" surfaces bounce at a particular angle? Would it be just as well for to bounce at a random angle? How much realism is "enough"?
Implement the obstacles as turtles
The obstacles are patches. What if they were turtles? How could the model's code be optimized? Would it be faster or slower? What would that let you do?
What if there was another breed of particles that followed the same rules, but in reverse? That is, they fall *up*. How would the two kinds of particles interact? What if two particles (the particle and an anti-particle) wanted to occupy each-other's spots? Can they swap places? How would that change things?
Make a game
You can use this model as the basis for a game, like a Pachinko machine, or a game where the player must insert (or remove) obstacles to direct the particles into a goal. There may be un-removable obstacles, or un-fillable space that the player must work around. Perhaps a suite of special obstacles that add, destroy, move, or re-direct particles could be involved. Another game may involve the interaction of particles and anti-particles.
This work is copyright (c) 2004 James P. Steiner. It is licensed for use under a Creative Commons 2.0 Attribution, Non-commercial, Share-alike license.