NetLogo Web

June 5th 2024 - v2.11.4

This release includes a few small improvements and bugfixes.

  • Single line code input will now only allow single lines to be entered.
  • Support a small performance optimization when using code like any? breeds-on [...].
  • Plots that generate runtime errors will no longer popup the alert window, blocking the model from running.
  • In NetTango Web, code input widgets in the NetLogo model will now properly fill their widget space.

May 8th 2024 - v2.11.3

This release includes a few small improvements and bugfixes.

  • NetLogo Web won't crash if an unexpected JavaScript message is passed to its model window. This could be a problem when using certain web browser extensions.
  • A meaningful error message will be displayed if a NetLogo Web model page is loaded without JavaScript enabled or if an error occurs in initializing the NetLogo Web code. Previously the "model loading" spinner could display indefinitely.
  • An error will no longer occur when a model generates lots of drawing events during a tick. Additionally, the speed of processing drawing events is slightly improved.

March 21st 2024 - v2.11.2

This release includes a few small bugfixes.

  • Runtime errors will properly link to the location in code where they occured.
  • Plot lines will display correctly when going "backwards".
  • Make sure action keys work when buttons have focus.
  • Make sure the procedures dropdown is always visible.
  • Properly raise an event when widgets are deleted.
  • Support a small performance optimization when using code like any? turtles-on [...].

January 31st 2024 - v2.11.1

This release includes a few small bugfixes.

  • Widget dragging and resizing again works as expected in Mozilla Firefox.
  • Link shapes arrows are always drawn on top of its lines and the right/left lines (if used) are not reversed for directed links.
  • Performance optimization for non-left-to-right plot pens will apply to just the affected pen and not all pens on a plot. Previously this could cause strange pen draw ordering and display.
  • The world size can now be edited after a code recompile.
  • When adding new widgets via the context menu, they will appear in the expected location even if the window is scrolled.

December 4th 2023 - v2.11.0

This release adds compatibility with some NetLogo 6.4 features, including updates to the models library.

  • Support multi-variable assignment with let and set.
  • Support the new who-are-not reporter for agentset disjunction.
  • Plot error messages will correctly include the plot's name.
  • The CSV extension will correctly parse strings that start with numbers as text.
  • When a model has errors in the NetLogo code, those errors will be displayed first before displaying errors from the plot widgets that may be caused by the code errors.
  • New FAQ entries have been added about best practices for using mouse prims and looping constructs in NetLogo Web.

October 17th 2023 - v2.10.8

This release includes a few small improvements and fixes.

  • You can now export HTML versions of a model from already-exported HTML files.
  • Unbreeded agents will now render after breeded agents, matching desktop NetLogo's behavior.
  • Any linked models you have edited that are in your browser local storage will be displayed in a list on the settings page so you can just right back in.
  • Monitors and plots now correctly use auxillary random number generators, so they don't affect the main behavior of a model.
  • Command and reporter strings used for run and runresult are cached separately, to avoid some odd errors.
  • The performance of link neighbor checks is slightly improved.
  • Table extension: Using a non-array table key that doesn't exist will throw a more meaningul error message.

May 11th 2023 - v2.10.7

This small release includes a fix to get NetTango Web working correctly again.

May 1st 2023 - v2.10.6

The primary feature in this release is a user settings page. Now NetLogo Web users can set their preferred code and commands position, disable the work in progress autosave, and set their preferred language locale to something other than their browsers default. We hope to add more settings for more features in the future.

  • The String extension is now supported in NetLogo Web.
  • The remove reporter will no longer inadvertantly treat its pattern argument as a regular expression.
  • Let the scatter plot performance boost apply in more cases.
  • Prevent the scatter plot performance boost from applying to histograms where it does not help.
  • Histogram plot display was changed slightly to try to make it legible with numerous thin columns.
  • Fractional values are now allowed when editing plot axis minimums and maximums as well as pen intervals.
  • Various ways to link to the same online model will now be treated identically for the work in progress autosave feature.
  • Clarify which model source was used when loading a model with work in progress in the revert to original popup.

