Giter Club home page Giter Club logo

netlogo-libraries's Introduction

NetLogo Libraries

What is it?

This repository houses the files that power NetLogo's Extension Manager. If you want to make a new extension (or new version of an extension) available to the NetLogo community for download from the Extension Manager, this is the place to do it. All that you need to do is submit a pull request to this repository and wait for us to merge it (which shouldn't take more than a few days, for a properly-formatted pull request).

Submitting pull requests

Please make sure that you are making your pull request to the correct branch! The 6.1 branch is only for extensions that work with NetLogo 6.1.x. If your extension targets a different version of NetLogo, it must go on the appropriate branch for that version of NetLogo. There was no Extension Manager before 6.1 (actually, before 6.0 development builds), so there cannot be any branches here for earlier versions of NetLogo.

Each pull request should have two parts:

  1. A .zip file added to the extensions directory.
  2. A change to the libraries.conf file

For (1), the .zip file should have a name that follows the format <extension name>-<version number>.zip. The .zip must contain <extension codeName>.jar and any other supporting files that accompany the extension (e.g. other .jar files, .so libraries). Make sure your jar files are in the "root" of the .zip file, not a subfolder. If you're using at least version 5.2.3 of the NetLogo Extension Plugin for sbt, it can generate an appropriate file for you using the packageZip sbt command, including adding extra files such as documentation and example models. If you add the netLogoShortDescription, netLogoLongDescription, and netLogoHomepage settings to your build file, a snippet will be generated as the below when you run packageZip for easy copy/pasting into the libraries.conf file, too.

Regarding (2), if you are adding a new extension, you should make an insertion into libraries.conf, in alphabetical order according to the "name" field (e.g. "Fetch" comes after "Dist" and before "GoGo"). The new entry should follow this format:

{
    name: "The human-friendly name of the extension"
    codeName: "The name that will be used to refer to this extension in NetLogo code"
    shortDescription: "A one-sentence description of what the extension does"
    longDescription: """A full description of what the extension does"""
    version: "The current version number"
    homepage: "The URL that users may go to for documentation about this extension"
    downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/<branch name>/extensions/<extension codeName>-<version number>.zip"
}

All of these fields are mandatory. All values to the right of the colon should be wrapped in single-quotes (i.e. "value"). longDescription may be wrapped in triple-quotes (i.e. """value""") in order to hold a multiline string. Some editors also like to insert so-called smart-quotes (“”) around text, but our configuration file format requires straight quotes ("").

Make sure your codeName field is unique among extensions in the library already. There are no namespaces or aliasing for NetLogo extensions (yet), so the only way to differentiate them is with unique identifiers when they're added in code. Also, the zip file name must match the codeName.

If you are simply uploading a new version (and not an entirely new extension), the only things that you usually need to change in libraries.conf are the extension's version field and its downloadURL. And, of course, you still need to also include the new .zip file (as mentioned in (1)).

A more detailed explanation of an extension submission workflow using git and GitHub is available in the wiki.

NetLogo Versions

If your extension uses components from the org.nlogo.api namespace to interact with NetLogo models, then the extensions manager will take care of making sure your extension is available only to the appropriate versions of NetLogo.

If you use components outside of that package, you may find that things break for your extension in NetLogo releases where the API version stayed the same. If so you can restrict which specific minimum version of NetLogo your extension supports by adding a minNetLogoVersion field to your extension's entry in the libraries.conf file. For example: minNetLogoVersion: "6.2.0". In this case your extension will be shown in the extensions manager, but it will prompt the user to upgrade NetLogo before they can install and use it.

Platforms

NetLogo supports Windows, macOS, and Linux operating systems and we prefer all extensions in the library support those platforms as well. If you have libraries or components that cannot work one or two of the operating systems, you can still self-host your extension and distribute it the old fashioned way, by directing users extract the extension alongside a model or into the extensions folder under NetLogo.

Email submission

If you do not want to use a pull request to add your extension to the library or to have it updated, you can instead email the CCL developer team at [email protected]. You'll need to provide the same information as in the pull request along with the file package, but we'll take care of getting the repository updated.

netlogo-libraries's People

Contributors

aab77 avatar afmac avatar aniavasq avatar brandesnw avatar can-gurkan avatar chrfrantz avatar cstaelin avatar dougsalt avatar garypolhill avatar idloj avatar jakesaunders1995 avatar jameshovet avatar jzkelter avatar kevinkons avatar lacuneta avatar loafie avatar myildi avatar qiemem avatar ruthmore avatar srohrer32 avatar thebizzle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netlogo-libraries's Issues

QLearning extension pull request

Can anyone review my pull request before friday? I am writing a paper and I to write in it that the extension has been accepted in the netlogo extension manager;

Thanks in advance.

Instructions for creating an add/update PR through the web UI

It occurred to me while thinking around issues with #56 that it might be possible to add or update an extension through the GitHub web UI with recent improvements to it. That might actually be preferrable for many users to using the git command line client or other tools. We should try and see if it is possible and write up instructions if so.

Related to #56, this would alleviate my concern with enabling git-lfs as the update process through the web UI would (hopefully) not be affected as the CLI tool would be.

Create a pull request template

It should include a list describing all the fields required for a new extension, and something to remind that the pull request must include the artifact.

It should address both adding a new extension, and updating an existing one to a new version.

NetLogo 6.4.0 Metadata Parsing Error in libraries.conf File

My instance of NetLogo had a problem parsing the libraries metadata. Based on the error message I received, the issue likely stems from a parsing error in the libraries.conf file of NetLogo 6.4.0. Specifically, there seems to be a syntax error related to an improperly closed string quote at line 587.

Remediation will probably involve inspecting the libraries.conf file to locate and correct the syntax error, such as by properly closing the string or adjusting the format to meet the expected configuration syntax. This correction will ensure that the file can be parsed correctly, allowing the metadata loading process to proceed without issues.


