NetLogo 6.2.2 User Manual: What's new?

# What's new?

NetLogo 6.2.2 User Manual

For help running models made in old versions, see the Transition Guide.

- Version 6.2.2 (December 2021)
- Version 6.2.1 (October 2021)
- Version 6.2.0 (December 2020)
- Version 6.1.1 (September 2019)
- Version 6.1.0 (May 2019)
- Version 6.0.4 (June 2018)
- Version 6.0.3 (March 2018)
- Version 6.0.2 (August 2017)
- Version 6.0.1 (March 2017)
- Version 6.0 (December 2016)
- Version 5.3.1 (February 2016)
- Version 5.3 (December 2015)
- Version 5.2.1 (September 2015)
- Version 5.2.0 (April 2015)
- Version 5.1.0 (July 2014)
- Version 5.0.4 (March 2013)
- Version 5.0 (February 2012)
- Version 4.1.3 (April 2011)
- Version 4.1 (December 2009)
- Version 4.0 (September 2007)
- Version 3.1 (April 2006)
- Version 3.0 (September 2005)
- Version 2.1 (December 2004)
- Version 2.0.2 (August 2004)
- Version 2.0 (December 2003)
- Version 1.3 (June 2003)
- Version 1.2 (March 2003)
- Version 1.1 (July 2002)
- Version 1.0 (April 2002)

## Version 6.2.2 (December 2021)

### Fixes and Changes

- When Agent Inspector window opens put focus in Command Line.
- When enter macOS full screen mode move inspector windows to foreground.
- Properly export models to HTML with the Save As NetLogo Web… option.
- Fixed a bug where preview images would not generate correctly for models that imported background images on setup. This affected a couple of library models: Robotic Factory and Bug Hunt Camouflage.
- Added an explanation about Extension Sample Models to the models library info screen, and now those models will be listed as unverified.
- Fixed a small typo in the FAQ for the path to the `NetLogo.cfg` file on macOS systems.
- Add a `profiler:data` primitive to the Profiler extension that returns all the profiler data as a list of lists suitable for passing to the CSV extension for output to a file.
- Fixed bug preventing typing into Command Line of first Agent Inspector window opened.
- Fixed bug causing Agent Inspector windows to appear behind NetLogo window when there is an overlap.
- Improved documentation of Fullscreen mode for the 3D view.
- Restored hotkeys for Comment / Uncomment, Shift Left, Shift Right, Jump To Declaration, and Show Usage for separate code tab.
- Added documentation for Jump To Declaration and Show Usage.
- Clarify what the BehaviorSpace Table and Spreadsheet output format options do.

## Version 6.2.1 (October 2021)

### Features and Changes

- Agent monitor inspection windows can now move across monitors
- Improved error message on BehaviorSpace file access failures
- Use a common error message for `turtle-set`, `patch-set`, and `link-set`
- Use same font for input widgets as choosers/sliders/buttons
- Select the search text on models library dialog open for easy replacement on a new search
- Automatically add the png extension when exporting the world view
- Added a preference to have NetLogo automatically load the last used model on startup
- The “mammoth” shape is available in the shapes library for easy import into models
- Substantial GIS extension improvements and new primitives, see the GIS extension changelog for more information
- Substantial Palette extension improvements and new primitives, see the Palette extension docs for more information

### Documentation Updates

- Add a note about transparent colors to the `color` dictionary entry
- Documentation for `inspect` and `stop-inspecting` now includes links
- Make sure https links in standalone dictionary entries work correctly
- Make the BehaviorSpace command-line examples use real models from the library with experiments that can be run without modification
- Link to the new Beginner’s Interactive NetLogo Dictionary site from the help menu (BIND)

### Bugfixes

- Shape changes in 3D mode will take effect without a restart
- Runtime exceptions with wrong argument types properly generate stack traces
- When sort-on receives input values that are not all numbers, all strings, or all agents of the same type, a user-friendly error message is generated
- Breeded links are properly checked for equality
- `exp` now errors when it generates an invalid, out-of-range number result
- A proper “file not found” error will be given when a model in the recent files list was deleted or moved and cannot be located
- Bundled extensions updated through the extensions manager can have those updates uninstalled through it, too, just like unbundled extensions
- Properly add the nlogo file extension when saving a model with a filename that contains dots
- When a runtime error occurs, NetLogo will show the location in the code tab, as it did in prior versions
- Detached code tab stays in front when model is saved
- Mathematica-Link: Clear up some issues with the tutorial being out-of-date
- Extension: View2.5d shape change bugfixes
- Extension: LevelSpace bugfixes for running GUI-mode models headlessly

### Models Library Changes

All external URLs in models’ INFO tabs were validated resulting in URL updates to 15 models.

#### New Sample Models:

- Limited Order Book
- River Meanders
- Robotic Factory
- Taxi Cab

#### New Curricula Models:

- CT-STEM:
- Calorimetry

#### New Code Examples:

- `palette`: Color Bubbles
- `palette`: Color Painting
- `palette`: Color Reveal

#### Sample Models

- Brian’s Brain: Rewritten erasing function for NLW compatibility.
- Crystallization Basic: Fixed issue where world size depended on `height` rather than `width`.
- Geometron Top-Down: Promoted from `unverified`. Updated INTERFACE, INFO, and CODE tabs.
- Kaleidoscope: Promoted from `unverified`. Updated INTERFACE, INFO, and CODE tabs.
- Lattice Gas Automaton: Mouse movement moved to a forever button for NLW compatibility.
- Life: Rewritten erasing function for NLW compatibility.
- Life Turtle-Based: Rewritten erasing function for NLW compatibility
- N-Bodies: Rewritten mouse handling routine for NLW compatibility.
- Planarity: Updated for NLW full compatibility
- Small Worlds: Fixed bug with clustering coefficient being undefined for single-link.
- Sunflower Biomorphs: Rewritten mouse handling routine for NLW compatibility
- Surface Walking 2D: Mouse movement moved to forever button for NLW compatibility.
- PANDA BEAR Solo: Mouse movement rewritten for NLW compatibility.

#### Code Examples

- `gis` – GIS General Examples: Rewritten to take advantage of new primitives released in `gis` v1.3.0.
- `palette` – Palette Example: Rewritten to take advantage of new primitives release in `palette` v2.0.0.

## Version 6.2.0 (December 2020)

### Features

A premier feature for this release is a pop-out code tab, that allows you to detach the code tab from the main application and into a separate window in order to view the interface and the model code side-by-side.

- The models library now shows code examples that come with extensions installed through the extensions manager.
- We now bundle the Liberica OpenJDK Java runtime instead of the Oracle Java runtime, which has a less restrictive license.
- The `mean` primitive will now work on lists that contain non-numbers as other number processing primitives do.
- The extensions manager can be disabled with a command-line switch to avoid network traffic or to lock down installed extensions.