March 22nd 2023 - v2.10.5

This is a very small bugfix release that fixes the use of the plot export functions in our charting library.

March 20th 2023 - v2.10.4

This release brings automatic saving of work in progress as you make changes to your models in NetLogo Web. This autosave uses your browser's local cache so it doesn't require a server or account to use. Each unique source of a model, a URL, a filename, or using New Model, is treated as a storage location for auto-save. Returning to the same URL, re-uploading the model file, or going back to the New Model will get you right back to your work in progress with an option to revert to the original model if you prefer. To try it out just open your favorite model and do some authoring. See the "Saving Your Changes" section of the authoring docs for more information, including how to disable autosave when embedding models. For safe keeping of models you put a lot of work into, we still recommend occasionally downloading an .nlogo file locally to your computer.

Other features and improvements in this release:

  • Support translation of model runtime errors for simplified Chinese. This is the first step towards supporting more languages in more parts of NetLogo Web.
  • The link direction indicator will draw correctly when its shape does not include a middle line.
  • For people embedding NetLogo Web models into other web pages or apps, we've added an event system that can be hooked into via JavaScript code to monitor model usage, along with a query system so information can be more easily pulled out of a model. Full documentation of these features is coming.
  • The rendering speed of scatter plots has been improved.
  • We added some clarifying text on why some models that don't work yet in NetLogo Web are greyed out in the models library list.
  • Improved the display of errors when a model completely fails to load.
  • Fixed a few small bugs in NetTango Web.

December 20th 2022 - v2.10.3

This is a small release with bugfixes and features. It also includes some changes to NetTango Web, including better support for right-to-left languages.

October 24th 2022 - v2.10.2

This is a small release to fix a few different bugs.
  • The initial random-number generator seeds are now taken from the Crypto Web API, which should eliminate the chance multiple users can wind up with the same seed when they load a page.
  • The range primitive will work when using the three-argument version.
  • When you display an anonymous procedure as a string, it will include the names of let variables.
  • Using a variable argument primitive like word concisely with reduce would give incorrect results.
  • Saving a model to an nlogo file with a plot with blank axes names correctly sets the values to NIL so the file can be loaded without errors.

August 9th 2022 - v2.10.1

The major feature in this release is the ability to jump to the exact primitive in the code tab that causes a runtime error. There are also a couple bug fixes:
  • The random-exponential reporter is now properly checked for runtime errors.
  • The random-normal reporter is no longer broken as it was in v2.10.0.
It also includes some changes to NetTango Web, including syntax highlighting in block code tips.

July 6th 2022 - v2.10.0

The major feature in this release is the ability to create and edit plot widgets in NetLogo Web! Check out the Authoring mode documentation for more information on creating and editing widgets. Bugfixes and other changes:
  • The Functional Programming extension is now supported on NetLogo Web.
  • The Table extension now contains to-json and from-json primitives for converting to and from JSON strings.
  • Primitives that take any kind of value (string, number, boolean, list, agent, agentset, etc) no longer check their argument types at runtime. This should provide a small performance improvement for models that heavily use them (lput and fput are examples).
  • Many more primitives and agent built-in variables have proper runtime error checks and will now generate meaningful error messages when an unexpected condition is encountered.
  • When you get a runtime error message you can now easily copy it with the provided button.
  • Fast-running models with large plots could sometimes stop updating and appear blank. This has been corrected.
  • We removed some methods to overwrite special JavaScript values using built-in primitives.
  • The error primitive will properly generate stack traces.
  • The extract-rgb primitive will work exactly the same as desktop NetLogo's version.
  • The tan primitive will better handle asymptotic values.
  • The mod primitive will check for an invalid zero divisor.
  • The Encode extension will generate UTF-8 strings to match the desktop version's output. Also, a bug was fixed where a stack overflow could occur with large strings.
  • An exception could be generated when comparing links to turtles.
  • Turtle stamp coloring should better match NetLogo desktop when transparency is used for the color.
  • The model will not attempt to scroll itself into view when loaded. This matters in the case where a model is embedded in an iframe that is not at the top of the containing page.

