The Center for Connected Learning and Computer-Based Modeling at Northwestern University is pleased to announce the release of NetLogo 6.0, available for free download from our site at https://ccl.northwestern.edu/netlogo/download.shtml (select 6.0 beta from the drop down menu).

NetLogo 6.0 is a major new release of NetLogo. The version released today is a beta release, NetLogo 6.0-beta1. It is especially important for us to get feedback and bug reports from users during this beta period, so we can optimize the NetLogo 6.0 release.

The NetLogo user community continues to experience much growth. We've had many hundreds of thousands of downloads in the past year from our website. Maintaining the large code-base, adding features to support our users, and expanding the models library requires considerable resources. Please consider making a donation at our site http://ccl.northwestern.edu/netlogo/giving.shtml. All donation sizes help.

NetLogo 6.0 introduces changes to usability, look and feel, and to the core language. One major change is that “tasks” have been upgraded to more powerful “anonymous procedures”. Anonymous procedures, unlike the tasks they replace, support the use of named arguments and allow for the creation of more powerful, flexible, readable code. The task primitive has been removed as part of the replacement, since -> is now used to create anonymous procedures. Other major changes are the addition of three new powerful extensions: ls, vid, and view2.5d. In general, we are working towards modularizing special capabilities into extensions rather than making them a part of the core language. The extensions can greatly enhance NetLogo’s capabilities.

The most major new extension is the LevelSpace extension (ls) that allows modelers to programmatically open, control, and close NetLogo models from inside NetLogo models, and code systems of multi-level models in NetLogo. For example, the Model Interactions Example model in the models library (in Code Examples/Extension Examples/ls/) connects an ecology model to a model of climate change to explore how climate change interacts with ecological systems. Other new extensions include vid, a replacement for the qtj extension and the movie- prims which offers support for playing and creating videos, and the view2.5d extension, which allows you to visualize 2d models on a 3d surface, using height to represent agent properties.

Most models created in NetLogo 5 or later will work in NetLogo 6 after automatic conversion upon first opening the model. Models created in NetLogo 4 or earlier should be opened in NetLogo 5 first and saved before opening in NetLogo 6. If you have any trouble, please consult: http://ccl.northwestern.edu/netlogo/6.0-BETA1/docs/transition.html.

The following is a list of changes made since NetLogo 5.3.1.

Feature Changes

  • The NetLogo code editor now offers autocompletion support. Simply press the Control key and the spacebar at the same time while typing a word and you will see a list of similar NetLogo primitives as suggestions.
  • NetLogo supports multi-level agent-based modeling with the LevelSpace extension
  • Line numbering can be enabled in the NetLogo code editor by choosing "Edit" > "Show Line Numbers".
  • The view resizing arrows have been removed and the tick counter has been relocated under the speed slider.
  • When editing NetLogo code, users can right-click a variable name or primitive and choose "Show Usage" to see all usages of that name in the file.
  • When editing NetLogo code, users can right-click a variable name and choose "Jump to Declaration" to see where in the file that variable is declared.
  • The NetLogo interface editor now supports "Undo" for widget addition, deletion, and movement.
  • NetLogo can export code to HTML with code-colorization by choosing "Export Code" in the "Export" section of the "File" menu.
  • The look and feel of NetLogo on Mac OS X has changed significantly. NetLogo is now using the Oracle-supplied Java look and feel as opposed to a third-party look and feel used in prior versions.
  • Plots use a random number generator independent of the main-model random number generator.
  • Model Preview Commands can be edited through the GUI by choosing "Preview Commands Editor" in the "Tools" menu. Those commands generate the preview image that appears when you upload your model to the Modeling Commons.
  • NetLogo displays a more helpful error message when a program fails due to an "out of memory" error.
  • NetLogo and its bundled extensions are now compiled against Java 8 and Scala 2.11.
  • NetLogo has upgraded the ASM bytecode library to enable generation of Java 8 bytecode.

Bugfixes

  • *-link-neighbor? primitives now work the same way for breeded and unbreeded links.
  • Resizing the world in NetLogo 3D no longer causes a black view.
  • Fixed error caused by right-clicking a widget while dragging.
  • Improved error message when a user-defined procedure shadows a breed procedure.
  • neighbors4 and neighbors no longer report agentsets containing the same patch more than once.

