NetLogo 7 Released!

Hi NetLogo users,

It has been a long time since the last major release of NetLogo. We have not been idle during that time - quite the contrary, we have been working hard on a new major release of NetLogo, NetLogo 7. You can download it here.

We’re excited to share it with you today. We very much welcome your feedback.

Enjoy,

-Uri Wilensky

Please send your feedback to [email protected] and bug reports to [email protected], or let us know here on the Forum.

Summary of Changes

This is a major upgrade from NetLogo 6.4. We made many changes to basic features, the NetLogo GUI, the file format and NetLogo library models.

Some of the biggest changes we made in this release are:

  • A new modernized GUI with both light and dark modes (and a classic mode) (see below)
  • Greater customizability, with more preferences and settings (see below)
  • NetLogo models are now stored in a new format with the extension .nlogox (see below)
  • For users with modern macOS devices that use the Apple silicon architecture, we now provide a separate, higher-performance version of NetLogo to download

We have also created a new NetLogo website, www.netlogo.org, to better organize information about all our products and resources.

The NetLogo user community continues to experience much growth. Maintaining the large code-base, adding new products, adding features to support our users, and expanding the models library requires considerable resources. Part of our efforts to ensure NetLogo’s long term sustainability is to diversify our funding sources. We are committed to providing NetLogo to our users at no cost. After years of support from government research grants, we are transitioning to a model that is more from individual donations and philanthropic foundations. Please consider making a donation. All donation sizes help. Donate here (donations are processed through Northwestern University, but 100% goes to fund NetLogo development).

Donate

Below, we list all the changes since NetLogo 6.4.

Changes to the NetLogo GUI

  • See the NetLogo 7.0.0 Changes Overview for more details.
  • User interface elements (widgets) have a flat modern look with a new color scheme.
  • Users have a choice of color themes: Light, Dark and Classic.
    • The classic color theme is similar to the light theme, except the widgets have the pre-NetLogo 7 colors.
  • Widget sizes have been adjusted for better aesthetics and readability.
    • All widgets now open with the new widget styles, but pre-NetLogo 7 models will open with the old widget sizes by default. However, the new widget styles are not designed to look or function well with the old widget sizes, so model authors are strongly encouraged to update their models to use the new widget sizes.
    • There is a tool to automatically update the layout of a model to better support the new widget sizes.
    • Users can set widgets to have their pre-7.0.0 default sizes if they want.
  • Options to delete, copy and paste all selected widgets have been added to the right-click menu.
  • A preview is shown when widgets are added.
  • Buttons have new icons for observer, turtle, patch and link.
  • Sliders now display their values in an editable box.
  • For Monitors, users can specify the units represented by numbers.
  • The font and background colors for Notes can include transparency and are specified separately for Light and Dark Modes.
  • The Interface Toolbar has been updated for usability: there are now four different tools for interacting with or editing widgets:
    • With the Interaction tool, users can interact with widgets much as they did before NetLogo 7.
    • With the Selection tool, users can select and move widgets by clicking on them.
    • With the Edit tool, users can edit widgets after a single click (no previous selection required).
    • With the Delete tool, users can delete widgets by clicking (no previous selection required).
  • There are new tools to align, distribute and stretch widgets. These have a menu in the Interface Toolbar.
  • Icons for the Interface, Info and Code Tabs have been updated.
  • The icons for moving the command center from the bottom of the Interface Tab to its right side and back are now more intuitive.
  • The widget pull-down menu is easier to read.
  • The Model Speed slider now has buttons to increase and decrease model speed.
  • Code Tabs for included (.nls) files can be closed by clicking on the tab.
  • Code Tabs for included files have checkboxes for opening a separate code window.
  • Headers in the Info Tab have been redesigned.
  • The color themes are color blind friendly.
  • The shapes list in the Turtle Shapes Editor and the Link Shapes Editor is now searchable.
  • Color Swatches has been replaced by a more powerful Color picker.
  • The documentation format has been updated.