October 7th, 2021 - v2.9.10

This release fixes bugs when using let variables in strings with run and runresult. It also includes many changes to NetTango Web, including an improved help menu and access to NetLogo model variables in block expression attributes. Version 2.9.9 was a bugfix release for NetTango Web.

September 8th, 2021 - v2.9.8

This release includes support for the new version of the Palette extension. It also includes many changes to NetTango Web, adding groups to the blocks menu.

July 19th, 2021 - v2.9.6

Bugfixes and other changes:
  • When a monitor widget produced an agent value, the model would break when recompiled.
  • When choosers, switches, and input widgets were added, their global variables could not be immediately referenced in the command console.
  • When referencing an extension primitive that does not exist, the error message would not give the correct line number in code.
  • The wait primitive could be used, but it's behavior was strange and it could potentially freeze NetLogo Web. It's been updated to not wait any amount of time and to print a message about its lack of compatibility with NetLogo desktop. Read more info about why it differs from desktop in our docs.
  • Some models in the library used while [mouse-down?] [...] which would cause NetLogo Web to freeze. Those models have been updated to work with NetLogo Web.
This release also includes many changes to NetTango Web, mostly around how the user interface is displayed. Note that versions 2.9.3, 2.9.4, and 2.9.5 were all bugfix releases for NetTango Web.

June 21st, 2021 - v2.9.2

  • Improve performance of models using the histogram primitive, especially with multiple plots.
  • When a long error message needs to be shown, the alert window will scroll so it can all be read.
  • Procedure names in the NetLogo Code jump list are shown exactly as written instead of being upper case.
  • When possible, try to automatically resolve issues when loading insecure linked models from a secure page.

May 7th, 2021 - v2.9.1

This is a small bugfix release. The below issues have been resolved.
  • Asking a turtle to ask itself to die will no longer create a runtime error.
  • Error reporting for the Fetch and Store extensions will now properly be displayed to the model user.
  • Slider and monitor widgets with errors in their code can be clicked to show the error.
  • Newly added widgets can be deleted before recompiling or leaving authoring mode.
  • Properly display an error when multiple widgets with the same backing global variable name are created.
  • NetTango Web can properly recover from multiple compile errors in the NetLogo model code.

April 16th, 2021 - v2.9.0

  • Runtime errors will now generate stack traces, and the alert for the error will show the procedure call sequence that generated the error.
  • The behavior of run and runresult with string values will more closely match desktop NetLogo.
  • Turtle and link forever buttons will stop if there are no turtles or links in the model, as they do in desktop NetLogo.
  • Models created new in NetLogo Web will have their view updates set to be on ticks, so when exported their behavior in desktop will be the same as what is seen in NetLogo Web.
  • The model speed slider can now be set with a URL query parameter, speed. This is useful when hot-linking or embedding models.

March 3rd, 2021 - v2.8.4

This release adds support for the plot-pen-up primitive, adds better runtime error checks for agentset primitives and a few more math primitives, and fixes a small difference in model behavior from NetLogo desktop when using n-of with a list when n is the size of the list.

February 8th, 2021 - v2.8.3

This small release fixes a bug that would cause runtime errors with the up-to-n-of primitive.

January 20th, 2021 - v2.8.2

Improvements and Bug Fixes

  • NetLogo Web now supports checking the types of arguments for correctness given to math and list prims, and will give much more meaningful error messages when incorrect types are used.
  • The plot auto-scale feature will only consider new data that is added to a plot, as it does on NetLogo desktop. Previous it used all plot data a plot had seen to scale.

Models Library

NetLogo Web has been updated with the same version of the Models Library that comes with NetLogo desktop 6.2.0, which means that many models have been added or modified. See the "Model Changes" section of the NetLogo version docs for more information.

October 15th, 2020 - v2.8.1

Improvements and Bug Fixes

  • Feature: The Array, NLMap, Matrix, and Table extensions can now export and import their extension objects with the export-the:world and import-a:world primitives.
  • Bugfix: Recompiling a model that used the Array, NLMap, Matrix, or Table extensions could cause an error to occur that would leave the model unusable.
  • Bugfix: Chooser widgets now properly retain their value between recompiles instead of reverting to the default choice from when the model was loaded.