### Bugfixes

- We’ve made changes to how we bundle NetLogo on macOS in order to satisfy Apple’s package notarization process for detecting malware. NetLogo now runs without any special workarounds, as long as your macOS settings allow running software from identified developers.
- When first opening a model and installing a new extension for it through the extensions manager prompt, the model widgets would not be usable until the model’s code was recompiled. Now the model will be ready to use right after the extension is installed.
- When using `in-cone` on wrapped worlds, occasionally turtles at the very edge of the wrapped cone would be missing from the results.
- When using `in-radius` on a patch to get nearby turtles, sometimes turtles at the edge of the radius would be missing from the results.
- The performance of a turtle lookup by breed and who-number, like `sheep 10`, could take an unreasonable amount of time.
- Models with a large amount of code (5000+ lines) would take a very long time to check and compile.

### Logging Improvements

- Logging can now be enabled and a configuration file chosen through the NetLogo preferences menu. The logging standalone application is no longer necessary, so it has been removed.
- The command line switch to set the logging directory would previously be ignored.
- Users now get a chance to add a comment to the log when they get a compiler error.

### NetLogo 3D Bugfixes

- The `in-radius` and `in-cone` primitives could give incorrect results, omitting some agents in rare cases.
- When hatching turtles the z-coordinates would sometimes not be copied from the parent turtle.
- The font size value for the world view would be ignored.
- When using `with` with patches, the results could include only patches with a zero z-coordinate.
- NetLogo 3D should run more reliably on Linux systems.

### Extension Changes

- The Time extension is now bundled with NetLogo. This extension lets you work with real-world dates and times in your model, and includes an event scheduler for triggering events at points in time. It also includes an NLS library file you can add to your model to handle time series reading from CSV files. See the Time extension docs for more information.
- The View2.5D extension has been significantly upgraded. Turtle stem color can be set by a reporter. Links are now visible in the 2.5D window. They can be visualized either going from turtle to turtle (the default) or in the xy-plane. The choice can be made using radio buttons or through new commands
- LevelSpace now always runs hidden models at full speed and should give better error messages when errors occur when loading a model.
- The Network (NW) extension will not add extra whitespace when using `nw:save-matrix`.
- The Python extension gives better error messages when the paths to the Python executables are incorrect.

### Documentation Changes

- Tutorial #1 referenced an older version of the Wolf Sheep Predation model.
- Added a couple more common problems to look out for in the BehaviorSpace guide.
- Clarify the version of NetLogo Web used to export models as HTML files.
- Clarify that the auto scale feature for plots does not scale the X axis when used with `histogram`.
- Clarify the location of the `NetLogo.cfg` files on each operating system.
- Update steps to take for common issues opening on macOS, added an alert about known issues to the download page.
- The docs for `ifelse` had some incorrect argument names.
- Add info about the Pioneer Award for the View 2.5D extension.

### Model Changes

#### New Sample Models:

- Dislocation Motion and Deformation
- Repressilator 1D
- Sex Ratio Equilibrium

#### New Curricular Models:

- CT-STEM (for more information, visit ct-stem.northwestern.edu):
- Free Fall
- Habitat Preference Behavior
- Hardy Weinberg Equilibrium
- Kidney Absorption
- Mendelian Inheritance
- Natural Selection - Camouflage
- Pendulum
- 1D Motion Maps

#### New Code Examples:

- Extension Examples
- `time` Extension - Discrete Event Mousetrap
- `view2.5d` Extension - 2.5d Turtle View Example

#### Sample Model Updates:

- Anisogamy: INTERFACE re-design, expanded INFO tab, and refactored CODE. Now includes additional BehaviorSpace experiments.
- Autumn: Minor updates to INFO tab.
- Bug Hunt Speeds: Minor updates to INFO tab.
- Fire: Minor updates to INFO tab.
- Fur: Minor updates to INFO tab.
- Grand Canyon: Minor updates to INFO tab.
- Lightning: Minor updates to INFO tab.
- Moths: Minor updates to INFO tab.
- Particle System Basic: Minor updates to INFO tab.
- Paths: Minor updates to INFO tab.
- Shuffle Board: Minor updates to INFO tab.
- Small Worlds: The INTERFACE tab has been overhauled to make the model easier to use. The INFO tab has been rewritten to be more clear and concise. The CODE tab has been restyled and now uses curved link shapes for neighbors’ neighbor links.
- Team Assembly: Minor updates to INFO tab.
- Tumor: Additional credits and references added.
- Wealth Distribution: Got rid of one line of CODE that didn’t do anything.

Our `Chemistry & Physics` folder now contains enough examples that can be classified as “Materials Science” that they deserve their own folder. This means a number of models have been physically moved into this new sub-folder of Chemistry and Physics: - Solid Diffusion - Polymer Dynamics - Lennard-Jones - Dislocation Motion and Deformation - Crystallization Models

Also in this folder are the MaterialSim models. They have been physically moved to the Curricular Models folder, but will be cross-referenced in `Chemistry & Physics/Materials Science`.

### Alternative Visualization Updates:

- Heat Diffusion - Alternative Visualization: Minor INFO tab updates.

#### Curricular Model Updates:

- BEAGLE Evolution
- Altruism: Minor INFO tab updates.
- Cooperation: Minor INFO tab updates.
- Divide the Cake: Promoted from Unverified after updates to CODE and INFO.
- Guppy Spots HubNet: Promoted from Unverified after updates to CODE and INFO.
- Chemical Equilibrium: Fix plot and monitor bug that incorrectly counted pink molecules.
- EACH (now appears as a sub-directory of the `BEAGLE Evolution` directory)

Note, the above BEAGLE models have now been physically moved into the `Curricular Models/BEAGLE Evolution/` folder. In the Models Library browser, they will appear cross-referenced in the usual places.

#### Code Examples Updates:

- `view2.5d` Extension - 2.5d Patch View Example: Fixed issue with perspective not being updated on `setup`.
- `gogo` Extension - GoGoMonitor: Minor INFO tab updates.

#### HubNet Activities Updates:

All HubNet models now include a citation for the HubNet software and their web links have been updated. This resulted in a change to 37 models in total.

#### IABM Model Updates:

- Arduino Example: Minor INFO tab updates.
- Heroes and Cowards: Minor INFO tab updates.
- Simple Economy: Updated INFO tab and now listed as a Sample Model under the `Economics` folder.

Fixed inconsistent bracket styling across IABM Textbook models. This resulted in changes to 12 models.