extensions: [
{
name: "Arduino"
codeName: "arduino"
shortDescription: "Communicate with an Arduino device"
longDescription: """This extension provides 'no-frills' communication between NetLogo and a connected Arduino."""
version: "3.0.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/arduino.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/arduino-3.0.1.zip"
}
{
name: "Array"
codeName: "array"
shortDescription: "Fixed-size arrays for performance"
longDescription: """In general, anything you can do with an array in NetLogo, you could also just use a list for. But you may want to consider using an array instead for speed reasons. Lists and arrays have different performance characteristics, so you may be able to make your model run faster by selecting the appropriate data structure.

Arrays are useful when you need a collection of values whose size is fixed. You can quickly access or alter any item in an array if you know its position.

Unlike NetLogo’s lists and strings, arrays are “mutable”. That means that you can actually modify them directly, rather than constructing an altered copy as with lists. If the array is used in more than one place in your code, any changes you make will show up everywhere. It’s tricky to write code involving mutable structures and it’s easy to make subtle errors or get surprising results, so we suggest sticking with lists and strings unless you’re certain you want and need mutability."""
version: "1.1.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/array.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/array-1.1.1.zip"
}
{
name: "Bitmap"
codeName: "bitmap"
shortDescription: "Image manipulation and drawing"
longDescription: """The Bitmap Extension allows you to manipulate and import images into the drawing and patches. It offers features not provided by the NetLogo core primitives, such as: scaling, manipulation of different color channels, and width and height reporters."""
version: "1.2.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/bitmap.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/bitmap-1.2.1.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Bitstring datatype for NetLogo"
codeName: "bitstring"
shortDescription: "Provides bitstrings as datatypes and commands to operate on them"
longDescription: """A bitstring extension for NetLogo. Bitstrings are strings of binary digits. This extension provides you with an implementation of bitstrings and a number of commands and reporters to operate on them."""
version: "2.1.0"
homepage: "https://github.com/garypolhill/netlogo-bitstring/blob/nl6/README.md"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/bitstring-2.1.0.zip"
}
{
name: "Case based reasoning"
codeName: "cbr"
shortDescription: "A case based reasoner extension"
longDescription: """A case base reasoner that provides the necessary
keywords to implement a case based reasoner consistently. A case base consists
of the riple: state,decision,outcome. This framework can return single or
multiple triples from the case base which match a given state and decision
using the the inbuilt distance function or a user defined function. Command to dynamically modify the case base are also provided, such as addition and deletion of specific cases based on age, or size of case base.
"""
version: "1.0.2"
homepage: "https://github.com/DougSalt/cbr.git"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/cbr-1.0.2.zip"
}
{
name: "CLIPS"
codeName: "clips"
shortDescription: "Run CLIPS code from NetLogo"
longDescription: """This NetLogo extension allows you to run CLIPS code inside of the NetLogo environment. There is no need to install CLIPS because this extension includes the CLIPS JNI that contains all the functionality. The CLIPS version compatible with this extension is the v6.3.
"""
version: "0.1.0"
homepage: "https://github.com/aniavasq/NetLogo-CLIPS-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/clips-0.1.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "CogLogo"
codeName: "coglogo"
shortDescription: "The Cogniton architecture in NetLogo"
longDescription: "Provides a NetLogo implementation of the Cogniton architecture, which focuses on the design of multiagent simulations of complex socio-cognitive systems."
version: "1.18.1"
homepage: "https://github.com/suroFr/CogLogo/blob/master/readMe.txt"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/coglogo-1.18.1.zip"
}
{
name: "Control Flow"
codeName: "cf"
shortDescription: "More powerful control flow primitives"
longDescription: """This deprecated NetLogo extension adds control-flow ifelse and ifelse-value that allow more than two branches. As of NetLogo 6.1.0 these primitives are built in to NetLogo and this extension is provided for backwards compatibility only."""
version: "2.0.1"
homepage: "https://github.com/NetLogo/ControlFlowExtension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/cf-2.0.1.zip"
}
{
name: "CSV"
codeName: "csv"
shortDescription: "Read and write csv files"
longDescription: """"""
version: "1.1.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/csv.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/csv-1.1.1.zip"
}
{
name: "DBSCAN"
codeName: "dbscan"
shortDescription: "Perform unsupervised density-based clustering of turtles and patches based on specified turtle/patch variables or by proximity using the DBSCAN algorithm"
longDescription: """NetLogo extension for DBSCAN clustering algorithm

It allows you to perform unsupervised density-based clustering of turtles and patches based on specified turtle/patch variables or by proximity. The main advantage over supervised algorithms such as K-Means is that it is not necessary to specify the number of resulting clusters in advance. See the homepage for detailed documentation and examples."""
version: "0.4"
homepage: "https://github.com/chrfrantz/NetLogo-Extension-DBSCAN#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dbscan-0.4.zip"
}
{
name: "Dist"
codeName: "dist"
shortDescription: "Plot frequency distributions and complementary cumulative distribution functions"
longDescription: "The dist extension makes it easy to plot frequency distributions and complementary cumulative distribution functions in NetLogo."
version: "2.0"
homepage: "https://github.com/nicolaspayette/DistExtension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dist-2.0.zip"
}
{
name: "Dialog"
codeName: "dialog"
shortDescription: "Displays dialog boxes with a NetLogo Web-compatible feature set"
longDescription: "Displays dialog boxes with a NetLogo Web-compatible feature set"
version: "1.0.0"
homepage: "https://github.com/NetLogo/Dialog-Extension#dialog-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dialog-1.0.0.zip"
}
{
name: "Encode"
codeName: "encode"
shortDescription: "Conversions between byte lists, UTF-8 strings, and base64-encoded strings"
longDescription: "This extension is for converting between lists of bytes and strings of different encodings. This is particularly useful for, say, taking binary data and turning it into a base64 string that can be easily passed around, or reading base64 data, converting it to a list of bytes, and directly manipulating those bytes."
version: "1.0.1"
homepage: "https://github.com/NetLogo/Encode-Extension#encode-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/encode-1.0.1.zip"
}
{
name: "EpiLogo"
codeName: "epilogo"
shortDescription: "An epidemiological package for NetLogo"
longDescription: "An epidemiological package for NetLogo containing features such as demographic population initialization, agent pathfinding, agent scheduling and disease campaigning. This package allows for easy and less complex development of epidemiological models within NetLogo"
version: "4.0.0"
homepage: "https://github.com/JakeSaunders1995/EpiLogo"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/epilogo-4.0.0.zip"
}
{
name: "Export-The"
codeName: "export-the"
shortDescription: "Exports special values as strings instead of as files"
longDescription: "Reports special values (such as model file contents, export-world results, export-view results, export-output results, and export-plot results) as strings, so they can be used and/or manipulated from directly within NetLogo. This extension is especially well-suited for use alongside the Import-A extension."
version: "1.0.3"
homepage: "https://github.com/NetLogo/ExportThe-Extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/export-the-1.0.3.zip"
}
{
name: "Factbase"
codeName: "factbase"
shortDescription: "Adds a new datatype called factbase, a structured set of data"
longDescription: """A fact base can be thought of as a table of named columns ("fields"), where each row comprises an entry ("fact").

At creation, the user has to define the structure of the fact base, that means define the field names. Note that in keeping with the NetLogo philosophy of a type-free language, data types for fields are not specified. After creating a fact base, facts can be asserted, queried and retracted. Facts are represented as lists of values, with one value for each field and all values in the same order as defined by the list of field names. Duplicate facts are not allowed."""
version: "1.1"
homepage: "https://github.com/ruthmore/netlogo-factbase"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/factbase-1.1.zip"
}
{
name: "Fetch"
codeName: "fetch"
shortDescription: "Read files and URLs"
longDescription: "Primitives for reading files and URLs, with NetLogo Web compatibility"
version: "1.0.5"
homepage: "https://github.com/NetLogo/Fetch-Extension#fetch-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fetch-1.0.5.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Functional Programming"
codeName: "fp"
shortDescription: "Use functional programming primitives"
longDescription: "Primitives for common functional programming functions and higher-order procedures"
version: "1.1.0"
homepage: "https://github.com/NetLogo/FP-Extension#netlogo-functional-programming-extension-fp"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fp-1.1.0.zip"
}
{
name: "Fuzzy Logic"
codeName: "fuzzy"
shortDescription: "Use fuzzy sets and fuzzy logic"
longDescription: "Extension that facilitates the use of fuzzy sets and fuzzy logic within NetLogo."
version: "2.0"
homepage: "https://github.com/luis-r-izquierdo/netlogo-fuzzy-logic-extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fuzzy-2.0.zip"
}
{
name: "GIS"
codeName: "gis"
shortDescription: "Analyse, manipulate and draw GIS data"
longDescription: """This extension adds GIS (Geographic Information Systems) support to NetLogo. It provides the ability to load vector GIS data (points, lines, and polygons), and raster GIS data (grids) into your model.

The extension supports vector data in the form of ESRI shapefiles and GeoJSON files. The shapefile (.shp) format is the most common format for storing and exchanging vector GIS data, whereas GeoJSON (.geojson or just .json) is a newer, more lightweight alternative. The extension can import and export both file formats. The extension supports single-band raster data in the form of ESRI ASCII Grid files. The ASCII grid file (.asc or .grd) is not as common as the shapefile, but is supported as an interchange format by most GIS platforms and can also be exported by the extension."""
version: "1.3.3"
homepage: "http://ccl.northwestern.edu/netlogo/docs/gis.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gis-1.3.3.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "GoGo"
codeName: "gogo"
shortDescription: "Interact with HID-based GoGo boards"
longDescription: """This is the new extension for physical computing, using sensors, motors, etc in NetLogo. It interfaces with GoGo boards running Human Interface Driver (HID) firmware, and it replaces the old GoGo Extension, which used USB-serial communications."""
version: "2.0.9"
homepage: "http://ccl.northwestern.edu/netlogo/docs/gogo.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gogo-2.0.9.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Gnu Pretty Good Privacy"
codeName: "gpg"
shortDescription: "Gnu Pretty Good Privacy (GnuPG) Extension"
longDescription: """Implements a NetLogo extension that utilises GnuPG privacy suite to decrypt data that is encoded symmetrically or asymmetrically. This will allow for the secure storing of sensitive data in public repositories as these keys can be tailored to specific individuals or groups of individuals. Additionally this allows the absolute destruction of publically available data providing the it can be proven that the keys for such data no longer exist.

Note GnuPG must be installed in the command path.
"""
version: "1.0.0"
homepage: "https://github.com/DougSalt/gpg.git"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gpg-1.0.0.zip"
}
{
name: "GPT"
codeName: "gpt"
shortDescription: "Let agents communicate and make decisions using GPT-3.5 or GPT-4"
longDescription: ""
version: "0.0.0"
homepage: "https://github.com/qiemem/NetLogoGptExtension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gpt-0.0.0.zip"
}
{
name: "Import-A"
codeName: "import-a"
shortDescription: "Generalized import-* primitives"
longDescription: "Primitives for running import-drawing, import-pcolors, and import-pcolors-rgb on base64 strings, and import-world on plain text strings"
version: "1.0.6"
homepage: "https://github.com/NetLogo/ImportA-Extension#import-a"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/import-a-1.0.6.zip"
}
{
name: "NodeJS"
codeName: "js"
shortDescription: "Run JavaScript code from NetLogo"
longDescription: """This extension allows you to run JavaScript code from within NetLogo. It is built on top of the Node.js runtime, so any Node packages, e.g. from npm, will work as expected.
"""
version: "0.2.0"
homepage: "https://github.com/NetLogo/NodeJS-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/js-0.2.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Java Virtual Machine toolkit"
codeName: "mgr"
shortDescription: "Various commands for accessing information about the Java Virtual Machine running your NetLogo model"
longDescription: """The Java Virtual Machine is the 'computer' that runs your NetLogo model, and Java provides various commands to access information about such things as how much of various different kinds of memory you are using, how many threads are running, and how much CPU time your use of NetLogo is taking. The commands in this extension allow you to access this information, which can be helpful, especially in 'headless' mode, in determining whether you need to make adjustments to default settings for the Java Virtual Machines when running the model."""
version: "1.0.1"
homepage: "https://github.com/garypolhill/netlogo-jvmgr"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/mgr-1.0.1.zip"
}
{
name: "java.Math"
codeName: "math"
shortDescription: "Access Java math library from NetLogo"
longDescription: """Java's Math library provides a number of mathematical functions that NetLogo doesn't, with guaranteed numerical properties. This extension provides access to them."""
version: "1.0.1"
homepage: "https://github.com/garypolhill/netlogo-math"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/math-1.0.1.zip"
}
{
name: "Landscapes"
codeName: "landscapes"
shortDescription: "For creating continuous function optimization problem landscapes in NetLogo"
longDescription: """This extension is a thin wrapper around the continuous function optimization problems classes implemented in the Optimization Algorithm Toolkit (OAT).

A continuous function optimization problem is one where you are are trying to find either the global optima or minima of a continuous function. OAT implements many such problems as Java classes. The goal of this extension is to make most of these problems easily usable from NetLogo."""
version: "1.0.2"
homepage: "https://github.com/NetLogo/Landscapes-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/landscapes-1.0.2.zip"
}
{
name: "LevelSpace"
codeName: "ls"
shortDescription: "LevelSpace allows you to run NetLogo models |: from inside NetLogo models :|"
longDescription: """LevelSpace is an extension for NetLogo that allows you to run several models concurrently and have them "talk" with each other. LevelSpace models are hierarchical, in that models always belong hierarchically to another model. We will refer to models that have loaded LevelSpace and have opened models as 'parents', and to the models they have opened as 'children' or 'child models'.

Note: As of v2.3.2, LevelSpace will only run on NetLogo 6.2.0 or newer due to changes to the code tab system. As of v2.3.4 LevelSpace requires NetLogo 6.3.0 running Java 11 or higher.

Asking and reporting in LevelSpace is conceptually pretty straight forward: You pass blocks of code to child models, and the child models respond as if you had typed that code into their Command Center. LevelSpace allows you to report strings, numbers, and lists from a child to its parent.

In general, the LevelSpace syntax has been designed to align with existing NetLogo primitives whenever possible.

Changelog:

v2.3.4:

  • Allow LevelSpace to run alongside the Profiler extension in the parent model.

"""
version: "2.3.4"
homepage: "http://ccl.northwestern.edu/netlogo/docs/ls.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/ls-2.3.4.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "list"
codeName: "lt"
shortDescription: "A mutable list datatype for NetLogo"
longDescription: """NetLogo's built-in list datatype is immutable -- once a list is created, you cannot change it. Instead NetLogo commands such as fput create a new list from the old list and whatever change the command stipulates.

The lt extension provides a mutable list datatype, with commands that change the original list rather than creating a new one. In code where you are working with very long lists, you may find this more efficient."""
version: "1.1.0"
homepage: "https://github.com/garypolhill/netlogo-list"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lt-1.1.0.zip"
}
{
name: "Look up table"
codeName: "lkt"
shortDescription: "Look up table implementation."
longDescription: """Implements a NetLogo extension that uses tree definition files for defining dimensions (which, in a look up table and like R is usually a "factor" or categorical variable), and then a data file mapping the values of these dimensions to outcomes.
"""
version: "1.0.0"
homepage: "https://github.com/DougSalt/lkt.git"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lkt-1.0.0.zip"
}
{
name: "LPSolver"
codeName: "lpsolver"
shortDescription: "Adds linear programming support to NetLogo"
longDescription: """This extension allows the user to integrate linear programming functionality within NetLogo models, leveraging the open source Linear Program solver
lpsolve (available freely via SourceForge)."""
version: "3.0"
homepage: "https://github.com/AFMac/NetLogoLPSolver"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lpsolver-3.0.zip"
}
{
name: "Matching"
codeName: "matching"
shortDescription: "Matching market implementation"
longDescription: """"""
version: "1.0.0"
homepage: "https://github.com/mitre/Matching-Extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/matching-1.0.0.zip"
}
{
name: "Matrix"
codeName: "matrix"
shortDescription: "Matrices support, including manipulation, math operations and some advanced features"
longDescription: """Although matrices store numbers, much like a list of lists, or an array of arrays, the primary reason to use the matrix data type is to take advantage of special mathematical operations associated with matrices. For instance, matrix multiplication is a convenient way to perform geometric transformations, and the repeated application of matrix multiplication can also be used to simulate other dynamic processes (for instance, processes on graph/network structures).

If you’d like to know more about matrices and how they can be used, you might consider a course on linear algebra, or search the web for tutorials. The matrix extension also allows you to solve linear algebraic equations (specified in a matrix format), and even to identify trends in your data and perform linear (ordinary least squares) regressions on data sets with multiple explanatory variables."""
version: "1.1.2"
homepage: "http://ccl.northwestern.edu/netlogo/docs/matrix.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/matrix-1.1.2.zip"
}
{
name: "Network"
codeName: "nw"
shortDescription: "NetWork analysis tools"
longDescription: """"""
version: "4.0.0"
homepage: "http://ccl.northwestern.edu/netlogo/docs/nw.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/nw-4.0.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "nneco"
codeName: "nneco"
shortDescription: "This extension can be used to give an artificial neural network to each agent, or to the Observer."
longDescription: """
A simple back propagation feed forward neural network adapted for being driven by another user class. It has only one hidden layer.
Adapted with corrections from the Neural class by Mark Watson, 1997, Intelligent Java Applications, Morgan Kaufmann, SF:CA.
My modifications are based on T. Masters, 1993, Practical Neural Recipes in C++, Academic Press, San Diego: CA.
If you use this extension in a publication, please cite it as:
Yildizoglu Murat, 2021, "A NetLogo extension implementing feed-forward artificial neural networks for agents", https://yildizoglu.fr/software/nneco/, University of Bordeaux, France.
This version is for NetLogo 6.1 and above"""
version: "6.1"
homepage: "https://yildizoglu.fr/software/nneco/"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/nneco-6.1.zip"
}
{
name: "NumAnal"
codeName: "numanal"
shortDescription: "A set of numerical analysis routines for NetLogo"
longDescription: """The NumAnal extension contains methods for finding the roots of single equations (Brent) and multivariable systems of equations (Newton and Broyden), for finding the minima of single equations (Brent) and multivariable functions (BOBYQA, CDS, CGS, CMAES, DES and Simplex), for solving linear programming problems (LPsimplex and LPdualsimplex), for finding fixed points (Scarf), and for evaluating definite integrals (Romberg). Documentation can be found in the folder/directory where the Extension Manager has installed the extension."""
version: "3.4.0"
homepage: "https://github.com/cstaelin/NumAnal-Extension/releases"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/numanal-3.4.0.zip"
}
{
name: "Palette"
codeName: "palette"
shortDescription: "Control specific components of colors. Use ColorBrewer color schemes."
longDescription: """The NetLogo palette extension offers the user more control over their colors. The colors go beyond NetLogo colors, including ColorBrewer color schemes and arbitrary RGB colors. Additionally, users can control specific components of their color such as alpha, hue and red. Users can map values to color gradients and can launch a ColorBrewer dialog for easy scheme selection."""
version: "2.0.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/palette.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/palette-2.0.1.zip"
}
{
name: "Pathdir"
codeName: "pathdir"
shortDescription: "Some useful operations on files and directories"
longDescription: "Pathdir provides tools for finding the name of the current model, the current working, user and model directories; creating, moving, renaming, identifying and deleting directories; and listing the contents of directories. Pathdir also allows one to find the size and modification date of files."
version: "3.1.0"
homepage: "https://github.com/cstaelin/Pathdir-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/pathdir-3.1.0.zip"
}
{
name: "Physics"
codeName: "phys"
shortDescription: "Extension for simulating physics in NetLogo models"
longDescription: "The NetLogo physics extension provides a simple way to simulate physics on agents and patches within models. Currently, to do physics simulation in a model, a great deal of code is required to handle motion, collisions and gravity. In some cases it is possible to copy this code from model to model to implement physics simulations without having a deep level of understanding of the code itself, but this process can still be fairly complicated. The physics extension allows a modeler to interact with a physics simulation that runs outside of the model with a handful of intuitive NetLogo primitives without having to worry about any complicated physics code."
version: "0.4.2"
homepage: "https://github.com/NetLogo/Physics-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/phys-0.4.2.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Profiler"
codeName: "profiler"
shortDescription: "See how much time operations take"
longDescription: """If you’d like your model to run faster, the profiler extension may be useful to you. It includes primitives that measure how many times the procedures in your model are called during a run and how long each call takes. You can use this information to where to focus your speedup efforts.

Caution:

The profiler extension is experimental. It is not yet well tested or user friendly. Nonetheless, we think some users will find it useful."""
version: "1.2.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/profiler.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/profiler-1.2.1.zip"
}
{
name: "Python"
codeName: "py"
shortDescription: "Run Python code from NetLogo"
longDescription: """This NetLogo extension allows you to run Python code from NetLogo. It works with both Python 2 and 3, and should work with almost all Python libraries."""
version: "0.5.5"
homepage: "https://github.com/NetLogo/Python-Extension/releases"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/py-0.5.5.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Q-Learning Extension"
codeName: "qlearningextension"
shortDescription: "Provides an easy way to use Q-Learning within Netlogo."
longDescription: """Allows you to specify everything Q-Learning needs in a simple way. With this extension, you don't have to worry about creating a Q-Table or updating it with just one command, the extension does it for you."""
version: "2.0"
homepage: "https://github.com/KevinKons/qlearning-netlogo-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/qlearningextension-2.0.zip"
}
{
name: "Queue"
codeName: "queue"
shortDescription: "A queue with time-weighted statistics"
longDescription: """The queue extension provides NetLogo with a queue, a commonly-used data type in discrete-event simulation. Objects can be inserted into a queue at a particular point in simulation time according to a specified queueing strategy (FIFO or LIFO). Requests to remove an element from a queue always returns the top-most object (or nobody if the queue is empty). Queues can be questioned about their current status (length, empty?) and time-weighted statistics are calculated (mean/max length, mean/max waiting time)."""
version: "1.1"
homepage: "https://github.com/ruthmore/netlogo-queue"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/queue-1.1.zip"
}
{
name: "R"
codeName: "r"
shortDescription: "Primitives for using the statistical software R"
longDescription: """The R-Extension of NetLogo provides primitives to use the statistical software R (Gnu S) (see the R Project website) within a NetLogo model. There are primitives to create R-Variables with values from NetLogo variables or agents and others to evaluate commands in R with and without return values."""
version: "1.2.4"
homepage: "http://ccl.northwestern.edu/netlogo/docs/r.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/r-1.2.4.zip"
}
{
name: "Rnd"
codeName: "rnd"
shortDescription: "Use random with a non-uniform distribution"
longDescription: """This extension adds the ability to do roulette wheel selection in NetLogo. It provides a simpler way to accomplish the same thing as the Lottery Example from the NetLogo Models Library."""
version: "3.0.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/rnd.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/rnd-3.0.1.zip"
}
{
name: "Expanded Random Number Generator"
codeName: "rngs"
shortDescription: "Multiple independent streams and expanded random distributions"
longDescription: """This extension allows the user to define multiple independent streams of random numbers and provides access to an expanded selection of discrete and continuous random distributions."""
version: "2.0"
homepage: "https://github.com/AFMac/rngs"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/rngs-2.0.zip"
}
{
name: "Sample"
codeName: "sample"
shortDescription: "An example extension written in Java"
longDescription: """"""
version: "1.1.1"
homepage: "https://github.com/netlogo/sample-extension/#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sample-1.1.1.zip"
}
{
name: "Sample-Scala"
codeName: "sample-scala"
shortDescription: "An example extension written in Scala"
longDescription: """"""
version: "1.1.1"
homepage: "https://github.com/netlogo/sample-scala-extension/#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sample-scala-1.1.1.zip"
}
{
name: "Send-To"
codeName: "send-to"
shortDescription: "Send string data to a file"
longDescription: ""
version: "1.0.1"
homepage: "https://github.com/NetLogo/SendTo-Extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/send-to-1.0.1.zip"
}
{
name: "Shell"
codeName: "shell"
shortDescription: "NetLogo extension to run commands, read and write environment variables"
longDescription: ""
version: "1.0.0"
homepage: "https://github.com/NetLogo/Shell-Extension#netlogo-shell-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/shell-1.0.0.zip"
}
{
name: "Simple R Extension"
codeName: "sr"
shortDescription: "Simply run R code from within NetLogo models"
longDescription: "This extension is an alternative to the built-in R extension that comes with NetLogo. The Simple R extension only requires R version 4 to be installed that you can point to using the built-in configuration menu. It does not require the use of an external Java runtime, the setup of the rjava package inside R, or the manual editing of config files."
version: "2.0.3"
homepage: "https://github.com/NetLogo/SimpleR-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sr-2.0.3.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Sound"
codeName: "sound"
shortDescription: "Play notes and sound files"
longDescription: """"""
version: "1.1.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/sound.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sound-1.1.1.zip"
}
{
name: "Stats"
codeName: "stats"
shortDescription: "Allows the analyis of collected data and provides some less common probability distributions"
longDescription: """The “stats” extension provides basic statistical functions for data generated within NetLogo models. stats maintains an internal data table of observations on an arbitrary number of variables and allows the user to find such statistics for the data as the means, medians, quantiles, percentiles, standard deviations, and variance-covariance and correlation matrices; to regress one or more variables on another; and to forecast the value of any variable into the future based on past observations. Regression statistics include R2, Adjusted R2, F and the probability of F, and for each of the coefficients, the standard error, T statistic and probability of the T statistic. stats also provides values of and the areas under the normal, log-normal, student, binomial, gamma, beta and Chi-Square distributions, and, for some, their inverses.

Although stats can be used to analyze the overall results of a run of a model, it is intended mostly for the use of “smart” agents who gather and analyze data in order to make decisions. Agents can maintain their private data tables, or use tables shared as globals, or both."""
version: "2.1.1"
homepage: "https://github.com/cstaelin/Stats-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/stats-2.1.1.zip"
}
{
name: "Store"
codeName: "store"
shortDescription: "This extension provides primitives for writing and reading string values to and from a keyed, persistent data store with callback-based primitives to match NetLogo Web."
longDescription: """The primary purpose of this extension on NetLogo desktop is to provide compatibility with the NetLogo Web version. This extension provides a unified way for a model to read and write data that persists across model loads in NetLogo desktop or NetLogo Web.

In NetLogo Web, due to the browser-based runtime environment, persistent storage available between model compiles or page refreshes must be provided in an asynchronous way using web APIs. While NetLogo desktop can simply write and read to files to store data using the built-in file primitives, NetLogo Web has no way to interact with files on a user's computer without user interaction."""
version: "1.0.1"
homepage: "https://github.com/NetLogo/Store-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/store-1.0.1.zip"
}
{
name: "String"
codeName: "string"
shortDescription: "The String Extension provides primitives for splitting and joining strings and for using regular expressions."
longDescription: ""
version: "1.1.1"
homepage: "https://github.com/NetLogo/String-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/string-1.1.1.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Table"
codeName: "table"
shortDescription: "Store pairs of values, so you can retrieve the second value by knowing the first one"
longDescription: """Tables are useful when you need to do associate values with other values. For example, you might make a table of words and their definitions. Then you can look up the definition of any word. Here, the words are the "keys". You can easily retrieve the value for any key in the table, but not vice versa."""
version: "2.0.0"
homepage: "http://ccl.northwestern.edu/netlogo/docs/table.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/table-2.0.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Time"
codeName: "time"
shortDescription: "Date/time utilities, discrete event scheduling and using time-series data"
longDescription: """The extension provides tools for representing time explicitly, especially by linking NetLogo’s ticks to a specific time interval. It allows users to do things such as starting a simulation on 1 January of 2010 and end on 31 December 2015, have each tick represent 6 hours, and check whether the current simulation date is between 1 and 15 March.

Modelers commonly need to use time series data in NetLogo. The time-series.nls file in the repo of the time extension provides convenient procedures for handling time series data. With a single command, you can load an entire time series data set from a text file. The first column in that text file holds dates or datetimes. The remaining columns can be numeric or string values. You then access the data by time and by column heading, akin to saying "get the flow from May 8, 2008".

The time extension enables a different approach to scheduling actions in NetLogo. Traditionally, a NetLogo modeler puts a series of actions or procedure calls into the "go" procedure, which is executed once each tick. Sometimes it is more natural or more efficient to instead say "have agent X execute procedure Y at time Z". This is what discrete event scheduling (also know as "dynamic scheduling") enables. Discrete event simulation has a long history and extensive literature, and this extension makes it much easier to use in NetLogo."""
version: "2.0.0"
homepage: "https://github.com/NetLogo/Time-Extension/"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/time-2.0.0.zip"
}
{
name: "Vid"
codeName: "vid"
shortDescription: "Capture videos of the model or from a webcam"
longDescription: """"""
version: "1.1.2"
homepage: "http://ccl.northwestern.edu/netlogo/docs/vid.html"
downloadURL: "https://ccl-artifacts.s3.amazonaws.com/extensions/vid-1.1.2.zip"
}
{
name: "View2.5d"
codeName: "view2.5d"
shortDescription: "Visualize agent properties as height on a 3d surface"
longDescription: """"""
version: "1.1.9"
homepage: "http://ccl.northwestern.edu/netlogo/docs/view2.5d.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/view2.5d-1.1.9.zip"
}
{
name: "Web"
codeName: "web"
shortDescription: "NetLogo primitives for talking to the web and making HTTP requests"
longDescription: """Contains numerous primitives for importing data (e.g. import-world) from URLs, and well as exporting data (e.g. export-world) to URLs, as well as a generalized primitive (make-request) for performing plain HTTP requests."""
version: "2.1.0"
homepage: "https://github.com/NetLogo/Web-Extension/"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/web-2.1.0.zip"
}
]

