Agent-based and Individual-based Modeling: A Practical Introduction

NetLogo Information

NetLogo is a platform specifically for agent-based modeling: it provides a conceptual approach, a high-level programming language, graphical interfaces, automated simulation experiments, etc. NetLogo is free; available for Windows, MacIntosh, and Linux computers; and includes very complete and professional documentation and tutorials. NetLogo was written by Uri Wilensky, who founded and directs the Center for Connected Learning and Computer-Based Modeling at Northwestern University, where NetLogo is developed and maintained. NetLogo can be downloaded from their site.

The NetLogo programming information and example models in Agent-based and Individual-based Modeling: A Practical Introduction, and on this site, use Version 5 of NetLogo. (Specifically, the NetLogo codes on this web site were last revised in NetLogo version 5.0RC2, released in October 2011. They have been tested and work in NetLogo 5.2, which was released in 2015.) However, our book's text was finalized just as the first preliminary version of NetLogo 5.0 was released, so the book's text and figures do not fully represent, or make full use of, the changes between versions 4.1 and 5.0.

As of 2017, the current version of NetLogo is 6.0.2. While versions 6.x introduce several substantial changes, the models and examples in our book still work, with a very few exceptions that are now listed in the errata sheet (pdf).

Here are characteristics of NetLogo 5 and 6 that are not fully implemented in our book.

  • There is a new View setting called "Frame rate" that can have very important effects on execution speed. Its purpose is to keep the model from running too fast to observe on the View, but it can be overridden when you want higher speed. See the new Frame Rate section of the Programming Guide, which is under the heading of "View updates".
  • The "Information" tab is now called the "Info" tab, and the "Procedures" tab is now the "Code" tab.
  • Version 5 allows the Interface plots to contain the code that defines what they graph. We do not encourage use of this capability, preferring to keep the plotting code in procedures on the Code tab, where it is more visible and harder to forget about. Simply delete the command (often, plot count turtles) that is automatically inserted at "Plot update commands" in the Plot edit dialog.
  • On the Info tab, there is now a markup language letting you format text. See the new Info Tab section of the NetLogo User Manual.
  • NetLogo 5 introduced a new programming concept called "tasks", which were then superceded in NetLogo 6 with "anonymous procedures". With the exception of how anonymous procedures are used with the foreach primitive (addressed in the errata sheet), these concepts are beyond the level of programming sophistication reached in our book.

NetLogo Citation, Copyright, and Donations

When you produce and publish work using NetLogo, please remember to cite it correctly and to comply with its copyright. Information on citations and the copyright are built into NetLogo: click on "Help" in the main menu and select "About NetLogo".

We strongly encourage you to contribute to the NetLogo project at Northwestern University via their web site. You can, for example, include a contribution in your course fee or in your research project budget. (We have never had a funding agency question a "software support" budget item that contributes to a free software platform such as NetLogo.)

NetLogo Support

Having problems installing, running, or programming NetLogo? We cannot help you directly because NetLogo already has excellent user support resources. Try these:

  • The NetLogo User Manual (just click "help" in NetLogo), including its tutorials, interface and programming guides, and FAQ.

  • The "Code examples" section of NetLogo's built-in Models Library. This should be one of the first places to look to learn how to do something new.

  • The NetLogo Users Group email list, which you can find from NetLogo's help menu (just click "help", then "NetLogo Users Group"). This is an on-line forum that all NetLogo users should belong to. You can post questions to the group, but please be kind to the nice people who answer questions (out of kindness and love of NetLogo) by first searching the group's email archives thoroughly to see whether your question has already been answered.

  • The NetLogo team is now encouraging people to submit programming questions to "Stack Overflow", an on-line community of programmers that post and answer questions. Go to: http://stackoverflow.com/questions/tagged/netlogo (and, again, search the archives before posting a question).