- Turtles Circling Simple
- Life Simple
- Wolf Sheep Simple 1
- Wolf Sheep Simple 2
- Wolf Sheep Simple 3
- Wolf Sheep Simple 4
- Wolf Sheep Simple 5
- Agentset Efficiency
- Voting Analysis
- Simple Machine Learning
- Simple Viral Marketing

## Version 6.1.1 (September 2019)

### Bugfixes

- The `remove-duplicates` primitive will now operate properly on lists of agentsets, considering agentsets duplicates if they contain exactly the same agents.
- Many fixes to the `in-radius` primitive, which could report incorrect values when used with a radius that’s a large percentage of an unwrapped world width or cause runtime errors when world sizes changed or when the radius wrapped around the world back to itself.
- Corrected issues with code tab compile errors causing unexpected behavior or runtime errors in the interface tab, especially when a model had breeded links.
- You can now use the same `let` variable name in different command blocks inside a procedure.
- The `netlogo-headless.sh` scripts for macOS and Linux had issues with running the 3D command switch and properly wrapping the Java executable in quotes in case it contains spaces.

### Features

- Runtime speed optimizations when using the `count` primitive on turtle or link agentsets with a comparison operator like `>` or `=`.

### Extension Changes

- The Python extension on Windows will no longer give permissions errors when trying to create it’s config file, moved the file to a per-user directory.
- The Python extension will no longer produce a confusing deprecation warning when used with Python 3.7.
- Moved the storage location for the R extension config files to a per-user directory and updated documentation around getting it working. This issue mostly affected Windows users.
- The Mathematica-Link add-on now works correctly with NetLogo 6.1.0 and 6.1.1.

### Documentation Changes

- Clarified the file location search order for extensions with the new extension manager.
- Standardized the language used in the conditional primitives (`if`, `ifelse`, `ifelse-value`) and the boolean operators (`and`, `not`, `or`, `xor`).
- Use correct arrow syntax in the `ifelse-value` code example.
- Added notes to `ifelse` and `ifelse-value` that the multi-conditional behavior was newly added in version 6.1.

### Model Changes

New Sample Models:

- CRISPR Models

1. CRISPR Bacterium
2. CRISPR Bacterium LevelSpace
3. CRISPR Ecosystem
4. CRISPR Ecosystem LevelSpace

- Fruit Wars Model

Sample Model Updates:

- Ant Adaptation: Minor Info tab updates.

Curricular Model Updates:

- PNoM Models: Minor Info tab updates.

## Version 6.1.0 (May 2019)

### Feature Changes

The premier feature for this release is an Extension Manager for installing and updating extensions, which is available under the Tools menu. Using extensions with NetLogo could be a painful process: manually finding them, downloading them, and getting them correctly installed in the NetLogo application. The extensions manager addresses these issues by automating the installation of many 3rd-party extensions, and the updating of the bundled extensions between NetLogo releases. All done easily from within the application. In fact, if you open a model that requires an extension you don’t have installed that it knows about, the Extension Manager will ask if you’d like to download and install it right on the spot, without any extra effort

We welcome external contributions to the extensions library! If you have developed a NetLogo extension and want to make it available to NetLogo users in the Extension Manager, see these instructions: https://github.com/NetLogo/NetLogo-Libraries#submitting-pull-requests

Other new features include:

- The primitives `ifelse` and `ifelse-value` now take a varying number of clauses, making selecting a single case from a variety of options much simpler.
- Added a new primitive, `up-to-n-of`, which gives as many items from a list as possible up to some limit, without causing an error if it cannot get all of them. Previously, to safely use `n-of` when you were unsure of the number of agents in an agentset would require some verbose code like `ask n-of (ifelse-value (count turtles-here < 10) [count turtles-here] [10]) turtles-here [ fd 10 ]`, but now you can simple write `ask up-to-n-of turtles-here [ fd 10 ]` to get the same effect.
- Added new hotkeys: Command-U for “Show Usage” of a term, Command-E for “Jump to Declaration” of a procedure, and Command-Option-S for “Save All” when using included NetLogo code files. Or Ctrl-U, Ctrl-E, Ctrl-Alt-S for Windows and Linux users.
- Multiline input widgets are now directly editable on the interface tab.
- Runtime optimizations for the `in-radius` and `in-cone` primitives.

### Bugfixes

- When a model that has a compile-time error is saved, its sliders will not reset their values to 0 when it is reloaded.
- The procedures search dropdown on the Code tab gives better results with inexact search terms.
- Plot pen names with quotes in them are properly stored and loaded.
- Plot pen names are now case-insensitive, just like other items in NetLogo.
- When a plot is deleted and the action is undone, the plot continues to work afterward.
- 2D NetLogo models saved in NetLogo 3D can be opened back into 3D, or de-converted by re-opening in NetLogo 2D.
- Widgets can no longer be re-sized to be completely outside the interface tab.
- Code comments can be used as normal within an `__includes` keyword file list.
- The error message for getting the `mean` of an empty list should now make more sense.
- Double-clicking an empty experiment list in BehaviorSpace will not cause an error.
- BehaviorSpace experiments are better about warning when there are astronomical numbers of run combinations.
- Anonymous procedures can be given in the conditional reporter blocks of `ifelse-value`.
- Slight changes to how color values are calculated, for smoother interoperability with NetLogo Web.

### Extension Changes

- The Python extension, `py`, is now bundled with NetLogo. If you have Python installed on your computer, you can use it from inside a NetLogo model.
- The Control Flow extension, `cf`, has been removed from NetLogo in favor of the new variadic `ifelse` and `ifelse-value` behavior. The `cf` extension is still available from the extensions library if needed for any existing models.
- The CSV extension, `csv`, had some minor documentation updates.
- The GoGo board extension, `gogo`, should work more reliably on Windows 10.
- The Network extension, `nw`, now loads data in a predictable order when imported, and it correctly handles preferential attachment.
- The Table extension, `table`, had some minor documentation updates.
- The View 2.5D extension, `view2.5d`, now does not throw an error when trying to use a turtle-based view.

### Documentation Changes

- Added documentation around using primitives like `mean` and `variance` along with agentsets producing slightly different results due to floating point arithmetic.
- Add an extension authoring introduction page with links to the technical documentation.
- Clarify what `clear-ticks` is meant to do.
- Clarify that `clear-globals` doesn’t affect interface globals.
- Fixed various formatting errors and typos.

### Model Changes

New Sample Models:

- Ant Adaptation
- Braess’ Paradox

New Code Examples:

- `py` Extension
  - Python Basic Example
  - Python Flocking Clusters

New Curricular models:

- PNoM Curriculum
  - PNoM 1 Diffusion Sandbox
  - PNoM 2 Diffusion Sensor Sandbox
  - PNoM 3 Virtual Syringe
  - PNoM 4 Virtual Syringe Force Graph
  - PNoM 5 Virtual Syringe Temperature Graph
  - PNoM 6 Particle Sandbox Gravity
  - PNoM 7 Particle Sandbox Intermolecular