Language Changes

  • Support for plural-only breed names (e.g., breed [ mice ]) has been removed. Write breed [mice mouse] instead.
  • Tasks have been replaced by anonymous procedures. Tasks made use of ? variables which were confusing for novices and difficult to read for experts. Additionally, tasks could not refer to the task variables of a containing task. Anonymous procedures may have named arguments which can be accessed by inner anonymous tasks. Upon first opening a NetLogo 5 model in NetLogo 6, tasks like task [ ?1 + ?2 ] will be automatically converted to [ [?1 ?2] -> ?1 + ?2 ]. See the transition guide for more information.
  • The task primitive is no longer supported.
  • Breed names that conflict with language primitives are now disallowed. For instance, breed [strings string] is now disallowed since it makes is-string? ambiguous.
  • The compiler errors on duplicated breed singular names.
  • The compiler detects a greater number of type errors, for instance not pxcor now raises a compiler error instead of erroring at runtime.
  • set-plot-pen-color now accepts RGB lists as arguments.
  • The hubnet-set-client-interface primitive has been removed.
  • The various primitives starting with movie- have been removed, as has the movie encoder. They have been replaced with the new vid extension. The transition guide provides more details and information.
  • The __change-language primitive has been removed. You can now change the User Interface Language through the preferences dialog, which can be found by choosing "Preferences..." in the "NetLogo" menu (Mac OS X) or in the "Tools" menu (all other platforms).
  • The string representation of anonymous procedures displays the body of the anonymous procedure.

Extension Changes

  • NetLogo 6.0 comes with three new, bundled extensions: LevelSpace ls, the vid extension for video manipulation, and the enhanced visualization extension view2.5d.
    • The ls extension enables multi-level agent-based modeling in NetLogo.
    • The vid extension replaces the qtj extension and the movie- prims, offering support for playing and creating videos.
    • The view2.5d extension allows you to visualize 2d models on a 3d surface, using height to represent agent properties.
  • The Extensions API has been updated from 5.0 to 6.0. This means that all non-bundled extensions will need to be updated to use the new API. Extensions written for NetLogo 5 will not work in NetLogo 6. If you're an extension author, see the extension author transition guide for 6.0 for more information. If you regularly use extensions you may want to contact their authors to inform them a new version of NetLogo is on the way and they may want to update their extensions.
  • arduino:get (in the arduino extension) correctly reports values from Windows 64-bit machines. In prior versions it would only report some values correctly.
  • Several new features have been added to the nw extension:
    • Added community detection using the Louvain method.
    • Added modularity measurement.
    • Added Watts-Strogatz small-world network generation.
    • Made other network generation algorithms easier to layout.
    • Weighted primitives now take symbolic variable names instead of strings. See the transition guide for more information.
  • The qtj extension is no longer bundled with NetLogo. Users are encouraged to make use of the new vid extension.
  • The new vid extension is now bundled with NetLogo, combining features of the late qtj extension and the movie primitives.
  • The network extension is no longer bundled with NetLogo. Users are encouraged to use the more powerful nw extension, which has been bundled with NetLogo for some time.
  • The gogo-serial extension is no longer bundled with NetLogo. Users are encouraged to transition to the newer gogo extension, which uses HID to communicate with the GoGo board.

Operating System Support

  • NetLogo will now be used to open .nlogo links in PowerPoint and other programs on Microsoft Windows.
  • The NetLogo binaries on Mac OS X are installed as runnable by any user.
  • NetLogo in Mac OS X will not use "App Nap" while running. This keeps simulations running at full speed when NetLogo is in the background.
  • The NetLogo controlling API has changed since NetLogo 5. Programs that rely on the controlling API (such as BehaviorSearch) will not work until they have been changed to match the new API.

Documentation Changes

  • New documentation for anonymous procedures.
  • The NetLogo tutorial screenshots have been updated to correspond to the new Mac OS X Look and Feel.
  • The NetLogo dictionary displays the version in which each primitive was introduced next to that primitive.
  • A Spanish translation of the NetLogo dictionary is now available.

Internationalization Changes

  • A new Spanish translation of the NetLogo dictionary is available on the NetLogo website and included with the release.
  • Language preferences can be changed by using the new "Preferences" menu instead of the __change-language primitive.
  • A Japanese localization for NetLogo is now available and included with the standard download.
  • The Chinese translation for NetLogo has been updated.

Models

NetLogo 6.0 includes a significant number of revised, improved and new models.

All models have been adapted to use the new anonymous procedure syntax (resulting in revisions to 105 models).

Another major change is the creation of a Code Examples/Extensions Examples models library folder where all the code examples for NetLogo extensions have been regrouped.

New Sample Models:

  • Kicked Rotator
  • Kicked Rotators
  • Mammoths, a legacy StarLogoT model, has been converted to NetLogo.

New Curricular Models:

  • GenEvo curriculum:
    • GenEvo 1 Genetic Switch
    • GenEvo 2 Genetic Drift
    • GenEvo 3 Genetic Drift and Natural Selection
    • GenEvo 4 Competition

New Code Examples:

  • Movie Playing Example (vid extension)
  • Movie Recording Example (vid extension)
  • Video Camera Example (vid extension)
  • NW General Examples (nw extension)
  • Model Interactions Example (ls extension)
  • Parent Model Example (ls extension)
  • Model Visualizer and Plotter Example (ls extension)
  • CSV Example (csv extension)
  • 2.5d Patch View Example (view2.5d extension)