Changes to the NetLogo File format

  • The extension of model files is now .nlogox or .nlogox3d.
  • Existing .nlogo model files will be converted to .nlogox files.
  • NetLogo 7 only saves models as .nlogox files.
  • The .nlogox files are XML files.
    • Any third-party scripts that processed .nlogo files are not expected to function correctly on .nlogox files
  • The .nlogox format allows the saving of model-specific information.
  • The .nlogox format allows the saving of user interface element specific information.
    • For example, a user interface element can appear in the new larger size, or the original size.
  • The .nlogox format is extensible and will allow new types of data to be stored in the future.
    • This makes it easier to add capabilities and keep models backwards compatible.
    • Resources needed for a model may be stored in the .nlogox file in the future.

Changes in Primitive Functionality

  • There was a small bug fixed in the behavior of the random primitive. Models that use random and random-seed may not generate the exact same behavior as in NetLogo 6.

Changes for Customizability

  • Widgets that have changed size for NetLogo 7 have a checkbox that allows users to switch between the new larger size in NetLogo 7 and the previous size used in NetLogo 6.4.
  • The “Auto indent” and “Show line numbers” global preferences can be set directly from the Code Tab.
  • There are changes to the Preferences dialog which let you customize various NetLogo settings.
    • External editor support: Users can enable a feature that checks the open model for changes made outside of NetLogo to the model file and to any included files. When a change is detected, the file is updated in NetLogo. This feature can be enabled or disabled using the preferences dialog. It is disabled by default.
    • There is a new preference option that prevents compilation errors from stealing focus from the current tab. By default, it is not enabled.
    • There is a new preference option that causes a separate code tab to be opened when NetLogo starts. By default, it is not enabled.
    • There is a Linux-only UI Scale preference that matches NetLogo graphics to the system UI scale.
    • There is a preference that enable users to control whether anonymous data will be collected when they are using NetLogo. It is enabled by default.
  • Users can switch between Light, Dark and Classic color themes using an item in the Tools menu.
  • A new Color Picker replaces Color Swatches. Users can still select NetLogo colors from a grid of rectangles. The Color Picker has a second tab that allows users to specify colors in most common formats, and that enables easy selection of a more extensive set of colors.

Features and Enhancements

  • The NetLogo Graphical User Interface (GUI) has been thoroughly modernized
  • The model file format has become extensible.
  • Brief timely messages can now be displayed in a banner on the Interface Tab. Users can click a link for more details.
  • Notes on the interface tab can now render markdown/html.
  • Users can copy and paste widgets both within and between models.
  • There is a new File → Manage Bundled Resources dialog that allows you to view, add, or remove files that are bundled with the current NetLogo model. You can easily embed such files in the Info Tab.
  • Plots can now be scaled independently for the x and y axes via checkboxes in the Plot widget.
  • The separate code tab has a full NetLogo menu bar.
  • The Help Menu now has a link to the NetLogo Forum, a website to ask/answer questions and have discussions about NetLogo.
  • The Tools->Halt option is disabled if code is not running.
  • Print legends wrap to be multi-line if needed.
  • The auto-save functionality will prompt users if there is an auto-save file available (for example if NetLogo crashed).

Language Changes

  • The user-input primitive has a new optional argument for a default input value.
  • The new primitives auto-plot-x-on, auto-plot-y-on, auto-plot-x-off, and auto-plot-y-off allow plots to be scaled independently for the x and y axes.
  • The new primitive set-topology replaces the “hidden” command __change-topology.