September 17th, 2020 - v2.8.0

Improvements and Bug Fixes

  • Optimization: NetLogo Web now implements an optimized algorithm for in-radius and in-cone. This should speed up models that use those primitives, especially with a radius argument great than 2. Additionally, these optimizations mean the order agents from agentsets are returned will exactly match desktop's output.
  • Optimization: The random and count primitives had small optimizations added for certain common use cases.
  • Optimization: Commands run through the command center will be compiled much more quickly, so they should finish faster.
  • Bugfix: The layout-spring primitive should work exactly like desktop in wrapped worlds.
  • Bugfix: The resize-world primitive handles fractional arguments correctly.
  • Bugfix: The precision primitive handles a fractional places argument correctly.
  • Bugfix: A model will correctly recompile when a button is changed to a Forever type.
  • Bugfix: Prevent runtime model exceptions from leaking out into the browser console.

CSV Extension

The CSV extension is now officially supported in NetLogo Web. Most of the primitives work the same as in the desktop version, with the exception of the file-based primitives. For getting CSV data from a file, see the Fetch extension. For sending CSV data to a file, try out the SendTo extension.

NetTango Web Builder

In addition to the above updates, there are also numerous bugfixes and improvements for the beta release of the NetTango Web Builder, an application for creating block-based programming models with NetLogo Web. See the NetTango Web Builder tutorial for more information on using the NetTango Web Builder.

August 10th, 2020 - v2.7.3

Improvements and Bug Fixes

  • Bugfix: Properly line up histogram bars to the x-axis coordinates.
  • Bugfix: Don't animate hisograms when updating so they don't get "stuck" as a model runs.

Table Extension

Thanks to the hard work of Center for Connected Learning summer intern Xuan Zhang, we have now added the Table extension to NetLogo Web.

NetTango Web Builder

In addition to the above updates, there are also numerous bugfixes and improvements for the beta release of the NetTango Web Builder, an application for creating block-based programming models with NetLogo Web. See the NetTango Web Builder tutorial for more information on using the NetTango Web Builder.

July 23rd, 2020 - v2.7.2

Improvements and Bug Fixes

  • Bugfix: Properly handle early exit from multilist foreach
  • Bugfix: Round first arg to n-of down as per NetLogo desktop
  • Bugfix: Only calculate sum, max, min and standard-deviation on numbers from lists, and improve error messages for all numerical list calculation prims.
  • Parity: Rename Label widgets to Note widgets to match desktop

New Extensions

These new extensions are thanks to the hard work of Center for Connected Learning summer intern Xuan Zhang.

  • The Array extension is now supported.
  • The Matrix extension is now supported. The primitives real-eigenvalues, imaginary-eigenvalues, and eigenvectors are not yet implemented and will throw runtime errors if used.

NetTango Web Builder

In addition to the above updates, there are also numerous bugfixes and improvements for the beta release of the NetTango Web Builder, an application for creating block-based programming models with NetLogo Web. See the NetTango Web Builder tutorial for more information on using the NetTango Web Builder.

March 10th, 2020 - v2.7.1

Improvements and Bug Fixes

  • Reduced memory usage with models with large-sized worlds to make them usable (thousands of patches large).
  • Fixed a bug where setting a number input widget to a string value could cause a model to become unusable.
  • Fixed broken documentation links when reading sub-pages.
  • Added a licensing attributions page.

November 21st, 2019 - v2.7.0

Improvements and Bug Fixes

  • The included models have been updated to match those in the NetLogo desktop 6.1.1 release. See the NetLogo desktop 6.1.1 release notes for more information on those changes.
  • Optimizations around using the count primitive with turtle or link agentsets.
  • Avoid an error when running plot commands with no plot pen specified.

July 31st, 2019 - v2.6.1