Promoted Models (improved and no longer "unverified"):

  • ProbLab Genetics
  • Traffic 2 Lanes

Revised Sample Models:

  • Algae: ensured use of proper day length in setup when change-day-length? is on.
  • Giant Component: added text in the info tab.
  • Team Assembly: removed unused switch widget.
  • Traffic Basic, Traffic Grid, Traffic Intersection: revised info tab.
  • Voting: stopped the model when voting stabilizes.
  • Wealth Distribution: fixed typos in info tab, improved code formatting.

Revised HubNet Activities:

  • Bug Hunters Competition HubNet, Critter Designers HubNet, Fish Spotters HubNet: removed unnecessary call to hubnet-set-client-interface.
  • Gridlock HubNet, Gridlock Alternate HubNet: revised info tab.

Revised Curricular Models:

  • DNA Replication Fork: fixed a monitor and runtime error when using a time limit.

Revised IABM textbook models:

  • Agentset Efficiency: clarified description of go-2 in info tab.
  • Agentset Ordering: fixed typos in into tab.
  • Arduino Example: improved model to demonstrate both directions of communication with the Arduino.
  • Heroes and Cowards: removed extra text in info tab.
  • Preferential Attachment Simple: removed extra pen in plot and extra "layout" button.
  • Random Network: made sure that the number of links is never too big for the number of nodes.
  • Segregation Simple Extension 1, 2 and 3: fixed number-of-ethnicities slider to avoid runtime errors.
  • Traffic Basic Adaptive Individuals, Traffic Basic Utility, Traffic Grid Goal: revised info tab.
  • Traffic Basic Adaptive: revised info tab, clarified comment in adaptive-go procedure.
  • Voting Component Verification: stopped the model when voting stabilizes.
  • Voting Sensitivity Analysis: improved code for stopping the model when voting stabilizes.

Revised Code Examples:

  • 3D Shapes Example: prevented negative size turtles and improved responsiveness of model.
  • GoGoMonitorSerial, GoGoMonitorSimpleSerial: removed the models, as the gogo-serial and qtj extensions are no longer bundled.
  • Random Network Example: made sure that the number of links is never too big for the number of nodes.
  • Since the QuickTime extension (qtj) has been replaced by the vid extension, the following models have been converted to use the vid extension:
    • Movie Example, replaced by Movie Recording Example
    • QuickTime Movie Example, replaced by Movie Playing Example
    • QuickTime Camera Example, replaced by Video Camera Example

Demoted model:

  • El Farol Network Congestion, a previously "unverified" model, has been moved to the NetLogo User Community Models

Known Issues

As NetLogo 6 is currently beta software it has a few rough edges. We encourage our users to report any bugs they find with NetLogo 6 to our bugs mailing list, and other feedback to our feedback mailing list. Here are a few issues we are already aware of:

  • Export to NetLogo Web will produce non-functional models for any models involving anonymous procedures. We expect to have this issue resolved soon.
  • On Windows, inspector windows targeted at dead agents display strange things in their views.
  • Inspector window views revert to their initial state when switching to the code tab and back to the interface tab if no forever buttons are running.
  • There are problems editing the HubNet interface after importing a HubNet client interface from the interface tab of another model.
  • The new vid extension produces videos that don't play properly in Windows (the same video plays correctly on a Mac, however). It appears to play videos created by other sources properly.
  • The arduino extension doesn't work properly in Windows 10 under 64-bit NetLogo. It does work properly running under 32-bit NetLogo. We recommend windows users who want to work with the arduino extension install the 32-bit version of NetLogo.

Credits

NetLogo was designed and authored by Uri Wilensky, project leader and director of the CCL. The core development team includes Jason Bertsche, Robert Grider, Bryan Head, Seth Tisue and Nicolas Payette. Many others have contributed greatly. HubNet was jointly designed by Uri Wilensky and Walter Stroup.

The CCL gratefully acknowledges two decades of support for our NetLogo work. Much of that support came from the National Science Foundation -- grant numbers REC-9814682 and REC-0126227, with further support from REC-0003285, REC-0115699, DRL-0196044, CCF-ITR-0326542, DRL-REC/ROLE-0440113, SBE-0624318, EEC-0648316, IIS-0713619, DRL-RED-9552950, DRL-REC-9632612, and DRL-DRK12-1020101, IIS-1441552, CNS-1441016, CNS-1441041, CNS-1138461, IIS-1438813, IIS-1147621 and DRL-REC-1343873. Additional support came from the Spencer Foundation, Texas Instruments, the Brady Fund, the Murphy fund, and the Northwestern Institute on Complex Systems.