Bug Fixes and Minor Changes

  • Multi-assign with let and set can use arbitrarily nested lists to “destructure” variables. For example, let [[corner1-x corner1-y corner2-x corner2-y] player-name score] get-current-player-info.
  • The primitive autoplot? has been restored.
  • An optimization speeds up the execution of the constructs any? turtles-on and any? <breeds>-on.
  • An __includes statement not followed by brackets no longer causes an exception.
  • Reporter procedures without a report statement, run or runresult now throw a compile time error.
  • The user receives a specific message when keywords such as globals, turtles-own, to or end are used in an incorrect context.
  • Unmatched closing parentheses, brackets and braces result in a meaningful error message.
  • When a runtime error occurs the user is asked for information that would allow us to reproduce and fix the problem. This is in addition to the stack trace plus system information currently requested.
  • “Save as NetLogo Web” adds the contents of any included files to the model code.
  • One can now import a world that has an array containing strings with curly braces.
  • The Recent Files lists now appropriately contains only 2D or 3D models.
  • The “Reload the last model on startup” preference now appropriately opens only 2D or 3D models.
  • When the user does a “Save As”, non-NetLogo files are greyed out and cannot be selected on Windows and Linux. It is a MacOS feature that users can still select a greyed-out file. If a user selects a non-NetLogo file on MacOS they are warned that a .nlogox or .nlogox3d extension will be added.
  • The Tools menu now displays the correct Show/Hide Command Center option no matter how the command center is made visible or hidden.
  • The process of selecting a log directory has been improved to allow a directory to be created, and to display an error message if the logging directory does not exist when the model is loaded.
  • The preferences dialog shows an error dialog and prevents the user from closing it if logging is enabled but no log directory is specified, or if the specified log directory does not exist or if NetLogo does not have the necessary permissions to write to the directory.
  • Input widget values of the wrong type, e.g. string values in numeric input widgets, are now rejected.
  • Creating a number input box and leaving the value empty no longer causes errors or crashes.
  • When the value of an interface element is changed outside of the Edit dialog, the user will be prompted to save the model when closing it.
  • An empty link monitor now allows a who number to be entered as an end value.
  • The value of the “Auto indent” checkbox now persists between sessions.
  • Shortcuts for “Previous word”, “Select previous word”, “Next word”, “Select next word”, “Select word”, “Delete previous word”, and “Delete next word” should work as expected in the code tab and in other text editors.
  • Command tasks now jump to the code when a runtime error occurs.
  • The MacOS and Linux convention of specifying a user’s home directory with a tilde at the beginning of a file path is now properly interpreted for included (.nls) files.
  • Included files are now recompiled when they are closed without saving the changes.
  • Leaving and returning to a “dirty” Code Tab no longer causes compilation.
  • There is no exception when reopening an included file that was saved in a separate code tab.
  • An included file being edited in a separate window can be saved.
  • Opening a separate code tab that contains a compilation error no longer causes an exception.
  • The “Save” hot-key works for included files in a separate code tab.
  • Doing a text search in a separate code tab that overlaps an interface window will no longer bring the interface window to the front, covering part of the separate code tab. (This was a MacOS-only issue.)
  • Changes in focus happen correctly when moving between separate and non-separate tabs.
  • Multi-assign with let and set now works with BehaviorSpace.
  • BehaviorSpace works correctly when no measurements have been made. In particular, it no longer produces a runtime error when the following conditions hold: 1) the user specifies a “Run metrics when” reporter, 2) the reporter is never true, and 3) the user has specified both Table and Spreadsheet output.
  • BehaviorSpace error messages are improved.
  • When a BehaviorSpace experiment is run with one or more specified output files that are open in another program, it now aborts the experiment and shows a useful error message.
  • Invalid variable specifications in BehaviorSpace result in useful messages.
  • BehaviorSpace output files can now be deleted once an experiment ends. NetLogo does not need to be exited.
  • BehaviorSpace experiment edit compilation errors are reported when the dialog is closed rather than at runtime.
  • Comments are now supported in BehaviorSpace multiline reporter fields.
  • Right clicking the blank space in a new Systems Dynamics Model no longer causes an exception.
  • NetLogo no longer hangs moving through a corner with wrapped coordinates and pen-down.
  • Number input boxes without a value no longer keep other input boxes or the command center from gaining focus.
  • The Page Setup dialog opened when a user wants to Print now closes when its Cancel button is pressed.
  • When a procedure in the Code Tab is “folded,” so that only the line with the name is visible, an action that needs to move to inside the code causes it to be “unfolded,” so it is fully visible. This can be a result of a search, find-and-replace or jumping to code with a compilation error.
  • If the NetLogo window is maximized in Windows, opening a new model no longer unmaximizes it.
  • Plot pens always take account of plot-pen-up and plot-pen-down.
  • The padding and location of internal components of widgets now change proportionally when zooming.
  • Models that have not been edited are never consider unsaved.
  • Ctrl/Cmd+X when nothing is selected now cuts (copies and deletes) the entire line.
  • Double clicking on a model that was saved with compilation errors opens it correctly.
  • mouse-xcor and mouse-ycor no longer degrade performance when called multiple times per iteration of go or in an ask with lots of agents.
  • Using a lower case ‘i’ in code with a Turkish locale no longer causes compilations errors
  • The resize behavior of edit dialogs has been improved. For example, plot widget “update commands” and “setup commands” fields can now be made taller, and the BehaviorSpace experiment edit dialog can be resized to make controls near the bottom accessible.
  • NetLogo now detects autosave files created for a model in case NetLogo crashes. Users are now asked if they want to recover it.
  • Mouse coordinates are now correctly reported along the border of a selected view.
  • All open files are closed when a runtime error occurs.
  • When exporting and then importing a model the last line in an Output area is a newline it will be retained.
  • Disabled button state is now preserved by Import world.
  • Scientific notation in monitors shows the desired number of decimals.
  • Empty 3D models now have more room for widgets.
  • Clipboard errors when pasting no longer cause an exception.
  • After patch colors have been read from a file the underlying input stream is now closed.
  • Some NetLogo display problems are avoided because Microsoft Direct3D graphics are now off by default.
  • The default value label tick counter, the names of the panels in the ‘About NetLogo’, and the Preview Commands editor can be internationalized.
  • Links to the NetLogo user manual PDF in the documentation installed with NetLogo work correctly.
  • Inserting a tab in a Note produces four spaces.
  • Adjusting a widget value using arrow keys does not affect other scrollable areas.
  • import-world correctly handles tables that have a key with a ‘:’.
  • Better support for worlds with one small and one very large dimension.
  • The app icon preview found by searching in the Windows Start Menu, is no longer pixelated.
  • Separate windows (such as the pop-out code window) can now be interacted with while other dialog windows are open
  • Agent monitor windows will no longer hide after giving a different application focus and then returning to NetLogo
  • File choosers will now open to the previously used directory
  • Searching for text in the editor will now also center the text’s location in the editor
  • The Extension Manager is better able to insert the names of extensions without introducing errors
  • Title bars now better match system appearance on Windows and macOS
  • The “Preferences” window will offer to restart the application after changing preferences that require a restart
  • Code “fold” actions have been reorganized into a submenu of the “Edit” menu
  • Code auto-indentation behavior has been improved
  • BehaviorSpace will notify about invalid variable values earlier