Sample Model Updates:

- Acids & Bases Models: Dissociations now result in random headings for resulting particles.
- Mandelbrot: Exposed `max-iterations` parameter and updated Info Tab.
- Peppered Moths: Increase size of `moth` agents.
- Perceptron: Fix weight visualization bug.
- Raindrops3D: Remove unused procedure.
- Reactor X-Section: Fix typo and extend manual rod depth.
- Rock Paper Scissors: Minor Info tab updates.
- Sandpile: Minor Info tab updates.
- Simple Kinetics 1,2: Dissociations now result in random headings for resulting particles.
- SmoothLife: Allows NLW compatibility by skipping some plot drawing.
- Tumor: Prevent `ask nobody` bug when using
- Wolf Sheep Predation: Fix typos in Code tab.

IABM Model Updates:

- Segregation Simple Models (Simple & Extensions 1 - 3): Reworded comment in Code tab.

Code Example Updates:

- LS Parent Example: Change button display name to avoid confusion with `setup` button.
- Mouse Drag Multiple Example: The model has been rewritten to be NLW compatible.
- Mouse Drag One Example: The model has been updated to be NLW compatible

We’ve introduced a new subfolder in the `Sample Models/Social Science` folder: `Economics`. With this new folder, several models have been moved. The following models are now in the `Social Science/Economics` folder:

- Bidding Market
- Hotelling’s Law
- Oil Cartel HubNet
- Sugarscape
- Bank Reserves
- Cash Flow
- Wealth Distribution

With the introduction of the new variadic `ifelse` and `ifelse-value` primitives, the Models Library has been updated to reflect this new functionality. These updates are divided into three major sections:

- Add parens to `ifelse-value` expressions that are arguments of infix operator.
- Remove unnecessary parentheses from `ifelse-value` invocations for models that use `ifelse-value` with a simple infix conditional: `>`, `<`, `<=`, `>=`, and `=`. This results in changes to the following models.
- Remove now unnecessary parens from calls to `ifelse-value` with more complex conditionals.

And here are the models affected by these changes:

- Code Examples:

  - Beatbox
  - HSB and RGB Example
  - NW General Examples

- Curricular Models:

  - BEAGLE: DNA Protein Synthesis, DNA Replication Fork
  - GenEvo 1 Genetic Switch
  - Lattice Land - Explore
  - ModelSim: Bacteria Food Hunt
  - NIELS: Current in a Wire HubNet
  - ProbLab: 4 Blocks, 4 Block Stalagmites, 4 Block Two Stalagmites, Histo Blocks

- HubNet Activities:

  - Minority Game HubNet
  - Predator Prey Game HubNet
  - Prisoners Dilemma HubNet
  - Root Beer Game HubNet

- IABM Textbook:

  - Traffic Basic Adaptive Individuals

- Sample Models:

  - Artificial Neural Net - Multilayer
  - Artificial Neural Net - Perceptron
  - Bidding Market
  - Blood Sugar Regulation
  - DLA Alternate Linear
  - DLA Alternate
  - Echo
  - Hotelling’s Law
  - Language Change
  - Minority Game
  - Robby the Robot
  - Signaling Game
  - Simple Genetic Algorithm
  - Tabonuco Yagrumo
  - Tabonuco Yagrumo Hybrid
  - Traffic 2 Lanes
  - Vision Evolution

## Version 6.0.4 (June 2018)

### Feature Changes

- NetLogo now supports the Portuguese language.
- BehaviorSpace allows optionally disabling plots and the view when running experiments.

### Bugfixes

- Updated the bundled Java 8, which should resolve an issue with NetLogo failing to start on Windows computers.
- Fixed a bug with the nw extension preferential attachment generation and initialization.
- Fixed a numerical error with the `range` primitive.
- Fixed a bug with link lookup when using more than two link breeds.
- Comment and uncomment code hotkeys should work with NetLogo include source files.
- Added a better error message when a web browser couldn’t be launched for any reason.

### Documentation Changes

- Document that `resize-world` only kills all turtles when coordinates really change.

### Model Changes

#### New Curricular Models

- Mind the Gap Curriculum
- MTG 1 Equal Opportunities HubNet
- MTG 2 Random Assignment HubNet
- MTG 3 Feedback Loop HubNet

#### Revised Sample Models

- Blood Sugar Regulation: Updated statistical sampling procedures
- Flocking: Changed default `vision` to `5.0` patches
- Rumor Mill: Fixed a minor bug with the spread statistics in early ticks

#### Revised Code Examples

- Flocking (Perspective Demo): Changed default `vision` to `5.0` patches

#### Revised Curricular Models

- GenEvo - GenEvo 1: Fixed `save screenshot` bug on Windows machines
- GenEvo - GenEvo 2: Fixed `save screenshot` bug on Windows machines
- GenEvo - GenEvo 3: Fixed `save screenshot` bug on Windows machines

#### Revised Alternative Visualizations

- Flocking (Alternative Visualizations): Changed default `vision` to `5.0` patches

## Version 6.0.3 (March 2018)

### Feature Changes

- Improve the look & feel of Agent Monitor windows.
- The procedures menu in the code tab now has a search field and actively filters procedure names as the user types. This should improve navigation speed for large models with lots of procedures. There is also now a hotkey to access this menu: Ctrl-G on Windows and Linux, and Cmd-G on MacOS.
- Increase the speed of the `diffusion` primitive and make the diffusion operation symmetric.
- NetLogo enforces that plot names are unique and that pen names are per-plot unique without taking capitalization into account. This avoids certain cases where `set-current-plot` and `set-current-plot-pen` primitives would set the plot or pen to something different than the user intended because names differed in capitalization only.
- Models with existing plots and pens which have the same name without taking capitalization into account will be automatically converted on first open in 6.0.3.
- We are planning on adding the ability to have multiple conditional branches to `ifelse` and `ifelse-value`. However, as this is a fairly substantial change to the core language, we have implemented it in the cf extension for testing. See the `cf` documentation for information about the new syntax.

### Documentation Changes

- Add a table to the Output section of the Programming Guide specifying how the various output primitives differ in whether they print the calling agent, whether they print a newline, and whether they can be read back into NetLogo.

### Bugfixes