org.nlogo.api.MetadataLoadingException: com.typesafe.config.ConfigException$Parse: /Users/rmckinney/Library/Application Support/NetLogo/6.4/libraries.conf: 587: Expecting a value but got wrong token: '' (End of input but string quote was still open) (if you intended '' (End of input but string quote was still open) to be part of a key or string value, try enclosing the key or value in double quotes)
at org.nlogo.api.LibraryManager.updateLists(LibraryManager.scala:128)
at org.nlogo.api.LibraryManager.updateInstalledVersion(LibraryManager.scala:182)
at org.nlogo.api.LibraryManager.installExtension(LibraryManager.scala:88)
at org.nlogo.app.tools.LibrariesTab.$anonfun$install$1(LibrariesTab.scala:61)
at org.nlogo.app.tools.LibrariesTab.$anonfun$install$1$adapted(LibrariesTab.scala:61)
at org.nlogo.app.tools.LibrariesTab.wrappedInstall(LibrariesTab.scala:340)
at org.nlogo.app.tools.LibrariesTab.$anonfun$new$13(LibrariesTab.scala:222)
at org.nlogo.app.tools.LibrariesTab.$anonfun$new$13$adapted(LibrariesTab.scala:222)
at org.nlogo.app.tools.LibrariesTab$Worker.doInBackground(LibrariesTab.scala:411)
at org.nlogo.app.tools.LibrariesTab$Worker.doInBackground(LibrariesTab.scala:405)
at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.typesafe.config.ConfigException$Parse: /Users/rmckinney/Library/Application Support/NetLogo/6.4/libraries.conf: 587: Expecting a value but got wrong token: '' (End of input but string quote was still open) (if you intended '' (End of input but string quote was still open) to be part of a key or string value, try enclosing the key or value in double quotes)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:201)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:197)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:251)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:475)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:247)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.consolidateValues(ConfigDocumentParser.java:152)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseArray(ConfigDocumentParser.java:595)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:249)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.consolidateValues(ConfigDocumentParser.java:152)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:473)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parse(ConfigDocumentParser.java:648)
at com.typesafe.config.impl.ConfigDocumentParser.parse(ConfigDocumentParser.java:14)
at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:262)
at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:250)
at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:180)
at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:174)
at com.typesafe.config.impl.Parseable.parse(Parseable.java:301)
at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:793)
at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:807)
at org.nlogo.api.LibraryManager.updateLists(LibraryManager.scala:114)
... 15 more