Extension Updates

  • The gogo extension supports the GoGo board 6.
  • The dialog extension user-input primitive allows an optional default value argument.
  • There is a new resource extension that allows you to list and get resources bundled with a model.
  • The SimpleR extension is now bundled with NetLogo.
  • The R extension is no longer bundled with NetLogo. It is available through the extension manager.
  • There is a new bspace extension that allows users to create experiments programatically.

Documentation Updates

  • The Documentation has been updated to describe the many updates that were made for NetLogo 7.0.0. The majority of the images have been updated.
  • There are three new pages:
  • Grammar was improved for NetLogo Tutorial 2.
  • The link to the book “An Introduction to Agent-Based Modeling” was updated.
  • The BehaviorSpace error message about undefined parameter values was made easier to interpret.
  • The BehaviorSpace documentation for the subexperiment syntax is improved and uses examples from the Wolf Sheep Predation Model.
  • The effect of topological wrapping on the primitives neighbors and neighbors4 is explained in the documentation.

Models Library Changes

Note: most models have been updated to the new widget size but not all.

New Sample Models:

  • Chladni Figures
  • Consumer Choice
  • Cylic CA
  • Hockey
  • Interstitial Diffusion
  • Invasive Plants
  • Wolf Sheep Predation - Agent Cognition (folder)
    • Wolf Sheep Predation - Micro-Sims (the main model which runs microsimulations to simulate agent cognition)
    • Wolf Sheep Predation - Micro-Sims Cognitive Model (the submodel for running agent microsimulations)
  • The Mathematics section now has a subfolder Conic Sections that contains three models:
    • Emergent Shapes - Ellipse
    • Emergent Shapes - Parabola
    • Emergent Shapes - Hyperbola
    • (The three models two models from the NetLogo 6.4 mathematics section: Conic Sections 1 and Conic Sections 2)