- Anonymous procedures appearing inside `ask` blocks inside `repeat` blocks now close over unique copies of let-variables introduced in the `repeat` block.
- Fix a longstanding HubNet bug in which HubNet would sometimes crash as a large number of users joined.
- Fix HubNet discovery when the HubNet server is run on a Mac.
- When switching from the code tab to the interface tab, the cursor switches to the command center. This prevents typed commands or copy/paste keyboard shortcuts from affecting the code tab.
- Turtles draw trails when moving backwards (regression in NetLogo 6.0.1).
- Smooth Code Tab scrolling.
- BehaviorSpace now only applies standard CSV string escaping (doubling of double quotes) to string outputs in result files. It used to apply NetLogo style string escaping (backslashes in front of special characters) and then apply CSV escaping on top of that. The new behavior is consistent with the RFC 4180 specification and the current behavior of the `csv` extension.
- The Behaviorspace dialog appears centered in the NetLogo window.
- Due to changes introduced in Java, certain dialogs in NetLogo 6.0.1 would appear under the dialog that created them instead of on top. These dialogs now appear on top of the dialog that created them.
- Non-code changes to the System Dynamics modeler are pulled in on every recompile (prior to this, changes like newly-disconnected flows were sometimes not taken into account on recompiles).
- The system dynamics code tab adjusts itself to match the size of the system dynamics window.
- NetLogo 3D loads and saves system dynamics.
- Fixes an error raised in 3D when the world was cleared following setting a patch-color to an RGB list.
- Miscellaneous small changes to the format of exported worlds. NetLogo 6.0.3 should be able to import worlds exported by older versions of NetLogo and older versions of NetLogo should be able to import worlds exported by NetLogo 6.0.3.
- The “others” execute bit is set for the netlogo-headless.sh script in the Linux installer package.

### Extension Changes

- `nw:generate-preferential-attachment` accepts a `min-degree` parameter, specifying the number of links each new turtle preferentially creates to existing turtles.
- The `arduino` extension (and the related sketch and model in the library) have been updated to allow the arduino to send strings back to NetLogo. Two new debug primitives have also been added to help troubleshoot interaction between NetLogo and the arduino.
- The verbose `cf` extension conditional syntax as been replaced with straight-forward generalizations of the `ifelse` and `ifelse-value` primitives. The syntax is much simpler and these primitives run much faster than the old constructs.
- The `ls` extension has much less overhead for calling out to single models, making constructs like `ask turtles [ ls:ask my-model [ run-something ] ]` much faster.
- The `ls` extension now seeds the child model RNG based on the parent model RNG at model creation. Furthermore, and `ls:random-seed` primitive has been introduced, so an entire model system can be seeded simultaneously. This makes it possible to have reproducible runs when using LevelSpace.
- The `ls:let` primitive now handles scoping properly.
- `ls:assign` has been added to LevelSpace to make assigning globals of child models easier.

### Documentation Changes

- Clarify documentation around `__includes` by providing examples.
- Fix a broken link in the dictionary.
- Update the Windows unattended installation directions in the FAQ.

### Model Changes

#### New Sample Models:

- Bidding Market
- Blood Sugar Regulation
- Rock Paper Scissors
- Vision Evolution

#### New Curricular Models

- NIELS - Current in a Wire HubNet

#### New HubNet Activities:

- Current in a Wire HubNet (same as above)

#### Revised Code Examples:

- `arduino` Extension: The example model and sketch have been updated to reflect new features in the extension
- `sound` Extension – Sound Workbench: Minor GUI updates
- `sound` Extension – Percussion Workbench: Minor GUI updates
- File Input Example: Fixed a bug in the `save-patch-data` template procedure
- Lottery Example: Corrected Related Models from Preferential Attachment to the `Rnd` Example Model in the Info Tab
- Info Tab Example: Corrected reference from `pegdown` to `flexmark` in the Info Tab

#### Revised Curricular Models:

- BEAGLE Evolution - Fish Tank Genetic Drift: Update duplicate plot-pen names and resize plots
- GenEvo - GenEvo 4: Replaced usage of `cf:when` with nested `ifelse`s
- Lattice Land - Lattice Land Explore: Fixed bug when deleting a segment that didn’t exist.
- Lattice Land - Lattice Land Triangles Dissection: Fixed bug when deleting a segment that didn’t exist.
- NIELS - Electrostatics: All turtles are now `particles` and each `particle` has a charge; Changed particle coloring; Updated Info Tab and some variable names to reflect later NIELS models
- Urban Suite - Tijuana Bordertowns: Minor Info Tab updates.

#### Revised Sample Models:

- Artificial Anasazi: Update broken URLs in Info Tab
- Autumn: Update broken URLs in Info Tab
- HIV: The `AIDS` model has been renamed to `HIV`†
- Color Fractions: Removed direct reference to dead web page in Info Tab
- Fairy Circles: Update URLs in Info Tab
- Fur: Update broken URLs in Info Tab
- Hex Cell Aggregation: Update broken URLs in Info Tab
- Ising: Update broken URLs in Info Tab
- Kicked Rotators: Update broken URLs in Info Tab
- Language Change: Update URLs in Info Tab
- Lennard-Jones: Added citation in the Info tab
- Lightning: Update URLs in Info Tab.
- L-System Fractals: Update broken URLs in Info Tab
- Membrane Formation: Update broken URLs in Info Tab
- Moth: Update URLs in Info Tab
- Party: Fix incorrect comment on turtle headings.
- PD Basic: Minor GUI updates
- Segregation: Update broken URLs in Info Tab. Update color scheme for color blindness. Minor GUI updates. Minor Info Tab updates.
- Sugarscape 1 Immediate Growback: Fixed “Wealth distribution” histogram bug (`turtle` with max `sugar` was not displayed)
- Sugarscape 2 Constant Growback: Fixed “Wealth distribution” histogram bug (`turtle` with max `sugar` was not displayed)
- Sugarscape 3 Wealth Distribution: Fixed “Wealth distribution” histogram bug (`turtle` with max `sugar` was not displayed)

#### Revised IABM Models:

- Arduino Example: The example model and sketch have been updated to reflect new features in the extension (same as above)
- Segregation Simple Extension 1: Update broken URLs in Info Tab
- Segregation Simple Extension 2: Update broken URLs in Info Tab
- Segregation Simple Extension 3: Update broken URLs in Info Tab
- Segregation Simple: Update broken URLs in Info Tab

#### † - Models Updated to Correctly Reference the HIV Model

- Alternative Visualizations
- Virus - Alternative Visualization
- Virus - Circle Visualization
- Curricular Models
- epiDEM Basic
- epiDEM Travel and Control
- IABM Models
- Spread of Disease
- Sample Models:
- Disease Solo
- Virus
- Rumor Mill

## Version 6.0.2 (August 2017)

### Feature Changes

- The autosuggest functionality introduced in NetLogo 6 will now display extension primitive names.
- A new `insert-item` primitive was added to the language. It works similarly to `replace-item`, but without removing the item at the specified index.
- A new `set-plot-background-color` primitive was added to the language. It can be used in plotting code to set the background color of the plot.
- Behaviorsearch’s user interface has been updated. It now uses the JavaFX UI toolkit for a more modern look and feel.