NetLogo 6.4.0
main: org.nlogo.app.AppFrame
thread: AWT-EventQueue-0
OpenJDK 64-Bit Server VM 17.0.8.1 (BellSoft; 17.0.8.1+1-LTS)
operating system: Mac OS X 14.2.1 (x86_64 processor)
Scala version 2.12.18
JOGL: (3D View not initialized)
OpenGL Graphics: (3D View not initialized)
model: Carbon Marketplace - ABM (v3.0)

01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0
01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0
01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0
01:10:36.658 InterfaceGlobalEvent (org.nlogo.app.interfacetab.InterfacePanel$$anon$1 (org.nlogo.window.SliderWidget)) AWT-EventQueue-0
01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0
01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0
01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0
01:10:36.658 AddJobEvent (org.nlogo.window.MonitorWidget) AWT-EventQueue-0
01:10:36.658 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
01:10:36.658 JobRemovedEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) JobThread


Metadata loading error

extensions: [
{
name: "Arduino"
codeName: "arduino"
shortDescription: "Communicate with an Arduino device"
longDescription: """This extension provides 'no-frills' communication between NetLogo and a connected Arduino."""
version: "3.0.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/arduino.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/arduino-3.0.1.zip"
}
{
name: "Array"
codeName: "array"
shortDescription: "Fixed-size arrays for performance"
longDescription: """In general, anything you can do with an array in NetLogo, you could also just use a list for. But you may want to consider using an array instead for speed reasons. Lists and arrays have different performance characteristics, so you may be able to make your model run faster by selecting the appropriate data structure.

Arrays are useful when you need a collection of values whose size is fixed. You can quickly access or alter any item in an array if you know its position.

Unlike NetLogo’s lists and strings, arrays are “mutable”. That means that you can actually modify them directly, rather than constructing an altered copy as with lists. If the array is used in more than one place in your code, any changes you make will show up everywhere. It’s tricky to write code involving mutable structures and it’s easy to make subtle errors or get surprising results, so we suggest sticking with lists and strings unless you’re certain you want and need mutability."""
version: "1.1.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/array.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/array-1.1.1.zip"
}
{
name: "Bitmap"
codeName: "bitmap"
shortDescription: "Image manipulation and drawing"
longDescription: """The Bitmap Extension allows you to manipulate and import images into the drawing and patches. It offers features not provided by the NetLogo core primitives, such as: scaling, manipulation of different color channels, and width and height reporters."""
version: "1.2.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/bitmap.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/bitmap-1.2.1.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Bitstring datatype for NetLogo"
codeName: "bitstring"
shortDescription: "Provides bitstrings as datatypes and commands to operate on them"
longDescription: """A bitstring extension for NetLogo. Bitstrings are strings of binary digits. This extension provides you with an implementation of bitstrings and a number of commands and reporters to operate on them."""
version: "2.1.0"
homepage: "https://github.com/garypolhill/netlogo-bitstring/blob/nl6/README.md"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/bitstring-2.1.0.zip"
}
{
name: "Case based reasoning"
codeName: "cbr"
shortDescription: "A case based reasoner extension"
longDescription: """A case base reasoner that provides the necessary
keywords to implement a case based reasoner consistently. A case base consists
of the riple: state,decision,outcome. This framework can return single or
multiple triples from the case base which match a given state and decision
using the the inbuilt distance function or a user defined function. Command to dynamically modify the case base are also provided, such as addition and deletion of specific cases based on age, or size of case base.
"""
version: "1.0.2"
homepage: "https://github.com/DougSalt/cbr.git"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/cbr-1.0.2.zip"
}
{
name: "CLIPS"
codeName: "clips"
shortDescription: "Run CLIPS code from NetLogo"
longDescription: """This NetLogo extension allows you to run CLIPS code inside of the NetLogo environment. There is no need to install CLIPS because this extension includes the CLIPS JNI that contains all the functionality. The CLIPS version compatible with this extension is the v6.3.
"""
version: "0.1.0"
homepage: "https://github.com/aniavasq/NetLogo-CLIPS-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/clips-0.1.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "CogLogo"
codeName: "coglogo"
shortDescription: "The Cogniton architecture in NetLogo"
longDescription: "Provides a NetLogo implementation of the Cogniton architecture, which focuses on the design of multiagent simulations of complex socio-cognitive systems."
version: "1.18.1"
homepage: "https://github.com/suroFr/CogLogo/blob/master/readMe.txt"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/coglogo-1.18.1.zip"
}
{
name: "Control Flow"
codeName: "cf"
shortDescription: "More powerful control flow primitives"
longDescription: """This deprecated NetLogo extension adds control-flow ifelse and ifelse-value that allow more than two branches. As of NetLogo 6.1.0 these primitives are built in to NetLogo and this extension is provided for backwards compatibility only."""
version: "2.0.1"
homepage: "https://github.com/NetLogo/ControlFlowExtension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/cf-2.0.1.zip"
}
{
name: "CSV"
codeName: "csv"
shortDescription: "Read and write csv files"
longDescription: """"""
version: "1.1.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/csv.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/csv-1.1.1.zip"
}
{
name: "DBSCAN"
codeName: "dbscan"
shortDescription: "Perform unsupervised density-based clustering of turtles and patches based on specified turtle/patch variables or by proximity using the DBSCAN algorithm"
longDescription: """NetLogo extension for DBSCAN clustering algorithm

It allows you to perform unsupervised density-based clustering of turtles and patches based on specified turtle/patch variables or by proximity. The main advantage over supervised algorithms such as K-Means is that it is not necessary to specify the number of resulting clusters in advance. See the homepage for detailed documentation and examples."""
version: "0.4"
homepage: "https://github.com/chrfrantz/NetLogo-Extension-DBSCAN#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dbscan-0.4.zip"
}
{
name: "Dist"
codeName: "dist"
shortDescription: "Plot frequency distributions and complementary cumulative distribution functions"
longDescription: "The dist extension makes it easy to plot frequency distributions and complementary cumulative distribution functions in NetLogo."
version: "2.0"
homepage: "https://github.com/nicolaspayette/DistExtension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dist-2.0.zip"
}
{
name: "Dialog"
codeName: "dialog"
shortDescription: "Displays dialog boxes with a NetLogo Web-compatible feature set"
longDescription: "Displays dialog boxes with a NetLogo Web-compatible feature set"
version: "1.0.0"
homepage: "https://github.com/NetLogo/Dialog-Extension#dialog-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/dialog-1.0.0.zip"
}
{
name: "Encode"
codeName: "encode"
shortDescription: "Conversions between byte lists, UTF-8 strings, and base64-encoded strings"
longDescription: "This extension is for converting between lists of bytes and strings of different encodings. This is particularly useful for, say, taking binary data and turning it into a base64 string that can be easily passed around, or reading base64 data, converting it to a list of bytes, and directly manipulating those bytes."
version: "1.0.1"
homepage: "https://github.com/NetLogo/Encode-Extension#encode-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/encode-1.0.1.zip"
}
{
name: "EpiLogo"
codeName: "epilogo"
shortDescription: "An epidemiological package for NetLogo"
longDescription: "An epidemiological package for NetLogo containing features such as demographic population initialization, agent pathfinding, agent scheduling and disease campaigning. This package allows for easy and less complex development of epidemiological models within NetLogo"
version: "4.0.0"
homepage: "https://github.com/JakeSaunders1995/EpiLogo"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/epilogo-4.0.0.zip"
}
{
name: "Export-The"
codeName: "export-the"
shortDescription: "Exports special values as strings instead of as files"
longDescription: "Reports special values (such as model file contents, export-world results, export-view results, export-output results, and export-plot results) as strings, so they can be used and/or manipulated from directly within NetLogo. This extension is especially well-suited for use alongside the Import-A extension."
version: "1.0.3"
homepage: "https://github.com/NetLogo/ExportThe-Extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/export-the-1.0.3.zip"
}
{
name: "Factbase"
codeName: "factbase"
shortDescription: "Adds a new datatype called factbase, a structured set of data"
longDescription: """A fact base can be thought of as a table of named columns ("fields"), where each row comprises an entry ("fact").

At creation, the user has to define the structure of the fact base, that means define the field names. Note that in keeping with the NetLogo philosophy of a type-free language, data types for fields are not specified. After creating a fact base, facts can be asserted, queried and retracted. Facts are represented as lists of values, with one value for each field and all values in the same order as defined by the list of field names. Duplicate facts are not allowed."""
version: "1.1"
homepage: "https://github.com/ruthmore/netlogo-factbase"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/factbase-1.1.zip"
}
{
name: "Fetch"
codeName: "fetch"
shortDescription: "Read files and URLs"
longDescription: "Primitives for reading files and URLs, with NetLogo Web compatibility"
version: "1.0.5"
homepage: "https://github.com/NetLogo/Fetch-Extension#fetch-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fetch-1.0.5.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Functional Programming"
codeName: "fp"
shortDescription: "Use functional programming primitives"
longDescription: "Primitives for common functional programming functions and higher-order procedures"
version: "1.1.0"
homepage: "https://github.com/NetLogo/FP-Extension#netlogo-functional-programming-extension-fp"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fp-1.1.0.zip"
}
{
name: "Fuzzy Logic"
codeName: "fuzzy"
shortDescription: "Use fuzzy sets and fuzzy logic"
longDescription: "Extension that facilitates the use of fuzzy sets and fuzzy logic within NetLogo."
version: "2.0"
homepage: "https://github.com/luis-r-izquierdo/netlogo-fuzzy-logic-extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/fuzzy-2.0.zip"
}
{
name: "GIS"
codeName: "gis"
shortDescription: "Analyse, manipulate and draw GIS data"
longDescription: """This extension adds GIS (Geographic Information Systems) support to NetLogo. It provides the ability to load vector GIS data (points, lines, and polygons), and raster GIS data (grids) into your model.

The extension supports vector data in the form of ESRI shapefiles and GeoJSON files. The shapefile (.shp) format is the most common format for storing and exchanging vector GIS data, whereas GeoJSON (.geojson or just .json) is a newer, more lightweight alternative. The extension can import and export both file formats. The extension supports single-band raster data in the form of ESRI ASCII Grid files. The ASCII grid file (.asc or .grd) is not as common as the shapefile, but is supported as an interchange format by most GIS platforms and can also be exported by the extension."""
version: "1.3.3"
homepage: "http://ccl.northwestern.edu/netlogo/docs/gis.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gis-1.3.3.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "GoGo"
codeName: "gogo"
shortDescription: "Interact with HID-based GoGo boards"
longDescription: """This is the new extension for physical computing, using sensors, motors, etc in NetLogo. It interfaces with GoGo boards running Human Interface Driver (HID) firmware, and it replaces the old GoGo Extension, which used USB-serial communications."""
version: "2.0.9"
homepage: "http://ccl.northwestern.edu/netlogo/docs/gogo.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gogo-2.0.9.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Gnu Pretty Good Privacy"
codeName: "gpg"
shortDescription: "Gnu Pretty Good Privacy (GnuPG) Extension"
longDescription: """Implements a NetLogo extension that utilises GnuPG privacy suite to decrypt data that is encoded symmetrically or asymmetrically. This will allow for the secure storing of sensitive data in public repositories as these keys can be tailored to specific individuals or groups of individuals. Additionally this allows the absolute destruction of publically available data providing the it can be proven that the keys for such data no longer exist.

Note GnuPG must be installed in the command path.
"""
version: "1.0.0"
homepage: "https://github.com/DougSalt/gpg.git"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gpg-1.0.0.zip"
}
{
name: "GPT"
codeName: "gpt"
shortDescription: "Let agents communicate and make decisions using GPT-3.5 or GPT-4"
longDescription: ""
version: "0.0.0"
homepage: "https://github.com/qiemem/NetLogoGptExtension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/gpt-0.0.0.zip"
}
{
name: "Import-A"
codeName: "import-a"
shortDescription: "Generalized import-* primitives"
longDescription: "Primitives for running import-drawing, import-pcolors, and import-pcolors-rgb on base64 strings, and import-world on plain text strings"
version: "1.0.6"
homepage: "https://github.com/NetLogo/ImportA-Extension#import-a"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/import-a-1.0.6.zip"
}
{
name: "NodeJS"
codeName: "js"
shortDescription: "Run JavaScript code from NetLogo"
longDescription: """This extension allows you to run JavaScript code from within NetLogo. It is built on top of the Node.js runtime, so any Node packages, e.g. from npm, will work as expected.
"""
version: "0.2.0"
homepage: "https://github.com/NetLogo/NodeJS-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/js-0.2.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Java Virtual Machine toolkit"
codeName: "mgr"
shortDescription: "Various commands for accessing information about the Java Virtual Machine running your NetLogo model"
longDescription: """The Java Virtual Machine is the 'computer' that runs your NetLogo model, and Java provides various commands to access information about such things as how much of various different kinds of memory you are using, how many threads are running, and how much CPU time your use of NetLogo is taking. The commands in this extension allow you to access this information, which can be helpful, especially in 'headless' mode, in determining whether you need to make adjustments to default settings for the Java Virtual Machines when running the model."""
version: "1.0.1"
homepage: "https://github.com/garypolhill/netlogo-jvmgr"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/mgr-1.0.1.zip"
}
{
name: "java.Math"
codeName: "math"
shortDescription: "Access Java math library from NetLogo"
longDescription: """Java's Math library provides a number of mathematical functions that NetLogo doesn't, with guaranteed numerical properties. This extension provides access to them."""
version: "1.0.1"
homepage: "https://github.com/garypolhill/netlogo-math"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/math-1.0.1.zip"
}
{
name: "Landscapes"
codeName: "landscapes"
shortDescription: "For creating continuous function optimization problem landscapes in NetLogo"
longDescription: """This extension is a thin wrapper around the continuous function optimization problems classes implemented in the Optimization Algorithm Toolkit (OAT).

A continuous function optimization problem is one where you are are trying to find either the global optima or minima of a continuous function. OAT implements many such problems as Java classes. The goal of this extension is to make most of these problems easily usable from NetLogo."""
version: "1.0.2"
homepage: "https://github.com/NetLogo/Landscapes-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/landscapes-1.0.2.zip"
}
{
name: "LevelSpace"
codeName: "ls"
shortDescription: "LevelSpace allows you to run NetLogo models |: from inside NetLogo models :|"
longDescription: """LevelSpace is an extension for NetLogo that allows you to run several models concurrently and have them "talk" with each other. LevelSpace models are hierarchical, in that models always belong hierarchically to another model. We will refer to models that have loaded LevelSpace and have opened models as 'parents', and to the models they have opened as 'children' or 'child models'.

Note: As of v2.3.2, LevelSpace will only run on NetLogo 6.2.0 or newer due to changes to the code tab system. As of v2.3.4 LevelSpace requires NetLogo 6.3.0 running Java 11 or higher.

Asking and reporting in LevelSpace is conceptually pretty straight forward: You pass blocks of code to child models, and the child models respond as if you had typed that code into their Command Center. LevelSpace allows you to report strings, numbers, and lists from a child to its parent.

In general, the LevelSpace syntax has been designed to align with existing NetLogo primitives whenever possible.

Changelog:

v2.3.4:

  • Allow LevelSpace to run alongside the Profiler extension in the parent model.

"""
version: "2.3.4"
homepage: "http://ccl.northwestern.edu/netlogo/docs/ls.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/ls-2.3.4.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "list"
codeName: "lt"
shortDescription: "A mutable list datatype for NetLogo"
longDescription: """NetLogo's built-in list datatype is immutable -- once a list is created, you cannot change it. Instead NetLogo commands such as fput create a new list from the old list and whatever change the command stipulates.

The lt extension provides a mutable list datatype, with commands that change the original list rather than creating a new one. In code where you are working with very long lists, you may find this more efficient."""
version: "1.1.0"
homepage: "https://github.com/garypolhill/netlogo-list"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lt-1.1.0.zip"
}
{
name: "Look up table"
codeName: "lkt"
shortDescription: "Look up table implementation."
longDescription: """Implements a NetLogo extension that uses tree definition files for defining dimensions (which, in a look up table and like R is usually a "factor" or categorical variable), and then a data file mapping the values of these dimensions to outcomes.
"""
version: "1.0.0"
homepage: "https://github.com/DougSalt/lkt.git"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lkt-1.0.0.zip"
}
{
name: "LPSolver"
codeName: "lpsolver"
shortDescription: "Adds linear programming support to NetLogo"
longDescription: """This extension allows the user to integrate linear programming functionality within NetLogo models, leveraging the open source Linear Program solver
lpsolve (available freely via SourceForge)."""
version: "3.0"
homepage: "https://github.com/AFMac/NetLogoLPSolver"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/lpsolver-3.0.zip"
}
{
name: "Matching"
codeName: "matching"
shortDescription: "Matching market implementation"
longDescription: """"""
version: "1.0.0"
homepage: "https://github.com/mitre/Matching-Extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/matching-1.0.0.zip"
}
{
name: "Matrix"
codeName: "matrix"
shortDescription: "Matrices support, including manipulation, math operations and some advanced features"
longDescription: """Although matrices store numbers, much like a list of lists, or an array of arrays, the primary reason to use the matrix data type is to take advantage of special mathematical operations associated with matrices. For instance, matrix multiplication is a convenient way to perform geometric transformations, and the repeated application of matrix multiplication can also be used to simulate other dynamic processes (for instance, processes on graph/network structures).

If you’d like to know more about matrices and how they can be used, you might consider a course on linear algebra, or search the web for tutorials. The matrix extension also allows you to solve linear algebraic equations (specified in a matrix format), and even to identify trends in your data and perform linear (ordinary least squares) regressions on data sets with multiple explanatory variables."""
version: "1.1.2"
homepage: "http://ccl.northwestern.edu/netlogo/docs/matrix.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/matrix-1.1.2.zip"
}
{
name: "Network"
codeName: "nw"
shortDescription: "NetWork analysis tools"
longDescription: """"""
version: "4.0.0"
homepage: "http://ccl.northwestern.edu/netlogo/docs/nw.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/nw-4.0.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "nneco"
codeName: "nneco"
shortDescription: "This extension can be used to give an artificial neural network to each agent, or to the Observer."
longDescription: """
A simple back propagation feed forward neural network adapted for being driven by another user class. It has only one hidden layer.
Adapted with corrections from the Neural class by Mark Watson, 1997, Intelligent Java Applications, Morgan Kaufmann, SF:CA.
My modifications are based on T. Masters, 1993, Practical Neural Recipes in C++, Academic Press, San Diego: CA.
If you use this extension in a publication, please cite it as:
Yildizoglu Murat, 2021, "A NetLogo extension implementing feed-forward artificial neural networks for agents", https://yildizoglu.fr/software/nneco/, University of Bordeaux, France.
This version is for NetLogo 6.1 and above"""
version: "6.1"
homepage: "https://yildizoglu.fr/software/nneco/"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/nneco-6.1.zip"
}
{
name: "NumAnal"
codeName: "numanal"
shortDescription: "A set of numerical analysis routines for NetLogo"
longDescription: """The NumAnal extension contains methods for finding the roots of single equations (Brent) and multivariable systems of equations (Newton and Broyden), for finding the minima of single equations (Brent) and multivariable functions (BOBYQA, CDS, CGS, CMAES, DES and Simplex), for solving linear programming problems (LPsimplex and LPdualsimplex), for finding fixed points (Scarf), and for evaluating definite integrals (Romberg). Documentation can be found in the folder/directory where the Extension Manager has installed the extension."""
version: "3.4.0"
homepage: "https://github.com/cstaelin/NumAnal-Extension/releases"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/numanal-3.4.0.zip"
}
{
name: "Palette"
codeName: "palette"
shortDescription: "Control specific components of colors. Use ColorBrewer color schemes."
longDescription: """The NetLogo palette extension offers the user more control over their colors. The colors go beyond NetLogo colors, including ColorBrewer color schemes and arbitrary RGB colors. Additionally, users can control specific components of their color such as alpha, hue and red. Users can map values to color gradients and can launch a ColorBrewer dialog for easy scheme selection."""
version: "2.0.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/palette.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/palette-2.0.1.zip"
}
{
name: "Pathdir"
codeName: "pathdir"
shortDescription: "Some useful operations on files and directories"
longDescription: "Pathdir provides tools for finding the name of the current model, the current working, user and model directories; creating, moving, renaming, identifying and deleting directories; and listing the contents of directories. Pathdir also allows one to find the size and modification date of files."
version: "3.1.0"
homepage: "https://github.com/cstaelin/Pathdir-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/pathdir-3.1.0.zip"
}
{
name: "Physics"
codeName: "phys"
shortDescription: "Extension for simulating physics in NetLogo models"
longDescription: "The NetLogo physics extension provides a simple way to simulate physics on agents and patches within models. Currently, to do physics simulation in a model, a great deal of code is required to handle motion, collisions and gravity. In some cases it is possible to copy this code from model to model to implement physics simulations without having a deep level of understanding of the code itself, but this process can still be fairly complicated. The physics extension allows a modeler to interact with a physics simulation that runs outside of the model with a handful of intuitive NetLogo primitives without having to worry about any complicated physics code."
version: "0.4.2"
homepage: "https://github.com/NetLogo/Physics-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/phys-0.4.2.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Profiler"
codeName: "profiler"
shortDescription: "See how much time operations take"
longDescription: """If you’d like your model to run faster, the profiler extension may be useful to you. It includes primitives that measure how many times the procedures in your model are called during a run and how long each call takes. You can use this information to where to focus your speedup efforts.

Caution:

The profiler extension is experimental. It is not yet well tested or user friendly. Nonetheless, we think some users will find it useful."""
version: "1.2.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/profiler.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/profiler-1.2.1.zip"
}
{
name: "Python"
codeName: "py"
shortDescription: "Run Python code from NetLogo"
longDescription: """This NetLogo extension allows you to run Python code from NetLogo. It works with both Python 2 and 3, and should work with almost all Python libraries."""
version: "0.5.5"
homepage: "https://github.com/NetLogo/Python-Extension/releases"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/py-0.5.5.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Q-Learning Extension"
codeName: "qlearningextension"
shortDescription: "Provides an easy way to use Q-Learning within Netlogo."
longDescription: """Allows you to specify everything Q-Learning needs in a simple way. With this extension, you don't have to worry about creating a Q-Table or updating it with just one command, the extension does it for you."""
version: "2.0"
homepage: "https://github.com/KevinKons/qlearning-netlogo-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/qlearningextension-2.0.zip"
}
{
name: "Queue"
codeName: "queue"
shortDescription: "A queue with time-weighted statistics"
longDescription: """The queue extension provides NetLogo with a queue, a commonly-used data type in discrete-event simulation. Objects can be inserted into a queue at a particular point in simulation time according to a specified queueing strategy (FIFO or LIFO). Requests to remove an element from a queue always returns the top-most object (or nobody if the queue is empty). Queues can be questioned about their current status (length, empty?) and time-weighted statistics are calculated (mean/max length, mean/max waiting time)."""
version: "1.1"
homepage: "https://github.com/ruthmore/netlogo-queue"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/queue-1.1.zip"
}
{
name: "R"
codeName: "r"
shortDescription: "Primitives for using the statistical software R"
longDescription: """The R-Extension of NetLogo provides primitives to use the statistical software R (Gnu S) (see the R Project website) within a NetLogo model. There are primitives to create R-Variables with values from NetLogo variables or agents and others to evaluate commands in R with and without return values."""
version: "1.2.4"
homepage: "http://ccl.northwestern.edu/netlogo/docs/r.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/r-1.2.4.zip"
}
{
name: "Rnd"
codeName: "rnd"
shortDescription: "Use random with a non-uniform distribution"
longDescription: """This extension adds the ability to do roulette wheel selection in NetLogo. It provides a simpler way to accomplish the same thing as the Lottery Example from the NetLogo Models Library."""
version: "3.0.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/rnd.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/rnd-3.0.1.zip"
}
{
name: "Expanded Random Number Generator"
codeName: "rngs"
shortDescription: "Multiple independent streams and expanded random distributions"
longDescription: """This extension allows the user to define multiple independent streams of random numbers and provides access to an expanded selection of discrete and continuous random distributions."""
version: "2.0"
homepage: "https://github.com/AFMac/rngs"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/rngs-2.0.zip"
}
{
name: "Sample"
codeName: "sample"
shortDescription: "An example extension written in Java"
longDescription: """"""
version: "1.1.1"
homepage: "https://github.com/netlogo/sample-extension/#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sample-1.1.1.zip"
}
{
name: "Sample-Scala"
codeName: "sample-scala"
shortDescription: "An example extension written in Scala"
longDescription: """"""
version: "1.1.1"
homepage: "https://github.com/netlogo/sample-scala-extension/#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sample-scala-1.1.1.zip"
}
{
name: "Send-To"
codeName: "send-to"
shortDescription: "Send string data to a file"
longDescription: ""
version: "1.0.1"
homepage: "https://github.com/NetLogo/SendTo-Extension#readme"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/send-to-1.0.1.zip"
}
{
name: "Shell"
codeName: "shell"
shortDescription: "NetLogo extension to run commands, read and write environment variables"
longDescription: ""
version: "1.0.0"
homepage: "https://github.com/NetLogo/Shell-Extension#netlogo-shell-extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/shell-1.0.0.zip"
}
{
name: "Simple R Extension"
codeName: "sr"
shortDescription: "Simply run R code from within NetLogo models"
longDescription: "This extension is an alternative to the built-in R extension that comes with NetLogo. The Simple R extension only requires R version 4 to be installed that you can point to using the built-in configuration menu. It does not require the use of an external Java runtime, the setup of the rjava package inside R, or the manual editing of config files."
version: "2.0.3"
homepage: "https://github.com/NetLogo/SimpleR-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sr-2.0.3.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Sound"
codeName: "sound"
shortDescription: "Play notes and sound files"
longDescription: """"""
version: "1.1.1"
homepage: "http://ccl.northwestern.edu/netlogo/docs/sound.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/sound-1.1.1.zip"
}
{
name: "Stats"
codeName: "stats"
shortDescription: "Allows the analyis of collected data and provides some less common probability distributions"
longDescription: """The “stats” extension provides basic statistical functions for data generated within NetLogo models. stats maintains an internal data table of observations on an arbitrary number of variables and allows the user to find such statistics for the data as the means, medians, quantiles, percentiles, standard deviations, and variance-covariance and correlation matrices; to regress one or more variables on another; and to forecast the value of any variable into the future based on past observations. Regression statistics include R2, Adjusted R2, F and the probability of F, and for each of the coefficients, the standard error, T statistic and probability of the T statistic. stats also provides values of and the areas under the normal, log-normal, student, binomial, gamma, beta and Chi-Square distributions, and, for some, their inverses.

Although stats can be used to analyze the overall results of a run of a model, it is intended mostly for the use of “smart” agents who gather and analyze data in order to make decisions. Agents can maintain their private data tables, or use tables shared as globals, or both."""
version: "2.1.1"
homepage: "https://github.com/cstaelin/Stats-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/stats-2.1.1.zip"
}
{
name: "Store"
codeName: "store"
shortDescription: "This extension provides primitives for writing and reading string values to and from a keyed, persistent data store with callback-based primitives to match NetLogo Web."
longDescription: """The primary purpose of this extension on NetLogo desktop is to provide compatibility with the NetLogo Web version. This extension provides a unified way for a model to read and write data that persists across model loads in NetLogo desktop or NetLogo Web.

In NetLogo Web, due to the browser-based runtime environment, persistent storage available between model compiles or page refreshes must be provided in an asynchronous way using web APIs. While NetLogo desktop can simply write and read to files to store data using the built-in file primitives, NetLogo Web has no way to interact with files on a user's computer without user interaction."""
version: "1.0.1"
homepage: "https://github.com/NetLogo/Store-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/store-1.0.1.zip"
}
{
name: "String"
codeName: "string"
shortDescription: "The String Extension provides primitives for splitting and joining strings and for using regular expressions."
longDescription: ""
version: "1.1.1"
homepage: "https://github.com/NetLogo/String-Extension"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/string-1.1.1.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Table"
codeName: "table"
shortDescription: "Store pairs of values, so you can retrieve the second value by knowing the first one"
longDescription: """Tables are useful when you need to do associate values with other values. For example, you might make a table of words and their definitions. Then you can look up the definition of any word. Here, the words are the "keys". You can easily retrieve the value for any key in the table, but not vice versa."""
version: "2.0.0"
homepage: "http://ccl.northwestern.edu/netlogo/docs/table.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/table-2.0.0.zip"
minNetLogoVersion: "NetLogo 6.3.0"
}
{
name: "Time"
codeName: "time"
shortDescription: "Date/time utilities, discrete event scheduling and using time-series data"
longDescription: """The extension provides tools for representing time explicitly, especially by linking NetLogo’s ticks to a specific time interval. It allows users to do things such as starting a simulation on 1 January of 2010 and end on 31 December 2015, have each tick represent 6 hours, and check whether the current simulation date is between 1 and 15 March.

Modelers commonly need to use time series data in NetLogo. The time-series.nls file in the repo of the time extension provides convenient procedures for handling time series data. With a single command, you can load an entire time series data set from a text file. The first column in that text file holds dates or datetimes. The remaining columns can be numeric or string values. You then access the data by time and by column heading, akin to saying "get the flow from May 8, 2008".

The time extension enables a different approach to scheduling actions in NetLogo. Traditionally, a NetLogo modeler puts a series of actions or procedure calls into the "go" procedure, which is executed once each tick. Sometimes it is more natural or more efficient to instead say "have agent X execute procedure Y at time Z". This is what discrete event scheduling (also know as "dynamic scheduling") enables. Discrete event simulation has a long history and extensive literature, and this extension makes it much easier to use in NetLogo."""
version: "2.0.0"
homepage: "https://github.com/NetLogo/Time-Extension/"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/time-2.0.0.zip"
}
{
name: "Vid"
codeName: "vid"
shortDescription: "Capture videos of the model or from a webcam"
longDescription: """"""
version: "1.1.2"
homepage: "http://ccl.northwestern.edu/netlogo/docs/vid.html"
downloadURL: "https://ccl-artifacts.s3.amazonaws.com/extensions/vid-1.1.2.zip"
}
{
name: "View2.5d"
codeName: "view2.5d"
shortDescription: "Visualize agent properties as height on a 3d surface"
longDescription: """"""
version: "1.1.9"
homepage: "http://ccl.northwestern.edu/netlogo/docs/view2.5d.html"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/view2.5d-1.1.9.zip"
}
{
name: "Web"
codeName: "web"
shortDescription: "NetLogo primitives for talking to the web and making HTTP requests"
longDescription: """Contains numerous primitives for importing data (e.g. import-world) from URLs, and well as exporting data (e.g. export-world) to URLs, as well as a generalized primitive (make-request) for performing plain HTTP requests."""
version: "2.1.0"
homepage: "https://github.com/NetLogo/Web-Extension/"
downloadURL: "https://raw.githubusercontent.com/NetLogo/NetLogo-Libraries/6.1/extensions/web-2.1.0.zip"
}
]

