What's New?
NetLogo User Manual
Feedback from users is very valuable to us in designing and
improving NetLogo. We'd like to hear from you. Please send comments,
suggestions, and questions to feedback@ccl.northwestern.edu,
and bug reports to bugs@ccl.northwestern.edu.
Version 2.0.2 (August 6, 2004)
- system:
- our bundled Java VM for Windows is now Sun 1.4.2_05
(was 1.4.2_04)
- content:
- improved models: Buffer (no longer unverified),
Random Balls (bugfix)
- all Code Examples now have a copyright notice that clarifies that
use of the code in them is unrestricted
- new code examples: Network Example, Vision Cone Example,
Sound Workbench, Percussion Workbench,
Beatbox, Composer, GasLab With Sound
- features:
- NetLogo can now make sounds and music; this is done
with a new, experimental "sound extension" that is also
an example of how to use our extensions API;
documentation and code examples for the sound extension
are included, and the Java source code is available from
our website
- engine fixes:
- extension jars can now be stored in the "extensions" folder
in the NetLogo folder, making them available to all models
- fixed 2.0.1-only bug in file-read primitive that
caused it to fail on larger files
- fixed bug in sort-by primitive where the original
list was altered, instead of a copy being made
- fixed bug in histogramming where values equal to the x max were
assigned to the previous bin; this was arguably acceptable for
floating point data, but simply incorrect for integer data;
such values are now considered to fall outside the range of
the histogram
- fixed minor bug where exported world files sometimes contained
a incorrectly formatted timestamp
- interface fixes:
- shift-clicking to close an agent monitor now closes all
open agent monitors
- you can now put blank lines in a text box (and they
will survive being saved and loaded)
- errors in procedures defined first are now reported first
- improved appearance of models library dialog on Windows
- fixed 2.x-only bug where NetLogoLite.jar was not
double-clickable
- fixed bug in BehaviorSpace where if you only specified one value
for a variable, e.g. ["foo" 3], that value was ignored
- fixed Mac-only bug where control-clicking a button would
trigger it (as well as opening the contextual menu)
- computer HubNet changes:
- fixed bug that could cause a Java exception in some
circumstances
- extensions API changes:
- new convenience classes DefaultReporter and DefaultCommand
- ClassManager methods now throw ExtensionException
Version 2.0.1 (May 7, 2004)
- system:
- our bundled Java VM on Windows is now Sun 1.4.2_04
(was 1.4.2_02)
- features:
- new, experimental "extensions" API lets users write new
commands and reporters in Java;
see new "Extensions" section of User Manual
- previously unpublished "controlling" API lets users control
NetLogo from external Java code (such as for automating multiple
runs); see new "Controlling" section of User Manual
- content:
- new social science models: Scatter, El Farol, Minority Game
- new earth science model: Erosion
- new code examples: Hex Cells Example, Hex Turtles Example,
Patch Clusters Example
- improved models: Koch Curve (revamped), Binomial Rabbits (bugfix),
Ant Lines (bugfix), Shepherds (better code),
Prob Graphs Basic (simplified interface),
Random Basic (usability improvements),
Random Balls (bugfix)
- minor updates to the User Manual
- engine fixes:
- fixed bug where recompiling the model undid the effects of
set-default-shape
- fixed the file-read command so it skips trailing whitespace,
which makes it more convenient to use in conjunction
with file-at-end?
- fixed bug where using the mouse primitives could freeze NetLogo
under certain unusual circumstances
- code of the form <breed> in-radius ... now
runs much faster
- interface fixes:
- fixed bug where turtle monitors were sometimes blank
- fixed bug where unfreezing the display from the graphics control
strip sometimes caused a graphics update even when the
no-display command was in effect
- fixed bug where saving the model would close files opened by
file-open
- fixed shapes editor bug where changes to shapes weren't always
immediately visible in the graphics window
- fixed shapes editor bug where renaming a shape would cause the shape
to be duplicated
- fixed Windows-only bug where code sometimes disappeared from buttons
containing multiple lines of code
- computer HubNet changes:
- improved activities: Tragedy of the Commons (bugfix),
Gridlock Alternate (bugfix, improvements), Sampler (bugfix)
- server discovery is now off by default in the client, since
we suspected it of causing problems on some configurations
- fixed bug where the list of servers contained duplicates
- fixed assorted bugs with plots displaying incorrectly
- fixed bugs that caused the clients' graphics to
sometimes be out of sync with the server
Version 2.0.0 (December 10, 2003)
- system:
- NetLogo now requires Java 1.4.1 or higher; on non-Macintosh systems,
1.4.2 is preferred
- NetLogo now fully supports Mac OS X (not beta anymore)
- Mac OS X 10.2 users are strongly encouraged to get Java 1.4.1 Update 1
through Software Update
- NetLogo no longer supports Windows 95, MacOS 8, or MacOS 9
(however, we will continue to support NetLogo 1.3.x, which
works on those systems)
- our user interface now uses Java's Swing toolkit (and
not the older AWT toolkit)
- increased overall reliability
- NetLogo now functions more smoothly in many respects on
Linux (and probably other Unix systems)
- our recommended Java VM on Windows is now Sun 1.4.2 (instead of IBM 1.1.8);
we offer an installer that includes this VM
- content:
- new biology models: Fur, Sunflower
- new physics model: Turbulence
- new chemistry model: B-Z Reaction
- new computer science models: CA Continuous, CA Stochastic
- new social science model: Gridlock (non-HubNet version)
- new ProbLab model: Random Basic
- new code examples
One Turtle Per Patch Example, Look Ahead Example,
Grouping Turtles Example, User Interaction Example,
Neighborhoods Example, Partners Example, Random Seed Example
- models improved: Plant Growth (bugfix), Fireflies (interface
changes), Decay (made flashing optional), Fire (new turtle-based
version is much faster), Percolation (much faster),
Ants (bugfix), Rugby (bugfix, improved code),
Segregation (bugfix, improved code)
- models improved and promoted out of "unverified":
Sand (bugfix), Wandering Letters (overhauled),
Lattice Gas Automaton, Dining Philosophers,
Turing Machine 2D, Division, CA Continuous, CA Stochastic,
Vector Fields, Random Basic, Prob Graphs Basic,
Stochastic Patchwork
- new sections in Programming Guide on "Random Numbers", "Buttons",
and "Math"
- restored missing punctuation marks in PDF version of User Manual
- features:
- the "Exact Turtle Positions" and "Turtle Sizes" settings have
been merged into a single option, and they are now much faster,
more reliable, and flicker-free; so much so, in fact, that they
are now on by default; turtle and patch labels are much faster
now too
- a full of suite of primitives for reading and writing
external files is now included; see the File I/O section
of the Programming Guide in the User Manual for details
- "strict math" mode is now always on, so model results are
reproducible cross-platform
- new "Export Graphics" and "Export Interface" menu items
and export-graphics and export-interface
primitives let you save the contents of the graphics window,
or the whole interface tab, to disk as a bitmap (in PNG format),
also enabling the creation of movies of model runs
- the old BehaviorSpace tool has been scrapped; a replacement
version, still under development, is included; it does not yet have
all the functionality of the old tool, but is already useful,
and already has the following advantages over the old version:
- you can vary any global variables, not just sliders, but
also switches and choices, and any variable declared in
the procedures tab, and the values they range over can be
any values, not just numbers anymore
- you can enter arbitrary code for "setup" and "go" now;
you're not tied to using buttons that exist in your model
- you can vary variables in any order you want, rather than
BehaviorSpace choosing the order for you
- you can collect any result type you want, not just numbers
anymore
- added new "Update screen each iteration" checkbox for
forever buttons, for controlling whether a screen update
is forced each time through the button
- new primitive set-current-directory lets you
set the folder that file operations take place in
- user interface improvements:
- improved look and feel throughout the application
- mouse scroll wheels now work
- models library dialog can be navigated with the keyboard
- dialog boxes support cut, copy, and paste (using keyboard
shortcuts)
- the command center and the Procedures and Errors tabs now use the
exact same syntax highlighting editor, resolving many small
issues and inconsistencies in behavior
- added a "Go to User Community Models web page" button to the
Models Library dialog
- fixed longstanding Windows bug where the output area of the
command center could only hold 25K; there is now no known
limit
- the graphics window and plots are flicker-free now
- plots containing very large numbers of points are faster now
- you can now press the Enter or Return key to close dialog boxes
- when turtle shapes are off, if the patch size is at least 5
then turtles are now drawn slightly smaller than the patches, so
if a turtle is in the center of its patch, you can still see the
patch color around its edges
- agent monitors now report syntax errors to you instead of
silently ignoring them
- graphics control strip icons have tooltips now
- improved the automatic sizing and positioning of the main
NetLogo window so that available screen real estate is more
fully utilized
- changed the keyboard shortcuts for zooming, indenting, and
commenting to more standard choices
- fixed bug where if you made changes to your code in the Errors tab
and then saved your model without switching tabs first, your
changes wouldn't be saved
- language changes:
- changes in random number generation:
- NetLogo now uses the research-grade Mersenne Twister algorithm
to generate all random events
- added new random-gamma primitive for generating
gamma-distributed random numbers
- added new random-float primitive that always returns
a floating point number
- changed random primitive so it always returns
an integer, not a floating point number
- added new random-int-or-float primitive that behaves
the way random used to; when opening an old NetLogo
1.x model, all uses of random will automatically be
changed to random-int-or-float, but we suggest you
edit the model and change every occurrence to either random
or random-float, as appropriate
- atan 0 0 is now a runtime error, and so is using
towards (and towardsxy and so on) to ask
for the heading from a point to that same point
- we now support unary minus if you put parentheses around it,
so for example you can now write (- x)
- added new n-values reporter for conveniently
constructing lists by repeatedly running a reporter
- added new reporters patch-ahead, patch-right-and-ahead,
patch-left-and-ahead, and
patch-at-heading-and-distance
(helpful for giving turtles "vision", among other uses)
- added new shuffle reporter for shuffling a list
- added new modes reporter for finding the most frequently
appearing items in a list
- added new remove-item primitive for removing an
item from a list (or string) at a specified position
- added new turtles-on primitive for collecting
the set of turtles (or turtles of a particular breed)
standing on a patch or set of patches
- added new ifelse-value reporter
(lets you put conditionals in reporters; this is the same
as what StarLogoT called ifelse-report)
- added new in-radius-nowrap reporter (like
in-radius, but doesn't wrap around screen edges)
- the display primitive now has the additional function
of forcing an immediate screen update, since the graphics window
in NetLogo 2.0 sometimes skips frames
- new primitives turtles-from and patches-from
provide a powerful new way to construct agentsets
- random-one-of and random-n-of now work
on lists too, not just agentsets
- the show primitive now puts double quotes around strings,
so you can distinguish them from other values; there is also
a new write primitive that behaves the same way, but
doesn't show the agent
- butfirst and butlast now cause a runtime
error if given an empty list as input
- the color constants (red, blue, and so on) are
now floating point numbers, not integers, since turtle and patch
colors are always floating point
- the display and no-display commands may now be
used by turtles and patches as well as by the observer
- primitives such as import-world and
hubnet-set-client-interface now interpret relative
pathnames as relative to the location of the model, not relative
to the location of the application
- old models will automatically be updated to reflect the following
changes when opened in the new version:
- dropped support for pc as an alias for pcolor
- renamed any to any?
and user-yes-or-no to user-yes-or-no?
- renamed histogram to histogram-from
- dropped support for set-plot-pen as an alias for
create-temporary-plot-pen
- engine fixes:
- fixed bug where using report or
stop inside a repeat or foreach
loop could cause incorrect results or a Java exception
- fixed bug where some primitives (including
value-from, -of, distance,
towards, and inspect) did not deal
properly with dead turtles
- fixed bug where every didn't work as expected
when used inside an explicit without-interruption
- fixed issue where using
without-interruption always caused an agent's turn to
end after the code inside ran
- fixed bug where under certain very obscure circumstances
dead turtles could continue to execute code for a short time
after dying
- fixed obscure bug where if a turtle agentset was stored in a
variable and in a turtle in the set died, then under certain
circumstances, code that subsequently tried to use the agentset
could cause a Java exception
- fixed bug where using hatch with a negative number
could cause a Java exception (now it just does nothing)
- fixed bug where min and max
didn't signal a runtime error in every case if given an
list with no numbers in it
- fixed towards (and towards-nowrap,
towardsxy, and towardsxy-nowrap) to return
numbers in the range [0,360), not [-90,270) as they previously did
- fixed bug where numbers in sliders displayed in scientific
notation could be shown with an incorrect exponent
- fixed minor issue where remove primitive evaluated
its arguments right-to-left instead of left-to-right
- computer HubNet improvements:
- computer HubNet is no longer alpha or beta, but a normal
release
- improved reliability
- greatly improved graphics window mirroring features and
performance; this is now no longer considered an "experimental"
feature
- improved activity: Tragedy of the Commons (now out of
unverified)
- new unverified activities: Polling Advanced,
Gridlock Alternate,
Beer Game, Beer Game Alternate 1, Beer Game Alternate 2
- server now asks for a name for the computer that is running
the activity; this can be the facilitator's name or some other name;
it is displayed on the clients in the server menu
- server menu on clients now only lists servers
that are running a compatible version of NetLogo,
and the version is also checked when connecting
- you can now export data from a plot in a client
(by right or control clicking)
- new feature: text input widgets in clients
enables clients to input text or NetLogo code into
the simulation
Version 1.3.1 (September 2003)
- system:
- on Mac OS X systems running Java 1.4.1 Update 1, don't give
spurious warning that the wrong version of Java is installed
- documentation:
- fixed some broken links in the User Manual
- engine fixes:
- fixed bug in the at-points reporter that could cause an
agentset with duplicates in it to be returned
- fixed obscure bug in the die command that caused some
models (such as Gas Chromatography) to behave incorrectly
- fixed bug where correct code using the reduce primitive
would sometimes fail to compile
- fixed bug in "Import World" where if the import file contained
the empty string, the built-in variable would be set to 0.0
without notifying the user (this bug should only have affected
users who edited a world file using another application)
- interface fixes:
- compiler now gives a clearer error message if you try to use a
non-ASCII character in an identifier; non-ASCII characters are
now permissible in some other contexts (such as in strings)
where they weren't in NetLogo 1.3
- fixed obscure bug where occasionally models were saved with turtle
shapes in a format that couldn't be loaded on certain Java virtual
machines
- fixed bug where hitting the close box in the dialog that opens
when creating a new widget in the interface tab could cause
a Java exception
Version 1.3 (June 2003)
- graphics window control strip
- choice widgets
- "Export World" now inter-operates properly with
Excel and other programs
- Edit menu now has items for commenting/indenting
- redesigned interface toolbar
- strict math mode so results are identical on all platforms
(requires Java 1.3 or higher)
- new primitives: run/runresult,
map/foreach/filter/reduce, sort-by,
self, asin/acos
- some primitives such as list now accept a variable number
of inputs
- many improvements to usability and reliability of computer HubNet
Version 1.2 (March 2003)
- models run faster now
- beta-level support for running as a native application on Mac OS X
- running the full authoring environment as an applet
in a web browser is no longer supported (saving individual
models as applets is still supported, however)
- alpha release of computer HubNet: formerly HubNet required the TI
Navigator calculator network to operate; now you can use it
over TCP/IP with networks of laptop or desktop computers
- many new primitives and other language improvements
- display of coordinates when mousing over plots
Version 1.1 (July 2002)
- models run faster now
- "Save as Applet" lets you embed your model in any web page
- printer support
- Procedures menu
- scrollable Interface tab
- contextual menus in Interface tab
- improved agent monitors
- experimental "Turtle Sizes" and "Exact Turtle Positions" options
- many new primitives
- improved HubNet support, improved activities
Version 1.0 (April 2002)
- initial release (after a series of betas)