### Bugfixes

- The 6.0.1 autoconverter would error when converting tasks with exactly one argument (from 5.3.1 and earlier models only). The conversion would be correct, but it was confusing. This has now been remedied and the autoconverter will correctly convert models from 5.3.1 and earlier without erroring on single-argument tasks.
- Fix a bug where extensions weren’t located properly when in a path relative to the model.
- Help browser now opens in 64-bit Windows.
- Fix a speed regression for the `import-world` primitive introduced in 6.0.
- If an unexpected reporter block is passed to `with` when used with `other`, the error will now reflect that the block is unsuitable for `with` instead of `other`.
- When `sort-by` receives an unsuitable reporter block from the user it now shows a useful error instead of a cryptic stack trace.
- String representations of anonymous procedures now show the arguments of those anonymous procedures
- When working in an nls file, switching to a different tab will compile the nls file.
- Display error label on nls file when the code it contains causes an error.
- Some users were unable to open NetLogo 6 and 6.0.1 in Mac OS Sierra. We’ve changed our signing process in 6.0.2 to attempt to fix this problem. We are continuing to track this issue to determine whether our fix was effective. More information (including a partial workaround for the problem) is available here.

### Extension Changes

- Fixed a bug in `gis:patch-dataset` introduced in NetLogo 6.
- The table extension has new `table:group-agents` and `table:group-items` primitives which can be used to build a table of grouped agents and items by supplying an anonymous reporter.

### Documentation Changes

- Clarify when various parts of the anonymous procedure syntax are optional.
- Fix a few small documentation bugs around `foreach`.
- Clarify relationship between speed and update modality in the “View Updates” section of the programming guide.

### Model Changes

#### New Sample Models:

- Chaos in a Box
- Fairy Circles
- SmoothLife

#### New Curricular Models:

- Lattice Land Curriculum
  - Lattice Land - Triangles Explore
  - Lattice Land - Triangles Dissection

#### Revised Sample Models:

- Anisogamy: New color scheme. Adds BehaviorSpace experiments.
- Ethnocentrism: Now cross-listed as an Evolutionary model.
- Fireworks: Rename `fireworks` to `max-fireworks` and enforce a minimum of 1.
- GenJam - Duple: Minor info tab updates.
- Wolf Sheep Predation: Revised to better clarify the `grass?` construct and code.

#### Revised Curricular Models:

- Connected Chemistry:
  - Connected Chemistry 1: Fix NetLogo Web incompatibility.
  - Connected Chemistry 3: Update minimum number of particles to 2.
  - Connected Chemistry 8: Minor code updates. Small change to default values.

#### Revised HubNet Activities:

- Gridlock HubNet: Minor code updates.

#### Revised Code Examples:

- Info Tab Example: Corrected formatting of un/ordered lists example.
- LS Extension – Model Visualizer and Plotter Example: Updated code dependencies for WSP.
- LS Extension – Model Interactions Example: Updated code dependencies for WSP.

## Version 6.0.1 (March 2017)

### Feature Changes

- Brackets are required around anonymous procedure reporters only when there are two or more arguments. For instance `[ [x] -> x ]` can now be written `[ x -> x ]`. Note this change makes it possible to create models in NetLogo 6.0.1 that will not run in NetLogo 6.0. If you plan to use your model in NetLogo 6.0, be sure to include brackets around anonymous procedure arguments. For a short period after the release, models which use unbracketed lambda arguments may not work on netlogoweb.org.

### Bugfixes

- The NetLogo code editor navigates and indents models much more quickly and efficiently than in NetLogo 6.0.
- The NetLogo 5-to-6 autoconverter now ignores commented-out code.
- The behavior of layout-radial in NetLogo 6 did not match the 5.3.1 behavior. This has been corrected and layout-radial should be identical between NetLogo 6.0.1 and NetLogo 5.3.1
- NetLogo 6 raised a NullPointerException when numbers became too large for NetLogo to handle. This is now properly displayed to the user as a number out of bounds error.
- Improved performance of models which use `let` and anonymous procedures together.
- Reloading a model now clears global variables.
- Clearer warning dialogs when opening an older version of a NetLogo 2D file in NetLogo 3D.
- Using `foreach` improperly in the Command Center will display the same error as it would if used improperly in the code tab.
- Extremely long anonymous procedures no longer cause an exception when compiled.
- `in-radius` is no longer pathologically slow on agentsets created using `with`.

### Extension Changes

- A new primitive, `table:values` has been added to the table extension.
- The R extension has been updated to take full advantage of the JavaGD R library using `r:setPlotDevice`.
- Users can now supply a path to the R extension by configuring the value of r.lib.paths in the user.properties file.
- Fixed a LevelSpace bug preventing interactive models from using nls files.
- Fixed a LevelSpace bug causing NetLogo to lock up when trying to load a nonexistent file as an interactive model.

### Documentation Changes

- The system dynamics tutorial now instructs the user to set the `dt` to a value which gives stable behavior
- The documentation for `follow`, `ride`, and `watch` has been clarified to indicate that calling one undoes highlights and perspective changes caused by the other
- The documentation for `=` and `!=` indicates that they work with extension objects.
- Several examples have been added to `sort` clarifying the behavior of `sort` on lists featuring different types of objects.
- A new section on User Interface primitives has been added to the programming guide which discusses the behavior of the “Halt” button in the various user interaction dialogs.
- Incorrect example code for `foreach` and `reduce` has been corrected.

### Models

All models have been updated to reflect the new optional nature of brackets for zero/one argument anonymous procedures. This resulted in changes to 108 models.

All models have been updated to reflect the availability of the new range primitive. This resulted in changes to 12 models.

#### New Sample Model

- GenJam - Duple

#### New Curricular Model

- Lattice Land curriculum:
  - Lattice Land Explore

#### Revised Sample Models

- PD 2 Person Iterated: info tab updates and extensive fixes for the code.
- Party: fixed bug where a monitor covered a plot.
- Signaling Game: info tab updates.

#### Revised Curricular Models

- GenEvo curriculum:
  - GenEvo 1 Genetic Switch: info tab updates and new graduated method of displaying lacZ concentration.
  - GenEvo 2 Genetic Drift: info tab updates and interface tweaks. New model preview.
  - GenEvo 3 Genetic Drift and Natural Selection: info tab updates and interface tweaks.
  - GenEvo 4 Competition: info tab updates.
  - Genetic Switch - Synthetic Biology has been renamed and is now Synthetic Biology - Genetic Switch. It also received info tab updates and a few interface changes.

## Version 6.0 (December 2016)