org.nlogo.api.MetadataLoadingException: com.typesafe.config.ConfigException$Parse: /Users/rmckinney/Library/Application Support/NetLogo/6.3/libraries.conf: 502: Expecting a value but got wrong token: '' (End of input but string quote was still open) (if you intended '' (End of input but string quote was still open) to be part of a key or string value, try enclosing the key or value in double quotes)
at org.nlogo.api.LibraryManager.updateLists(LibraryManager.scala:131)
at org.nlogo.api.LibraryManager.updateInstalledVersion(LibraryManager.scala:185)
at org.nlogo.api.LibraryManager.installExtension(LibraryManager.scala:91)
at org.nlogo.app.tools.LibrariesTab.$anonfun$install$1(LibrariesTab.scala:61)
at org.nlogo.app.tools.LibrariesTab.$anonfun$install$1$adapted(LibrariesTab.scala:61)
at org.nlogo.app.tools.LibrariesTab$Worker.doInBackground(LibrariesTab.scala:407)
at org.nlogo.app.tools.LibrariesTab$Worker.doInBackground(LibrariesTab.scala:401)
at java.desktop/javax.swing.SwingWorker$1.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.desktop/javax.swing.SwingWorker.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: com.typesafe.config.ConfigException$Parse: /Users/rmckinney/Library/Application Support/NetLogo/6.3/libraries.conf: 502: Expecting a value but got wrong token: '' (End of input but string quote was still open) (if you intended '' (End of input but string quote was still open) to be part of a key or string value, try enclosing the key or value in double quotes)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:201)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseError(ConfigDocumentParser.java:197)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:251)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:475)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:247)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.consolidateValues(ConfigDocumentParser.java:152)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseArray(ConfigDocumentParser.java:595)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseValue(ConfigDocumentParser.java:249)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.consolidateValues(ConfigDocumentParser.java:152)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parseObject(ConfigDocumentParser.java:473)
at com.typesafe.config.impl.ConfigDocumentParser$ParseContext.parse(ConfigDocumentParser.java:648)
at com.typesafe.config.impl.ConfigDocumentParser.parse(ConfigDocumentParser.java:14)
at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:262)
at com.typesafe.config.impl.Parseable.rawParseValue(Parseable.java:250)
at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:180)
at com.typesafe.config.impl.Parseable.parseValue(Parseable.java:174)
at com.typesafe.config.impl.Parseable.parse(Parseable.java:301)
at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:792)
at com.typesafe.config.ConfigFactory.parseFile(ConfigFactory.java:806)
at org.nlogo.api.LibraryManager.updateLists(LibraryManager.scala:117)
... 12 more