New 3D Sample Models:

  • Maze 3D

New Code Examples

  • The Ordered Agent Drawing Code Example model demonstrates how to sort turtles for display using stamp when precise drawing order is needed.
  • The Patch Outlines Example model demonstrates how to outline patches in a reasonably simple way using stamp.

Sample Model Changes

  • The Moths model was updated with information about new research into why moths circle lights. The idea that this could be modeled with NetLogo 3D was added as a suggestion for further exploration.
  • The correct label is used after hatching in the Plant Speciation model.
  • The Discrete Event Mousetrap has additions to the Extending the Model section.
  • When the bar is crowded in the El Farol model the patch label is now appropriately yellow.
  • An inaccurate comment in Small Worlds model was corrected.
  • Multi-line code input widgets were enabled for PNoM 2 Diffusion Sensor Sandbox. Previously single line widgets were incorrectly used.
  • The Radical Polymerization model was updated to fix a bug in which Km was used instead of Kr for probability of termination.

If You Encounter a Problem

We encourage users to report bugs, give feedback and ask questions through the NetLogo Forum. Alternatively, you can report bugs to [email protected] and any other feedback (including issues with the documentation) to [email protected]. We encourage users who encounter a bug to consult this wiki page which lists current problems as users report them to us and offers advice on how to alleviate or work around them. The NetLogo FAQ (Frequently Asked Questions) also contains valuable information.

Other Known Issues

This list below contains several issues known to us at the time of the release of 7.0.0. We aim fix these issues in a future release.

  • When running a BehaviorSpace experiment from the GUI or from the command line, memory is not cleared at the end of the experiment which can cause memory issues. For now, we recommend closing and reopening NetLogo between uses of BehaviorSpace.
  • Some Users continue to have problems initially launching NetLogo in Mac OS Sierra, High Sierra, Catalina, Big Sur and Monterey. More information (including a partial workaround for the problem) is available here. We don’t yet know if this issue persists in NetLogo 7.
  • The Arduino extension doesn’t work properly in Windows 10 under 64-bit NetLogo. It does work properly running under 32-bit NetLogo. We recommend that Windows users who want to work with the Arduino extension install the 32-bit version of NetLogo.
  • Once a user opens a model that uses the Arduino extension they must quit NetLogo before next opening a model that uses the Arduino extension.
  • Repeated zooming out can cause drawn lines to vanish from the view

The issues below are particular to the vid extension:

  • If the extension crashes while the code tab is popped out, the code tab will not be usable again until NetLogo is restarted.
  • The extension will crash NetLogo if you use vid:camera-open or vid:camera-select and then start a different program (like Zoom) and use the same camera. If you start the other program first and then start NetLogo things work better, but there are still many reports of problems on macOS. We’re investigating the issues.
  • On macOS the extension produces videos that don’t play properly in Windows (the same video plays correctly on a Mac, however). It appears to play videos created by other sources properly.

Credits

NetLogo was designed and authored by Uri Wilensky, project leader and director of the CCL. The current core development team includes Jason Bertsche, Aaron Brandes, Jeremy Baker and Isaac Brown. Seungyeon Kim was the main graphics designer for the Graphical User Interface changes for NetLogo 7. Seth Tisue, Bryan Head, Esther Verreau, Robert Grider, Ben Shargel and Nicolas Payette have made major contributions in the past. Many others have contributed greatly. HubNet was jointly designed by Uri Wilensky and Walter Stroup.

