The first flocking algorithm was written by Craig Reynolds in 1986. A recent browser implementation can be found here.

                  flock of seagulls

The notes refer to "The use of Flocks to drive a Geographic Analysis Machine" (1998) by James Macgill and Stan Openshaw which

uses a flock model, with communication between boids, to better search for clusters in spacial datasets, just as a natural flock provides better foraging than individual birds could manage.

What other real world examples of this algorithm have been used in GIS, and do any GIS applications implement this functionality?


3 Answers 3


It seems that you are looking for examples of Agent-based Modeling (ABM). There are many GIS models adopt the ABM mechanism. For example, urban planning used lots of cellular automata models that are essentially same as the flocking model. I have implemented a ABM for U.S. logistics industry using AnyLogic to detect the dynamic organizational structure for supply chain providers and users.

  • 1
    Thanks. Using the ABM terminology rather than flocking reveals a vast wealth of information such as this blog - gisagents.blogspot.com Feb 26, 2011 at 16:10

James Macgill, Stan Openshaw and I did some more work on cluster detection using flocking boids back in 1999 http://www.geocomputation.org/1999/069/gc_069.htm. This seems to have been followed up by Gianluigi Folino http://staff.icar.cnr.it/folino/papers/ppsn02.pdf. There is also Jameson Conley's work who was a student of James.


In general, implementations of ABM are written in agent-based environments, most of which aren't full fledged GIS systems but may be able to use GIS data. One of the challenges of incorporating these kinds of models into a GIS is their strong temporal aspect: each agent is changing over time in response to surrounding agents. Because a typical GIS focuses on vector and raster data, its a fairly different data model.

There is Agent Analyst which runs within ArcGIS and is due for a update to 10 in the near future, or you can take a look at the ABM packages listed on Wikipedia. Netlogo has a GIS extension which can be used to interact with spatial data, and a recent Netlogo-R bridge may give you added flexibility in the spatial component of the analysis. Netlogo is nice to experiment with because it provides a graphical environment for exploring the model, including shareable Java applets, such as this one for flocking.

Check out this recent implementation of flocking which walks through the code very clearly, neat stuff!

  • Very nice summary of options available. It was that last example that got my interest. Mar 2, 2011 at 11:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.