NetLogo 6.3.0
main: org.nlogo.app.AppFrame
thread: AWT-EventQueue-0
OpenJDK 64-Bit Server VM 17.0.4 (BellSoft; 17.0.4+8-LTS)
operating system: Mac OS X 14.2 (x86_64 processor)
Scala version 2.12.16
JOGL: (3D View not initialized)
OpenGL Graphics: (3D View not initialized)
model: Carbon Marketplace - ABM (v1)

02:44:26.713 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:25.510 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:25.306 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:25.104 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:24.495 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:24.291 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:24.089 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:23.884 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:23.680 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0
02:44:23.478 PeriodicUpdateEvent (org.nlogo.app.App$$anon$4 (org.nlogo.window.GUIWorkspace)) AWT-EventQueue-0

How to handle large zip files (100mb+)

With recent updates to the Vid extension, the zip file size is over the 100mb limit for GitHub. GitHub advises using the git-lfs extension for this situation, which is an option for us. But I hesitated because it means anyone using or trying to contribute to this repository would have to also install that extension for their git client. For the Vid extension I decided just to put the zip file on our ccl-artifacts S3 bucket to avoid making a decision on this issue for now. Large extensions are pretty rare, as evidenced by the fact that this never came up before.

I see two options:

  1. Enable git-lfs and update instructions to include installing/using it. We should also test that the download links remain the same and are still usable by the extensions manager from NetLogo. This might be coupled with updated instructions for submitting extensions through the GitHub UI.
  2. Update the instructions to indicate files over 100mb must be uploaded elsewhere and a link provided with the pull request so we can download it and place it in our AWS bucket.

I should point out that using git-lfs might provide better performance for this repo in any case, as we do have many larger zip/binary files stored which is the use case for that extension, although none are over the size limit.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.