We also gratefully acknowledge the contributions of: Dor Abrahamson, Fernando Alegre, Jason Alt, Gabriella Anton, Umit Aslan, Zeina Atrash, Gordon Bailey, Connor Bain, Eytan Bakshy, Matthew Berland, Stephanie Bezold, Paulo Blikstein, Silas Boyd-Wickizer, Dirk Brockman, Meridith Bruozas, Rodrigo Cadiz, Ivan Ceraj, Charles Chen, Eric Cheng, Jarva Chow, Sugat Dabholkar, Rumou Duan, Jared Dunne, Geoff Garen, Jeremy Glassenberg, Katie Goodrum, Steve Gorodetskiy, Bryan Guo, Can Gurkan, Eric Hao, Ed Hazzard, Arthur Hjorth, Carrie Hobbs, Nathan Holbert, Omar Ibrahim, Abbie Jacobs, Wendy Johnson, Nathan Jones, Jacob Kelter, Hyungsin Kim, Jayun Kim, Woo-young Kim, Daniel Kornhauser, Sergey Krilov, Dr. Setsuya Kurahashi, Eyal Landau, Victor Lee, Reuven Lerner, Sharona Levy, Silvia Lovato, Kit Martin, Geoff Mathews, Spiro Maroulis, Dhrumil Mehta, Nate Nichols, Kritphong Mongkhonavit, Ben Neidhart, Michael Novak, Kai Orton, Yevgeny Patarakin, Christina Pei, Daniel Perlovsky, Lorenzo Pesce, Francisco J. Miguel Quesada, Bill Rand, Ben Rafshoon, Charly Resendiz, Andy Russell, Phil Saltzmann, Andrei Scheinkman, Pratim Sengupta, Ben Shapiro, Gagandeep Singh, Firat Soylu, Mike Stieff, Scott Styles, Celina Troutman, Josh Unterman, Aditi Wagh, Akarshit Wal, David Weintrop, Baba Kofi Weusijana, Michelle Wilkerson, Julio Patron Witwytzkyj, Nate Wong, Philip Woods, Christine Yang, Dr. Takashi Yoshida, Tianyu Xia, Jack Zhu.

The CCL gratefully acknowledges three decades of support for our NetLogo work. The original support came from the National Science Foundation – grant numbers REC-9814682 and REC-0126227. Further support has come from NSF REC-0003285, REC-0115699, DRL-0196044, NSF-ITR-0326542, DRL-REC/ROLE-0440113, SBE-0624318, EEC-0648316, IIS-0713619, DRL-RED-9552950, DRL-REC-9632612, DRL-DRK12-1020101, IIS-1441552, CNS-1441016, CNS-1441041, CNS-1138461, IIS-1438813, IIS-1147621, DRL-REC-1343873, IIS-1438813, IIS-1441552, CNS-1441041, IIS-1546120, DRL-1546122, DRL-ITEST-1614745, DRL-1640201, NSF STEMC-1745938. NSF STEMC-1842374, NSF STEMC-1842375, NSF DRL-1842374, NSF-BSF-2240216, and NSF-POSE-2303582, . Additional support has come from the Spencer Foundation, Texas Instruments, the Brady Fund, the Murphy fund, the Northwestern Institute on Complex Systems, and the Northwestern SESP Venture Research Fund.

3 Likes

Great changes!

Just a few comments on first time I opened Netlogo 7:

  1. But I dislike the new buttons selection and editing tools (Alt+1, 2 , 3) on the interface. Previous versions were simple. The right-click solved every edit. However, maybe they will be useful in the future.
  2. The check button in the codes tab was more visible. And I could understand what’s that and its job.
  3. Oh. Great command center! from bottom to right!
  4. Where is my local document? (Quick Help)? It needs internet to display online. When I work on code, I turn off internet and notifications.
  5. Align widget is not work! Maybe I could not use it! When it work??

I hope these comment help to improve.

@nasermars

Thanks for the feedback! The new edit/selection tools take some getting used to, but we thought there were enough advantages to make it worth doing them.

responses to your 4 and 5:

  1. This is a small bug. The Help menu is supposed to open the local user manual/dictionary if you are not connected to the internet. It will be fixed int he next release. In the meantime, there is a file called “NetLogo User Manual.pdf” in the folder with NetLogo in it when you download. So, you can manually open it.
  2. Try watching this video (I linked to the relevant section) and see if then the align widgets work. Maybe they work differently than you expected. Either way, please let us know after you’ve watched the video and tried again.
1 Like

Ok. Thanks for attention.

  1. I disconnected my internet and not worked local document :smirking_face: . I will wait for it.
  2. Yes it worked. Not bad! :wink:
1 Like