Improvements and Bug Fixes

  • Properly report errors that occur in callbacks in the Fetch and Store extensions, rather than silently failing.
  • When passing a list of agentsets to remove-duplicates, any agentsets that have duplicate members will be reduced to a single agentset in the result.
  • Bugfix for a memory leak involving breeded agents dying.

May 24th, 2019 - v2.6.0

Input and Output Extensions

The major new features for this release of NetLogo Web are new extensions that enable sending input to and pulling output from outside the browser session. Almost all of these extensions also have a matching NetLogo desktop version, which means you can write a single model that uses external files or data that runs nearly identically in both environments.

Here is a listing of each of the new extensions with links to their documentation, why you might want to use them, and the desktop primitive functionality they are meant to provide.

Extension Enables You To Provides Functionality Like
Fetch Get some data into your model from a URL or a file. file-open, file-read, user-file, the Web extension
Dialog Get some information from the user of your model. user-input, user-one-of, user-message, user-yes-or-no?
ImportA Take the string form of an image or world that you have fetched or created and import it into your model. import-world, import-drawing, import-pcolors, import-pcolors-rgb
ExportThe Get the string form of some data from your model like the world info, the plots, or even the model code itself. export-world, export-plot, export-output, export-view
SendTo Send some string data to a local file. file-open, file-write, file-show, file-print, file-type
Store Store long-lived string data from the model in the user's browser, in a way that persists between recompiles and reloads, all without without user interaction (unlike send-to:file saving). A very basic file system
MiniCSV Turn CSV-structured string data into formats usable in NetLogo code, or turn NetLogo data into CSV-structured strings for saving to a file. The CSV extension

Why not just reproduce the same input and output primitives that NetLogo desktop uses in web? The reasons are technical, but NetLogo Web's design along with the limitations of the browser environment it runs in makes duplicating the exact functionality of the desktop primitives impossible. In the web environment we do not control when the browser will finish getting input we request from a file, a URL, or even from the user, so we usually need to provide callback procedures that can run once the browser complete. Rather than making primitives whose behavior would differ between platforms, we decided to make extensions whose behavior would be identical between NetLogo desktop and NetLogo Web. The Dialog extension document has more details on the issue if you are interested.

As part of these updates, the way to do import-world and import-drawing has changed! Instead of using those primitives, the new ImportA extension provides the import-a:world primitive that reads a world from a string. Use export-the:world to get your model's world data as a string, or the Fetch extension to get it from outside of your model. The Fetch provides a fetch:user-file-async primitive that will prompt the user to select a file, and then send that file's contents to the provided procedure to use with import-a:world.