### 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.
- The NetLogo code editor offers the option to “fold” procedures to make navigating large models simpler.
- NetLogo supports multi-level agent-based modeling with the LevelSpace extension
- Line numbering can be enabled in the NetLogo code editor by choosing “Show Line Numbers” from the “Preferences” dialog. This dialog can be opened by selecting “NetLogo” > “Preferences” in Mac, or “Tools” > “Preferences” on Linux or Windows.
- 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.12.
- 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 the transition guide for more information.
- Link reporters have been overhauled to be more consistent and flexible
- 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`.
- `ls` enables multi-level agent-based modeling in NetLogo.
- 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 `nw` extension (https://ccl.northwestern.edu/netlogo/docs/nw.html), 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 available here

### Internationalization Changes

- A new Spanish translation of the NetLogo dictionary is available as part of the NetLogo manual.
- 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

#### New Sample Models:

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

#### New Curricular Models:

- 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)
- Network Extension General Demo (`nw` extension)
- Model Interactions Example (`ls` extension)
- Model Loader Example (`ls` extension)
- Model Visualizer and Plotter Example (`ls` extension)

#### Promoted Models (improved and no longer “unverified”):

- ProbLab Genetics
- Traffic 2 Lanes

#### Revised Sample Models:

- 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 a monitor and runtime error when using a time limit.

#### Revised IABM 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:

- 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

## Version 5.3.1 (February 2016)

### Feature Changes

- Mathematica Link is now included and has been tested to work with Mathematica 10.
- A link to Introduction to Agent-Based Modelling has been added to the “Help” menu.

### Extension Changes

- The gogo extension now prompts the user for the location of Java upon opening. This version of Java is used to launch the gogo hid daemon.
- The correct version of the network extension is now bundled, which will open properly
- Bundles the cf extension, which adds match, case, and select primitives.

### Bugfixes

- Corrects a bug where turtles wrapping around a torus-shaped world with pen down would sometimes cause NetLogo to loop infinitely.
- Fixes a bug where buttons would appear to remain pressed after a right click on Mac.
- Fixes a bug where pressing the right mouse button while dragging would confuse the mouse-down? primitive.
- Fixes agent type-checking of tasks (bug appeared in 5.2.1).
- link-neighbor? now returns true if and only if the neighbor is connected through an undirected link.
- Documentation fixes for my-links and mean primitives.

## Version 5.3 (December 2015)

### Feature Changes

- Java 8 is now bundled with all versions of NetLogo, this removes the need for a separate Java 6 installation on Mac OS X
- Separate 32-bit and 64-bit versions are available for both Windows and Linux
- The Windows installer is now an msi instead of an exe
- javax.media.opengl is no longer supported in Java 8, it has been replaced by com.jogamp.opengl
- Mathematica Link is not distributed due to Java version changes

### Extension Changes

- A minor update to the `nw` extension makes `nw:weighted-path-to` behave as documented.
- Most extensions should continue to work without change unless they rely on javax.media.opengl, which was renamed in the updated version of JOGL.

## Version 5.2.1 (September 2015)

### Extensions

- An included Arduino extension for use with Arduino boards

### New features

- New file menu item to export models to NetLogo Web

### Bug fixes

- BehaviorSpace output type preference is now remembered
- Output widget font is now saved at the proper size when zoomed
- Reporter tasks are now evaluated in variable context
- `runresult` arguments now only get evaluated once
- The last used directory is now remembered on Linux
- Whitespace is now stripped from models when saving

- New Sample Models: Artificial Anasazi, Bacteria Food Hunt, Bacteria Hunt Speeds, BeeSmart - Hive Finding, Bug Hunt Disruptions, Bug Hunt Environmental Changes, Bug Hunt Predators and Invasive Species - Two Regions, Hydrogen Diffusion 3D, Lennard-Jones, Paths

- There are 46 new models in the new IABM Textbook folder: Turtles Circling Simple, Ants Simple, Heroes and Cowards, Life Simple, Simple Economy, 4 DLA extensions, 4 El Farol Extensions, 4 Fire Extensions, 4 Segregation Extensions, 5 Wolf Sheep Extensions, Agentset Efficiency, Agentset Ordering, Communication-T-T Network Example, Preferential Attachment Simple, Random Network, Traffic Basic Adaptive, Traffic Basic Utility, Traffic Grid Goal, Spread of Disease, Voting Component Verification, Voting Sensitivity Analysis, Arduino Example, Disease With Android Avoidance HubNet, Example HubNet, Run Example, Run Result Example, Simple Machine Learning, Simple Viral Marketing, Ticket Sales, Sandpile Simple
- New models in the new Alternate Visualizations folder: Ethnocentrism - Alternative Visualization, Flocking - Alternative Visualizations, Heat Diffusion - Alternative visualization, Virus - Alternative Visualization, Virus - Circle Visualization
- Promoted models: Honeycomb, Minority Game
- Many other bugfixes and upgrades

### Model changes

- Improved Sample Models: Altruism, Ant Lines, Artificial Anasazi, Cooperation, Daisyworld, Divide the Cake, Heat Diffusion, Hydrogen Diffusion 3D, Lennard-Jones, N-Bodies, PD Basic Evolutionary, Sandpile, Robby the Robot, Segregation, Simple Kinetics 2 and 3, Traffic Grid, GridLock HubNet, GridLock HubNet Alternate
- Revised Curricular Models: 4 Block Stalagmites, 4 Block Two Stalagmites, Bug Hunter Competition HubNet, Fish Spotters HubNet, Ising, Tijuana Bordertowns, Urban Suite - Tijuana Bordertowns,
- Revised Code Examples: Lottery Example, self Example, Network Import Example
- Revised IABM Textbook models: Simple Economy, Fire Simple Extension 2 and 3, Segregation Simple, 1, 2 and 3, Agentset Efficiency, Preferential Attachment Simple, Random Network, Traffic Basic Adaptive, Run Example, Traffic Grid Goal,
- New IABM Textbook model: Traffic Basic Adaptive Individuals

## Version 5.2.0 (April 2015)

### Extensions

- An included CSV extension to read and write CSV files
- An included Palette extension to map different values to colors
- The previous gogo extension has been removed. It has been replaced with two different gogo extensions, gogo and gogo-serial. The extensions work with different hardware. The gogo extension works with the new style HID-interface gogo boards and the gogo-serial extension works with the old-style serial-interface gogo boards
- Upgrade to the network extension including the following changes:
  - Support for many more file types, including GEXF, GDF, GML, Pajek NET, UCINET DL, and Netdraw VNA
  - Fixed bugs with GraphML support
  - Improved documentation

### New features

- New primitive `netlogo-web?` added to test whether you are currently running in NetLogo Web
- New primitive `behaviorspace-experiment-name` added allowing you to get the name of the currently running experiment
- New primitive `stop-inspecting` to stop inspecting agents
- New primitive `stop-inspecting-dead-agents` and menu item to stop inspecting dead agents
- `__includes` keyword now enables the Includes button when given an empty
- hooks added for extensions to write custom log messages

### Bug fixes

- `user-one-of` will now signal an error earlier when provided an empty list of choices
- `hsb`, `extract-hsb`, and `approximate-hsb` have been updated to represent true hsb conventions
- new deprecated primitives `__hsb-old`, `__extract-hsb-old`, and `__approximate-hsb-old` work as the old hsb primitives did when older models using the hsb primitives are opened in NetLogo 5.2, they will be auto-converted to use the deprecated primitives
- `extract-hsb` – fixed bug where it didn’t work correctly on rgb lists

### Model changes

- New Sample Models: Artificial Anasazi, Bacteria Food Hunt, Bacteria Hunt Speeds, BeeSmart - Hive Finding, Bug Hunt Disruptions, Bug Hunt Environmental Changes, Bug Hunt Predators and Invasive Species - Two Regions, Hydrogen Diffusion 3D, Lennard-Jones, Paths
- There are 46 new models in the new IABM Textbook folder: Turtles Circling Simple, Ants Simple, Heroes and Cowards, Life Simple, Simple Economy, 4 DLA extensions, 4 El Farol Extensions, 4 Fire Extensions, 4 Segregation Extensions, 5 Wolf Sheep Extensions, Agentset Efficiency, Agentset Ordering, Communication-T-T Network Example, Preferential Attachment Simple, Random Network, Traffic Basic Adaptive, Traffic Basic Utility, Traffic Grid Goal, Spread of Disease, Voting Component Verification, Voting Sensitivity Analysis, Arduino Example, Disease With Android Avoidance HubNet, Example HubNet, Run Example, Run Result Example, Simple Machine Learning, Simple Viral Marketing, Ticket Sales, Sandpile Simple
- New models in the new Alternate Visualizations folder: Ethnocentrism - Alternative Visualization, Flocking - Alternative Visualizations, Heat Diffusion - Alternative visualization, Virus - Alternative Visualization, Virus - Circle Visualization
- Promoted models: Honeycomb, Minority Game
- Many other bugfixes and upgrades

## Version 5.1.0 (July 2014)

- bundle new network extension
- File menu includes recently opened files
- deprecate applets
- support retina display on new MacBooks

## Version 5.0.4 (March 2013)

- upload models to the Modeling Commons

## Version 5.0 (February 2012)

- features:
  - open source (GPL license; source code online at https://github.com/NetLogo/NetLogo)
  - new license for Sample Models and Curricular Models is Creative Commons Attribution-NonCommercial-ShareAlike
  - international characters (Unicode) supported throughout application
  - GUI is localized in Spanish, Russian, and Chinese (volunteer translators wanted)
  - rich formatting and images in Info tabs using Markdown
  - plotting code goes inside plots instead of in code tab
  - authorable model speed (target frame rate setting)
  - buttons optionally disable until ticks start
  - translucent colors in 3D view and NetLogo 3D (for RGB colors only)
- language changes:
  - “tasks” store code to be run later
    - aka first-class functions, closures, lambda
    - new primitives: `task`, `is-command-task?`, `is-reporter-task?`
    - these primitives accept tasks: `run`, `runresult`, `foreach`, `map`, `reduce`, `filter`, `n-values`, `sort-by`
  - improved overall list performance (many operations take near-constant time instead of linear time)
  - you must use `reset-ticks` to start the tick counter before using `tick` or `tick-advance`
  - new primitives `setup-plots` and `update-plots`
  - new primitive `sort-on` lets you say e.g., `sort-on [size] turtles`
  - new primitive `error` causes a runtime error
  - `random-normal` rejects negative standard deviations
- HubNet:
  - activities can run headless
  - new primitives `hubnet-clients-list`, `hubnet-kick-client`, `hubnet-kick-all-clients`
  - `hubnet-set-client-interface` no longer required
- other fixes and changes:
  - tabs renamed to Interface/Info/Code
  - Command Center allows reporters, adds `show` command automatically
  - NetLogo 3D uses .nlogo3d suffix, not .nlogo
  - `import-world` is much faster
  - `startup` no longer runs headless or in background BehaviorSpace runs
  - fixed 3D rendering bug where small turtles were too bright
  - Mac app runs in 64 bit mode by default
  - upgraded Windows installer
  - GoGo extension getting-started experience now smoother on all platforms
- models:
  - new Sample Models: Sandpile, Lightning, Osmotic Pressure, Robby the Robot, Preferential Attachment 3D
  - new Curricular Models: Bug Hunt Consumers, Bug Hunt Predators and Invasive Species, Plant Speciation, epiDEM Basic, epiDEM Travel and Control, Connected Chemistry Atmosphere
  - new Code Examples: Info Tab Example, GoGoMonitorSimple

## Version 4.1.3 (April 2011)

- matrix extension
- `behaviorspace-run-number`

## Version 4.1 (December 2009)

- parallel BehaviorSpace
- controlling API allows embedding
- automatic code indenter
- searchable Models Library
- translucent colors
- mini-views in agent monitors
- `resize-world`, `set-patch-size`
- bitmap, QuickTime extensions
- individualized HubNet client views
- browser-based HubNet client

## Version 4.0 (September 2007)

- link agents
- tick counter
- view update modes (tick-based, continuous)
- speed slider fast forwards
- input boxes in interface tab
- include multiple source files
- RGB colors
- slider bounds may be reporters
- HubNet client editor
- Mathematica-NetLogo link
- array, table, profiler, GIS extensions
- models run faster (partial compilation to JVM byte code)
- logging

## Version 3.1 (April 2006)

- topologies (optional wrapping at world edges)
- randomized agentset ordering

## Version 3.0 (September 2005)

- 3D view (for 2D models)
- formatted Info tabs
- System Dynamics Modeler
- `follow`, `ride`, `watch`
- drawing layer
- GoGo extension

## Version 2.1 (December 2004)

- “headless” mode for command line operation
- “action keys” to trigger buttons by keypresses
- makes QuickTime movies of models
- `let`, `carefully`

## Version 2.0.2 (August 2004)

- extensions and controlling APIs
- sound extension

## Version 2.0 (December 2003)

- fast, flicker-free, non-grid-based graphics

## Version 1.3 (June 2003)

- `run`, `runresult`, `map`, `foreach`, `filter`, `reduce`

## Version 1.2 (March 2003)

- computers as HubNet clients

## Version 1.1 (July 2002)

- Applets

## Version 1.0 (April 2002)

- first full release (after a series of betas)