You can see an example below, and would use a similar process for import-a:drawing or the new import-a:pcolors primitive that provides the import-pcolors functionality from desktop. There are more examples in the docs for the ImportA extension.

  extensions [ fetch import-a ]

  to import-world-new
    fetch:user-file-async [ world-file ->
      import-a:world world-file

      ; if you have code that needs to run after
      ; the world import, it should go here

Features and Improvements

  • The included models have been updated to match those in the NetLogo desktop 6.1 release. See the NetLogo desktop 6.1 release notes for more information on those changes.
  • The new multiple-condition behavior for the ifelse and ifelse-value primitives is supported. See the NetLogo dictionary for more information.
  • The new up-to-n-of primitive for selecting random elements from agentsets and lists without an error when the result is smaller than requested is now supported. See the NetLogo dictionary for more information.

Bug Fixes

  • Properly handle negative numbers when given to back and left.
  • Increase the max CSV file import length for import-a:world (formerly import-world).
  • Drawing data is now included in world exports (export-world and export-the:world).
  • Import and export functions properly handle inner quotes in strings.
  • Drawings rescale when the patch size of the view changes.
  • Color value calculations are better aligned with how NetLogo desktop calculates them.
  • Avoid an error when pressing the Delete button with nothing selected.

February 8th, 2019 - v2.5.2

This is a quick bugfix release to resolve an issue where authoring a model (resizing widgets) can cause file exports to fail.

January 18th, 2019 - v2.5.1

Improvements and Bug Fixes

  • On a code recompile failure the line number will now display along with the error message.
  • Put in a workaround so that color input widgets can work in the Safari browser.
  • Put in a workaround for selecting input text in authoring mode popup windows in Firefox.
  • Allowed line plots to go in any direction with plotxy, matching NetLogo desktop's behavior.
  • Fixed some bugs around using run and runresult with let variables in strings.
  • Fixed a bug where widgets could be nudged outside the model area in authoring mode using the keyboard.
  • Fixed a bug with the display when repeatedly loading models from the local system.

October 28th, 2018 - v2.5.0

Coding Enhancements

As part of Google Summer of Code a trio of improvements were made to the coding experience of NetLogo Web:

  • A "Jump to Procedure" dropdown has been added in the NetLogo Code tab that makes it easy to go right to a procedure definition in the code.
  • A "Show Usage" hotkey has been added - simply highlight some text and hit Ctrl-U (Windows/Linux) or Command-U (macOS) and you'll see a list of the lines of code the text is used. This is very useful for finding where variables and procedures are used.
  • An "Auto-Complete" feature has been added. When the checkbox is checked in the NetLogo Code tab, suggestions for keywords, primitives, and procedure names will popup as you type in code.

Three more features were added that should also help the coding and model testing experience:

  • A "Comment Code" hotkey has been added that will toggle a line between commented or uncommented with the ; character. Useful for quickly testing code with or without some line. It is available at Ctrl-; (Windows/Linux) or Command-; (macOS).
  • There is an option to move the "Commands and Code" tabs to the right side of the screen, instead of the bottom (the default). This allows viewing the Command Center or NetLogo Code tabs side-by-side with a model, which is much nicer on wide screens.
  • Errors that occur as a result of code typed into the Command Center will now show in the Command Center display, instead of in a dialog box. The Command Center is also more consistent about retaining focus after commands are entered.

Improvements and Bug Fixes

  • Wide models will now expand to take up more screen space by default, instead of getting "stuck" inside a small box on the screen.
  • Lots of improvements to navigating models in the models library dropdown - using browser back and forward buttons should work much more reliably.
  • Workarounds were added to better support the Microsoft Edge web browser, especially around widget editing.
  • The Baby BehaviorSpace experimental feature is now aware of the behaviorspace-expiriment-name and behaviorspace-run-number primitives.
  • Fixed a couple issues and styles for the documentation pages.
  • Turtle pen size choices are now better respected.
  • The same nlogo file can now be uploaded multiple times in a row - before nothing would happen on the 2nd or further uploads.
  • Monitor widgets allow non-numeric values, as in desktop.
  • Models that use inspect can now compile and run, but the command doesn't do anything.
  • More primitives have been added to the code highlighter.
  • Fix for using turtle-set with special agentsets, like turtles and patches. It wasn't making a new agentset in these cases, so adjustments to the new agentset would affect all agents in the world.
  • Improved error messages for n-of to match desktop.
  • Fixed an issue where using setxy with pen-down and a wrapped world wouldn't properly wrap the pen drawings.
  • Exporting anonymous procedures works with export-world without errors. Note that importing is not supported (in desktop or web).
  • Speed optimizations were added around breed checks for agents, the patchat primitive, and using commands or reporters with large agentsets, like patches in a big world.
  • The item primitive now allows non-integer indexes when accessing a list, just like desktop.
  • Errors are thrown when using ask or inspect with a dead agent, as with desktop.
  • Using towards with patches no longer throws an error.

May 31st, 2018 - v2.4.0

Newly Supported NetLogo Features

  • The very exciting new feature for this release is model interface editing support! Model authoring is now possible in NetLogo Web. See the new documentation for more information.

Improvements and Bug Fixes

  • Documentation has been updated for authoring and to include more information on the differences with NetLogo desktop.
  • Manually typed slider values will not go outside the limits of the slider.
  • Small improvements were made to the automatic indentation in the code editor.
  • Performance optimizations were added around using any? and with primitives together, as in any? turtles with [color = red].

March 23rd, 2018 - v2.3.1

Models Library

NetLogo Web has been updated with the same version of the Models Library that comes with NetLogo desktop 6.0.3, which means that many models have been added or modified. See the "Models" section here for more information.

Improvements and Bug Fixes

  • The diffuse and diffuse4 commands are now properly symmetrical, matching the fix made in NetLogo desktop 6.0.3.

March 9th, 2018 - v2.3.0

Newly Supported NetLogo Features

  • import-world and export-world are now supported.
  • import-drawing has a basic implementation that tries to load an image at the given URL.
  • netlogo-version will return a string value that matches the version from these release notes.

Improvements and Bug Fixes

  • World will not clear on a recompile unless there are code changes that require it.
  • Agents are now rendered in breed declaration order, as they are in desktop.
  • Number input widgets display correctly in Firefox when set to a small size.
  • Input widgets now update values only when an edit is complete, to avoid causing problems with incomplete changes while models are running.
  • The command console will now properly insert show when using any reporter, not just some.
  • Histograms now properly round down when bucketing data.
  • Small improvement to the display of link shapes so they are more reasonably sized.
  • Plot update commands recognize stop.
  • Plots now use a clone of the main model random number generator, as they do in desktop NetLogo.

January 8th, 2018 - v2.2.3

Improvements and Bug Fixes

  • Show an x-value in plot tooltips.

November 27th, 2017 - v2.2.2

Improvements and Bug Fixes

  • Bugfixes around exporting CSV data from plots.
  • Output area widgets should update correctly.
  • Using run or runresult on strings with comments should work correctly.
  • Minor user interface clean-up.

October 27th, 2017 - v2.2.1

Newly Supported NetLogo Features

  • The diffuse4 primitive is now supported.
  • Vertical sliders are now presented correctly.

Improvements and Bug Fixes

  • Fixed a bug where turtles moving back would not draw pen lines.
  • Fixed a bug with the display of histogram plots when using temporary plot pens.
  • Fixed a bug that would incorrectly set tied turtle positions in rare circumstances.

October 5th, 2017 - v2.2.0

Newly Supported NetLogo Language Primitives

  • read-from-string
  • export-view
  • run and runresult now work on string values. Example: run "set sum 10 + 100"

Improvements and Bug Fixes

  • Models that are saved with code tab errors can now be loaded so the errors can be addressed.
  • Running a reporter in the command center automatically adds show for usability.
  • Fix for a couple issues when loading a model from an .nlogo file, including ghosting agents at full tick speed.
  • Plot title sizes were reduced to give more room for the plots.
  • clear-all clears output areas, too.
  • Models library updated to match the 6.0.2 NetLogo desktop release.

July 28th, 2017 - v2.1.0

Now-Supported Language Primitives

  • insert-item
  • range
  • wait (This implementation is for basic compatibility. We recommend NetLogo Web models avoid the use of this primitive.)

Selected BugFixes / Improvements

  • Numerous major optimizations and performance improvements.
  • Improve anonymous reporter and command display with show.
  • Allow extract-hsb to take RGB lists.
  • Make is-breed? work with links.

Models Library

NetLogo Web is now using a preliminary version of the Models Library that will come with the soon-to-be-released NetLogo 6.0.2, which means that many models have been added or modified. See the "Models" section here for more information.

February 5th, 2017

Now-Supported Language Primitives

  • clear-globals
  • downhill
  • downhill4
  • layout-circle
  • layout-radial
  • layout-tutte
  • random-gamma
  • uphill
  • uphill4

NetLogo 6 Parity

Much has been done to keep step with the desktop version of NetLogo as it transitioned from version 5.3.1 to version 6.0.0. The two most significant changes have been making link primitives more consistent with one another in their behavior, and the replacement of tasks with anonymous procedures. For more information about these items, please see the "Tasks replaced by Anonymous Procedures" and "Link reporters overhauled to be more consistent and flexible" subsections of the NetLogo 6 transition guide.

Models Library

NetLogo Web is now using the version of the Models Library that comes with NetLogo 6, which means that many models have been added or modified. See the "Models" section here for more information.

October 11th, 2016

Now-Supported Language Primitives

  • random-gamma

September 13th, 2016

Now-Supported Language Primitives

  • export-output
  • user-input

August 9th, 2016

Now-Supported Language Primitives

  • link-shapes

July 26th, 2016


NetLogo Web files are now distributed in such a way that clearing your browser's cache should never be necessary for obtaining the latest versions of the files.

June 1st, 2016

Now-Supported Language Primitives

  • user-yes-or-no?

April 8th, 2016

Widget Enhancement

Input widgets can now be used to select colors.

February 25th, 2016

Widget Enhancement

Buttons now indicate if they are "forever" buttons. Also, buttons now indicate if they run in an agent context (T (turtles), P (patches), or L (links)).

February 10th, 2016

Now-Supported Language Primitives

  • at-points
  • sort-by
  • sort-on

December 14th, 2015

Widget Error Reporting

Widgets now support displaying red label text when they contain an error.

This does not currently apply to plot widgets, which will still display pop-ups about errors on model load, for the time being.

November 9th, 2015

Newly-Implemented Language Primitives

First and foremost, this update brings with it the implementation of many NetLogo primitives, substantially increasing the percentage of the language supported by NetLogo Web.

The newly-supported primitives are as follows:

  • approximate-rgb
  • approximate-hsb
  • breed-at
  • clear-drawing
  • date-and-time
  • extract-hsb
  • home
  • hsb
  • in-cone
  • is-boolean?
  • max-n-of
  • min-n-of
  • modes
  • netlogo-web?
  • patch-at-heading-and-distance
  • patch-size
  • pen-erase
  • random-exponential
  • random-normal
  • random-poisson
  • random-pxcor
  • random-pycor
  • rgb
  • set-patch-size
  • shapes
  • shuffle
  • stamp-erase
  • user-message
  • with-local-randomness
  • with-min
  • with-max
  • wrap-color

Updated Models Library

This change adds the Traffic Basic Adaptive Individuals model and updates dozens of other models were updated with small tweaks and code style improvements.

The above changes, combined with all of the new primitives added, has allowed the following models to now be openable in NetLogo Web:

  • Autumn
  • Bacteria Food Hunt
  • Bacteria Hunt Speeds
  • BeeSmart Hive Finding
  • Bug Hunt Coevolution
  • Bug Hunt Speeds
  • Connected Chemistry Gas Combustion
  • Connected Chemistry Rusting Reaction
  • Connected Chemistry Solid Combustion
  • Current in a Wire
  • Dice Stalagmite
  • Disease Solo
  • DNA Replication Fork
  • Echo
  • El Farol Network Congestion
  • epiDEM Basic
  • epiDEM Travel and Control
  • Equidistant Probability
  • Fireworks
  • Flocking - Alternative Visualizations
  • Flocking Vee Formations
  • GasLab Single Collision
  • Geometron Top-Down
  • HSB and RGB Example
  • K-Means Clustering
  • Lightning
  • Lunar Lander
  • Many Regions Example
  • Muscle Development
  • Osmotic Pressure
  • Particle Swarm Optimization
  • Particle System Flame
  • Particle System Fountain
  • Particle System Waterfall
  • Plant Speciation
  • Prob Graphs Basic
  • Random Basic Advanced
  • Reactor Top Down
  • Red Queen
  • Sampler Solo
  • Shuffle Board
  • Simple Economy.nlogo
  • Stochastic Patchwork
  • Sunflower Biomorphs
  • Traffic Basic Adaptive Individuals
  • Turtles Circling
  • Urban Suite - Path Dependence
  • Urban Suite - Recycling
  • Vision Cone Example
  • Voronoi

Note: While most of these work fine, the fact that a model is openable does not imply that we think the model is running well. Some of these models are still a bit slow or buggy, and we plan to fix that in future updates.

New Random Number Generator

Previously, NetLogo Web used the standard JavaScript random number generator. With this update, NetLogo Web now gets its random numbers from a direct port of the random number generator used in desktop NetLogo. Thanks to this, any seed passed to random-seed leads to exactly the same model run in NetLogo Web as it does in desktop NetLogo.