Home
NetLogo 2.1.0 User Manual
Contents
1. oo o 4 What s New NetLogo 2 1 0 User Manual 4 fixed bug where using some of the movie or HubNet primitives in conjunction with the user primitives could hang NetLogo improved handling of runtime errors in BehaviorSpace e interface fixes the procedures menu and the contextual menu for the graphics window is now split into multiple columns when it contains many entries the Errors tab has a procedures menu now too improved Undo capabilities when editing text 0 separate tabs now remember their own separate undo information you can now undo and redo multiple edits instead of only the last edit fixed several undo related bugs renamed Choice to Chooser everywhere renamed Compile button to Check the Esc key can now be used to cancel any dialog or close an agent monitor when you first open NetLogo the graphics window is now larger patch size of 12 pixels on Macs the NetLogo window s red close button now indicates whether the model has unsaved changes fixed bug where when the speed slider was all the way to left CPU usage was still high it is now minimal text boxes have a smaller minimum size now fixed bug where it was possible to create two plot pens with the same name e computer HubNet changes substantially improved reliability improved activity Disease new more attractive colors and shapes also fixes to infection rules new unverified activities Oil Cartel Rest
2. 148 tried to put at after the name of a variable for example variable at 1 0 but NetLogo won t let me Why NOL seus isviganea angariar dentinal a ad e 148 I m getting numbers like 0 10000000004 and 0 799999999999 instead of 0 1 and OB MV A AA ERR DR ad mands aa na wes RO RR ERRORS RARE 149 How can keep two turtles from occupying the same patch 149 How can find out if a turtle is dead cooocccccccncccncccnoconononononononanacononanacano nana nancnnnananos 149 How do find out how much time has passed in my model nee 149 Does NeiL go have arrastra atras 149 Does NetLogo have associative arrays or lookup tables nne 149 How can use different patch neighborhoods circular Von Neumann Moore CIC e a et et AES BRR SE EAL e EN NPN a o DR e e a 150 Can connect turtles with lines to indicate connections between them 150 How can convert an agentset to a list or vice versa eee 150 What if want to ask an agentset in random order eee 150 How does NetLogo decide when to switch from agent to agent when running code 151 FAQ Frequently Asked QuUESTIONS 0 ccccseceeeeeeeeeeeeeneesneeeeeeeeeensaneeneneeeeseeseseeeeneneeseseeeeeeeeeenenes 151 Primitives Dictionary iiiaae aaae aara ae rae aaa eaaa aaa ara maaana aa a aaan iaaa ada aaar aai secesoutvacecsaree 153 Categories OF Primitives dc 153 Turtle related i
3. In order to compile and run this Net Logo jar from the NetLogo distribution must be in the Controlling Guide 125 NetLogo 2 1 0 User Manual classpath Note the use of Event Queue invokeAndWait to ensure that a method is called from the right thread This is because most of the methods on the App class may only be called some certain threads Most of the methods may only be called from the AWT event queue thread but a few methods such as commmand may only be called from threads other than the AWT event queue thread such as in this example the main thread Rather than continuing to discuss this example in full detail we refer you to the NetLogo API Specification which documents all of the ins and outs of the classes and methods used above Additional methods are available as well Example headless The example code in this case is very similar to the previous example but with methods on an instance of the HeadlessWorkspace class substituted for static methods on App import org nlogo workspace HeadlessWorkspace import org nlogo compiler CompilerException public class Example2 public static void main String argv HeadlessWorkspace workspace new HeadlessWorkspace try workspace open models Sample Models Earth Science Fire nlogo workspace command set density 62 workspace command random seed 0 workspace command setup workspace command repeat 50 go J
4. E Find E Find Again WHAT IS IT This model explores the stability of predator prey ecosystems The construc model is described in two papers by Wilensky amp Reisman referenced below Su called unstable when they tend to result in extinction for one or more speci In contrast systems are stable when they tend to maintain themselves over t fluctuations in population sizes There are two main variations to this mode In the first variation wolves and sheep wonder randomly around the landscap wolves Look for sheep to prey on Each step costs the wolves energy and the sheep in order to replenish their energy when they run out of energy they the population to continue each wolf or sheep has a fixed probability of re ench time lt ten This warintinn nradires interectinn namilatian dynamics hiit We recommend reading the Information tab before starting the model The Information tab explains what principle is being modeled and how the model was created Errors Tab The Errors tab provides a place for errors to be highlighted and brought to your attention If there are any errors in your code the Errors tab will turn red and come to the front with an explanation of what caused the error When there are no errors the Tab is disabled inaa Interface Information Procedures Errors sea E Find 2 Find Again i 8 check Procedures Procedures w Procedures set default shape wolves wolf create custom w
5. For Computer HubNet it acts as follows For a string this sends value from NetLogo to the tag tag name on the client that has string for its user name For a list of strings this sends value from NetLogo to the tag tag name on all the clients that have a user name that is in the list of strings Sending a message to a non existent client using hubnet send generates a hubnet exit message See the HubNet Authoring Guide for details hubnet send graphics hubnet send graphics string hubnet send graphics list of strings For Calculator HubNet does nothing For Computer HubNet it acts as follows For a string this sends the current state of the Graphics Window in the NetLogo model to the Computer HubNet Client with string for its user name For a list of strings this sends the current state of the Graphics Window in the NetLogo model to all the Computer HubNet Clients that have a user name that is in the list of strings Sending the Graphics Window to a non existent client using hubnet send graphics generates a hubnet exit message Note This is an experimental primitive and its behavior may change in a future version See the HubNet Authoring Guide for details hubnet set client interface 184 Primitives Dictionary NetLogo 2 1 0 User Manual hubnet set client interface client type client info If client type is TI 83 client info is a list containing two items The first item is a string containing
6. add model procedures her 114 HubNet Authoring Guide NetLogo 2 1 0 User Manual CHSHCHS HE GRAPHICS WINDOW 321 10 636 325 17 17 9 0 1 10 0 0 CC WINDOW 323 339 638 459 Command Center You should remove all the text that is in the GRAPHICS WINDOW section and then save the file So that after you are done the beginning of the file should look similar to this add model procedures her CHESHORSIO CC WINDOW 323 339 638 459 Command Center For more examples study the models and interface files in the HubNet Computer Activities section of the Models Library Disease nlogo and Disease client nlogo are good ones to start with Graphics Window Updates on the Clients Currently there are two ways of sending the clients the Graphics Window The first way is done automatically by NetLogo and HubNet when Graphics Window mirroring is enabled and the client has a Graphics Window in the interface Whenever a patch or turtle is redrawn in the NetLogo Graphics Window it will be redrawn on all the clients Actually updates are accumulated and sent out periodically about five times a second This means that a lot of messages can be sent to the clients if a lot of turtles or patches are being redrawn It is possible to reduce the number of messages sent to the clients and thus possibly speed up the model by making the Graphics Window in the model not update This can be done using the no displ
7. NetLogo movies are exported as uncompressed QuickTime files To play a QuickTime movie you can use QuickTime Player a free download from Apple Since the movies are not compressed they can take up a lot of disk space You will probably want to compress your movies with third party software The software may give you a choice of different kinds of compression Some kinds of compression are lossless while others are lossy Lossy means that in order to make the files smaller some of the detail in the movie is lost Depending on the nature of your model you may want to avoid using lossy compression for example if your graphics window contains fine pixel level detail Code Example Movie Example Programming Guide 91 92 NetLogo 2 1 0 User Manual Programming Guide Shapes Editor Guide The Shapes Editor allows you to create and save turtle designs NetLogo uses fully scalable and rotatable vector graphics which means it lets you create designs by combining basic geometric elements which can appear on screen in any size or orientation Getting Started To begin making shapes choose Shapes Editor in the Tools menu A new window will open listing all the shapes currently in the model beginning with default the default shape The Shapes Editor allows you to create a new shape edit copy or delete an existing shape or import shapes from other models Creating and Editing Shapes Pressing the New button will make a new shape
8. Forever Y Force display update after each run Checking this box causes smoother screen updates but may make the button run more slowly 4 Press OK to dismiss the dialog box Now you have a button called setup It will execute the procedure setup when pressed which once we define it will do just that set up the NetLogo world Tutorial 3 Procedures 41 NetLogo 2 1 0 User Manual At this point both the new button and the Errors tab have turned red That s because there is no procedure called setup If you want to see the actual error message switch to the Errors tab interface Information Procedures Errors fee 5 FR i abc Button Slider Switch Em Choice 25 Monitor 1 gt qi More setup Now switch to the Procedures Tab and create the setup procedure shown below Notice that the lines are indented different amounts A lot of people find it very helpful to indent their code in a way at least similar to how it s done here It helps them keep track of where they re at inside of a procedure and makes what they write easier for others to read as well Interface Information Procedures Errors 2 Find E Find Again o 2 Compile Procedures w to setup ca crt 100 ask turtles fd random screen edge x end One line at a time to setup begins defining a procedure named setup ca is short for clear all you can also spell it out if you want This co
9. If you want to move the pen without plotting you can use the plot pen up command ppu for short After this command is issued the plot and plot xy commands move the pen but do not actually draw anything Once the pen is where you want it use plot pen down to put the pen back down ppd for short If you want to plot individual points instead of lines or you want to draw bars instead of lines of or points you need to change the plot pen s mode Three modes are available line bar and point Line is the default mode Normally you change a pen s mode by editing the plot This changes the pen s default mode It s also possible to change the pen s mode temporarily using the set plot pen mode command That command takes a number as input O for line 1 for bar 2 for point Histograms A histogram is a special kind of plot that measures how frequently certain values or values in certain ranges occur in a collection of numbers that arise in your model For example suppose the turtles in your model have an age variable You could create a histogram of the distribution of ages among your turtles with the histogram from command like this histogram from turtles age If the data you want to histogram don t come from an agentset but from a list of numbers use the histogram list command instead Note that using the histogram commands doesn t automatically switch the current plot pen to bar mode If you want bars you have to se
10. It reports a string with the absolute path or false if the user cancels set current directory user choose directory 7 Assumes the user will choose a directory user choose file user choose file Opens a dialog that allows the user to choose an existing file on the system It reports a string with the absolute file path or false if the user cancels file open user choose fil 7 Assumes the user will choose a file user choose new file user choose new file Opens a dialog that allows the user to choose a new file on the system It reports a string with the absolute file path or false if the user cancels Note that no file is ever created or overwritten with this reporter file open user choose new fil Assumes the user will choose a file user input user input value Reports the string that a user types into an entry field in a dialog with title value value may be of any type but is typically a string show user input What is your name 232 Primitives Dictionary NetLogo 2 1 0 User Manual user message user message value Opens a dialog with value displayed as the message value may be of any type but is typically a string user message There are count turtles turtles user yes or no user yes or no value Reports true or false based on the user s response to value value may be of any type but is typically a string if user yes or no Set up the model setup V
11. ask random one of patches set pcolor green 7 a random patch turns green set pcolor of random one of patches green 7 another way to say the same thing ask patches with any turtles here show random one of turtles here for each patch containing turtles prints one of 7 those turtles 7 suppose mylist is 1 2 3 4 5 6 show random one of mylist 7 prints a value randomly chosen from the list See also one of and_random n of 210 Primitives Dictionary NetLogo 2 1 0 User Manual random seed random seed number Sets the seed of the pseudo random number generator to the integer part of number The seed may be any integer in the range supported by NetLogo 2147483648 to 2147483647 See the Random Numbers section of the Programming Guide for more details random seed 47823 show random 100 gt 57 show random 100 gt 91 random seed 47823 show random 100 gt 57 show random 100 gt 91 read from string read from string string Interprets the given string as if it had been typed in the Command Center and reports the resulting value The result may be a number list string or boolean value or the special value nobody Useful in conjunction with the user input primitive for converting the user s input into usable form show read from string 3 read from string 5 gt 8 show length read from string 1 2 3 gt 3 crt read from string user input Make how many turtles the
12. gt 6 7 evaluate the polynomial with given coefficients at x to report eval polynomial coeffs x report reduce x 1 2 coeffs end 7 evaluate 3x 2 2x 1 at x 4 show eval polynomial 3 2 1 4 gt 57 remainder remainder number number2 Reports the remainder when number is divided by number2 This is equivalent to the following NetLogo code numberl int numberl number2 number2 show remainder 62 5 gt 2 show remainder 8 3 gt 2 See also_mod mod and remainder behave the same for positive numbers but differently for 212 Primitives Dictionary NetLogo 2 1 0 User Manual negative numbers remove remove item list remove string1 string For a list reports a copy of list with all instances of item removed For strings reports a copy of string2 with all the appearances of string1 as a substring removed set mylist 2 7 4 7 Bob set mylist remove 7 mylist 7 mylist is now 2 4 Bob show remove na banana gt ba remove duplicates remove duplicates list Reports a copy of list with all duplicate items removed The first of each item remains in place set mylist 2 7 4 7 Bob 7 set mylist remove duplicates mylist 5 mylist is now 2 7 4 Bob remove item remove item index list remove item index string For a list reports a copy of list with the item at the given index removed For strings reports a copy of string2 with the character at the given ind
13. set pcolor green 5 Of the screen turn green end The models in the Models Library are full of other examples A good place to start looking is in the Code Examples section Usually the observer uses ask to ask all turtles or all patches to run commands You can also use ask to have an individual turtle or patch run commands The reporters turtle patch and patch at are useful for this technique For example to setup ca ert 3 make 3 turtles ask turtle 0 tell the first one ta E j 77 to go forward ask turtle 1 ji tell the second one set color green 77 to become green ask turtle 2 tell the third one ET 30 gt ie to turn right ask patch 2 2 7 ask the patch at 2 2 set pcolor blue jj to become blue ask turtle 0 ask the first turtle ask patch at 1 0 j to ask patch to the east set pcolor red to become red end Every turtle created has an ID number The first turtle created has ID 0 the second turtle ID 1 and so forth The turt le primitive reporter takes an ID number as an input and reports the turtle with that ID number The patch primitive reporter takes values for pxcor and pycor and reports the patch with those coordinates And the patch at primitive reporter takes offsets distances in the x and y directions from the first agent In the example above the turtle with ID number 0 is asked to get the patch east and no patches north of itself You can also select a su
14. 4 0 0 0 0 The monitor labeled time ticks tells us how much time has passed in the model The other monitors show us the population of sheep and wolves and the amount of grass Remember the amount of grass is divided by four to keep the graph from getting too tall The numbers displayed in the monitors update continuously as the model runs whereas the plots show you data from the whole course of the model run Note that NetLogo has also another kind of monitor called agent monitors These will be Tutorial 1 Models 25 NetLogo 2 1 0 User Manual introduced in Tutorial 2 Controlling the Graphics Window If you look at the graphics window you ll see a strip of controls along the top edge The control strip lets you control various aspects of the graphics window Let s experiment with the effect of these controls e Press setup and then go to start the model running e As the model runs move the slider in the control strip back and forth What happens This slider is helpful if a model is running too fast for you to see what s going on in detail e Move the speed slider all the way to the right again e Now try pressing and unpressing the red arrowhead in the control strip e Also try pressing and unpressing the on off switch in the control strip What happens The shapes button and the display button are useful if you re impatient and want a model to run faster When shapes are turned off tu
15. After you have pressed setup once to create the turtles press the go button Watch what happens Turn it off and you ll see that all turtles stop in their tracks We suggest you start experimenting with other turtle commands You might try typing T gt pendown into the Command Center and then pressing go Another thing to try is changing set heading random 360 to rt random 360 inside of move turtles rt is short for right turn Also you can try changing set heading random 360 to It random 45 inside of move turtles Type commands into the Command Center like set colorred or add them to setup go or move turtles Note that when you enter commands in the Command Center you must choose T gt P gt or O gt in the popup menu on the left depending on which agents are going to execute the commands You can also use the tab key which you might find more convenient than using the popup menu T gt commands is identical to O gt ask turtles commands and P gt commands is identical to O gt ask patches commands Play around It s easy and the results are immediate and visible one of NetLogo s many strengths Regardless the tutorial project continues Patches and Variables Now we ve got 100 turtles aimlessly moving around completely unaware of anything else around them Let s make things a little more interesting by giving these turtles a nice background against which to move Go back to the setup procedure We
16. At any point you can use the Undo button to undo the edit you just performed Colors Elements whose color matches the Color that changes selected from a drop down menu the default is gray will change color according to the value of each turtle s color variable in your model Elements of other colors don t change For example you could create cars that always have yellow headlights and black wheels but different body colors Shape Design It s tempting to draw complicated interesting shapes but remember that in most models the patch size is So small that you won t be able to see all the detail Simple bold shapes are best Saving Shapes When the shape is done give it a name and press the Done button at the bottom of the editing window The shape and its name will now be included in the list of shapes along with the default shape Importing Shapes If you want to use a shape from another model in this model you must first import the shape into this model Press the Import button to select a NetLogo model from which to import one or more shapes Once you have chosen a model a list of that model s shapes will appear Choose as many of these shapes as you like to import into the original model and press the Import button to import the shapes Using Shapes in a Model In the model s code or in the command center you can use any of the shapes that are in the model For example suppose you want to create 50 turtles with the
17. NetLogo 2 1 0 User Manual NetLogo 2 1 0 User Manual Table of Contents What 1S AAPP RA NERD RAE E 1 ESTO ur A aa Sad GDA od 1 Copyright Information o eens 3 Wrhhat S NOW 2 oe co ia 7 Version 2 1 December 132004 Binion e a e dia 7 Version 2 0 2 August 6 2004 occccccccccccconononononnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnninnnnss 9 Version 2 0 December 102008 ua is 10 Version 1 3 1 June 200 ranma ado 10 Version 12 March 2003 iaa di 10 Version 1 1 July 2002 oooooccoccccncconcconononcnonnnonononnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnineniness 10 Version 1 0 April 200 2 occurred 10 System Regd ireMeniS iad ace waists acc cece cece Ud a a 11 System Requirements AppliCatiON ooooooocccccccnonoooncccncnonononononnnnnnnnnnnnnnnnn nn nnnnnnccnnnnnnnonnnnnnnnns 11 MINdOWS a tt Sea 11 MacOS Mii A o a aa ida 11 Mac OS B and Descartar td tt nt a a 11 OMC DUE OS a CA A E Ed Pr RN A TO 11 System Requirements Saved AppletS ccccoooooooccccccncnoconononnnnnononcnnnnnannnnnnnncccnananrnnoncnnnnnn 12 KNOWN ISSUES cuidara aras 13 Known bugs all SYSteMS ooooociininininnnicccccoccccnncnnn cnn nn nn nnr rn 13 Windows only DUQS uses espanta cd a aan dean 13 MacintoSA ONIVDUAS 00 A A A E da aaa AE 13 Linux UNIX Only DUAS esea ata Sa eae Ita eae bia ada LONA anna da add 14 Known issues with computer HubNet e aeaeeeeeeeeeeeeeeeeeeeeeeees 14 Unimplemente
18. 0 0 meaning that if the room was divided in half one way and then the other way these two dividing lines would intersect on this tile We now have a coordinate system that will help us locate objects within the room How many tiles away is the 0 0 tile from the right side of the room How many tiles away is the 0 0 tile from the left side of the room In NetLogo the distance the middle tile is from the right or left edge of the room this is called Screen Edge X And the distance the middle tile is from the top and bottom edges is called Screen Edge Y 0 0 Screen Edge X Screen Edge X 28 Tutorial 1 Models NetLogo 2 1 0 User Manual Screen Edge Y 0 0 Screen Edge Y In these diagrams Screen Edge X is 3 and Screen Edge Y is 2 When you change the patch size the number of patches tiles doesn t change the patches only get larger or smaller on the screen Let s look at the effect of changing Screen Edge X and Screen Edge Y e Using the Edit dialog that is still open change Screen Edge X to 30 and Screen Edge Y value to 10 What happened to the shape of the Graphics Window e Press the setup button Now you can see the new patches you have created e Edit the Graphics Window again e Change the patch size to 20 and press OK What happened to the size of the Graphics Window Did its shape change Editing the Graphics window also lets you change three other settings the font size of lab
19. 7 mylist now is Bob 4 7 2 show reverse string gt gnirts 214 Primitives Dictionary NetLogo 2 1 0 User Manual rgb rgb red green blue Reports a number in the range 0 to 140 not including 140 itself that represents the given color specified in the RGB spectrum in NetLogo s color space All three inputs should be in the range 0 0 to 1 0 The color reported may be only an approximation since the NetLogo color space does not include all possible colors See hsb for a description of what parts of the HSB color space NetLogo colors cover this is difficult to characterize in RGB terms show rgb 0 0 0 gt 0 0 black show rgb 0 1 0 1 0 gt 85 0 cyan See also extract rgb hsb and extract hsb right rt right number The turtle turns right by number degrees If number is negative it turns left round round number Reports the integer nearest to number If the decimal portion of number is exactly 5 the number is rounded in the positive direction Note that rounding in the positive direction is not always how rounding is done in other software programs In particular it does not match the behavior of StarLogoT which always rounded numbers ending in 0 5 to the nearest even integer The rationale for this behavior is that it matches how turtle coordinates relate to patch coordinates in NetLogo For example if a turtle s xcor is 4 5 then it is on the boundary between a patch whose pxcor is 4
20. Graphics Window ask patches with pxcor pycor set pcolor red round item 0 hubnet message and round item 1 hubnet message 116 HubNet Authoring Guide NetLogo 2 1 0 User Manual Text Area for Input and Display A few models use an experimental interface element in the HubNet client that allows the modeler to display text on the client that can change throughout the run of the activity Further it can allow users to send text back to the server If you are interested in using it in an activity please contact us for further information HubNet Authoring Guide 117 118 NetLogo 2 1 0 User Manual HubNet Authoring Guide Extensions Guide NetLogo allows users to write new commands and reporters in Java and use them in their models This section of the User Manual introduces this facility The first part discusses how to use an extension in your model once you have written one or once someone has given you one The second part is intended for Java programmers interested in writing their own extensions Caution The extensions facility is new in NetLogo 2 0 1 and is stillin an early stage of development Therefore it is considered experimental It is likely to continue to change and grow If you write an extension now it may need changes in order to continue to work in future NetLogo versions e Using Extensions e Writing Extensions The NetLogo API Specification contains further details Using Extension
21. Observe the movement of people until the model stops 3 Watch the plots to see what s happening in another way Now how many people are in each group Originally you may have thought 150 people splitting into 10 groups would result in about 15 people in each group From the model we see that people did not divide up evenly into the 10 groups instead some groups became very small whereas other groups became very large Also the party changed over time from all mixed groups of men and women to all single sex groups What could explain this 18 Sample Model Party NetLogo 2 1 0 User Manual There are lots of possible answers to this question about what happens at real parties The designer of this simulation thought that groups at parties don t just form randomly The groups are determined by how the individuals at the party behave The designer chose to focus on a particular variable called tolerance erro Tolerance is defined here as the percentage of people of the opposite sex an individual is comfortable with If the individual is in a group that has a higher percentage of people of the opposite sex than their tolerance allows then they become uncomfortable and leave the group to find another group For example if the tolerance level is set at 25 then males are only comfortable in groups that are less than 25 female and females are only comfortable in groups that are less than 25 male As indiv
22. Or you may select an existing shape and press Edit Tools In the upper left corner of the editing window is a group of drawing tools The arrow is the selection tool which selects an already drawn element To draw a new element use one of the other seven tools e The line tool draws line segments e The circle square and polygon tools come in two versions filled or outline When using the polygon tool click the mouse to add a new segment to the polygon When you re done adding segments double click After you draw a new element it is selected so you can move delete or reshape it if you want e To move it drag it with the mouse e To delete it press the Delete button e To reshape it drag the small handles that appear on the element only when it is selected e To change its color click on the new color Previews As you draw your shape you will also see it in three smaller sizes in the three preview areas found near the bottom of the editing window The previews show your shape as it might appear in your model including how it looks as it rotates The rotatable feature can be turned off if you want a shape that always faces the same way regardless of the turtle s heading Shapes Editor Guide 93 NetLogo 2 1 0 User Manual Overlapping Shapes New elements go on top of previous elements You can change the layering order by selecting an element and then using the Bring to front and Send to back buttons Undo
23. System out println workspace report burned trees workspace dispose catch Exception ex ex printStackTrace In order to compile and run this either Net Logo jar or NetLogoLite jar from the NetLogo distribution must be in your classpath The latter jar is smaller but is only capable of headless operation not full GUI operation Since there is no GUI NetLogo primitives which send output to the command center or output area now go to standard output export wor 1d can still be used to save snapshots of model s state The report method is useful for getting results out of the model and into your Java code You can make multiple instances of HeadlessWorkspace and they will operate independently on separate threads without interfering with each other When running headless there are some restrictions 126 Controlling Guide NetLogo 2 1 0 User Manual e Plotting primitives are non functional However calling them will not produce any ill effects e export graphics and the movie primitives are not available trying to use them will cause a Java exception e user primitives which query the user for input such as user yes or no will cause a Java exception e Sliders switches and choosers do not enforce constraints on the values they accept For example in the full NetLogo application if you try to set a switch to a value other than true or false the switch will not accept the new valu
24. Their information is set up in an on off Tutorial 1 Models 23 NetLogo 2 1 0 User Manual format Switches turn on off a separate set of directions These directions are usually not necessary for the model to run but might add another dimension to the model Turning the grass switch on affected the outcome of the model Prior to this run the growth of the grass stayed constant This is not a realistic look at the predator prey relationship so by setting and turning on a grass growth rate we were able to model all three factors sheep wolf and grass populations Another type of setting is called a slider Sliders are a different type of setting then a switch A switch has two values on or off A slider has a range of numeric values that can be adjusted For example the initial number sheep slider has a minimum value of O and a maximum value of 250 The model could run with O sheep or it could run with 250 sheep or anywhere in between Try this out and see what happens As you move the marker from the minimum to the maximum value the number on the right side of the slider changes this is the number the slider is currently set to Let s investigate Wolf Sheep Predation s sliders e Read the contents of the Information tab located above the toolbar to learn what each of this models sliders represents The Information tab is extremely helpful for gaining insight into the model Within this tab you will find an explanation o
25. if xcor gt O set color blue 7 turtles on the right half of the screen turn blue Primitives Dictionary 185 NetLogo 2 1 0 User Manual ifelse ifelse reporter commands commands2 Reporter must report a boolean true or false value If reporter reports true runs commands If reporter reports false runs commands2 The reporter may report a different value for different agents so some agents may run commands1 while others run commands2 ask patches ifelse pxcor gt 0 set pcolor blue set pcolor red the left half of the screen turns red and the right half turns blue ifelse value ifelse value reporter reporter reporter2 Reporter must report a boolean true or false value If reporter reports true the result is the value of reporter If reporter reports false the result is the value of reporter2 This can be used when a conditional is needed in the context of a reporter where commands such as ifelse are not allowed ask patches set pcolor ifelse value pxcor gt 0 blue red the left half of the screen turns red and the right half turns blue show n values 10 ifelse value lt 5 0 1 gt 0000011111 show reduc ifelse valu 2h S22 DAA 2211 1 32 26 32 8 302 10 gt 8 import world import world filename Reads the values of all variables for a model both built in and user defined including all observer turtle and patch varia
26. once button or a forever button You can tell the difference between these two types of buttons by a symbol on the face of the button Forever buttons have two arrows in the bottom right corners like this Once buttons don t have the arrows like this Once buttons do one action and then stop When the action is finished the button pops back up Note If you do not wait for the button to pop back up before pressing any other buttons the model might get confused and you may get an error message Forever buttons do an action over and over again When you want the action to stop press the button again It will finish the current action then pop back up Most models including Wolf Sheep Predation have a once button called setup and a forever button called go Many models also have a once button called go once or step once which is like go except that it advances the model by one time step instead of over and over Using a once button like this lets you watch the progress of the model more closely Stopping a forever button is the normal way to stop a model It s safe to pause a model by stopping a forever button then make it go on by pressing the button again You can also stop a model with the Halt item on the Tools menu but you should only do this if the model is stuck for some reason Using Halt may interrupt the model in the middle of an action and as the result the model could get confused e If you like expe
27. sc Maes A A A Css pedia OLA eae 193 MIDI asso es fice arte ree Sree et ht cada e Ra fe o tte ada ana 194 MINNESOTA A Tie 194 a A O RR ad AT 194 MOS tia A no Miche en Binet A eee 194 MOUSC CGOWIN2 ic ce Bes O cate ii eg a SET idos 195 MOUSE XCOr MOUSE YCOL ii ee none nena e reese eae ee ee eee saeaaaaaaeeeeeeseneea 195 Nr assada eel eee GS OS EU A ahs CAL Unai ls Sole a AE a gala DDD 195 MOVI CIOSO sussa isa das a octaves gaveeedeu douse T Cessna lapa E Danada sa DE aid 195 movie grab graphics movie grab interfaCe cooonoooccccnccccononononnnnnnnnnnnnnnnnnnnnnnnncnninnnnnns 196 movie set frame rate ins 196 MOVIG Star hess si tras o tetas sia a ete sanieas da 196 MOVIE StAlUS r eicosanoid eae 196 MS prt a A T a 197 A RR 197 AEA S LE EA et a aaa 197 neighbors NEGANDO ironia ia do da 198 A 198 no abel s0 cnt e A Dn A A A A o O AS q 198 NODO munici daa airada ARO RD 199 A Rida asa o ba a CRIS STD O TSE LD E E DO Da a 199 ASUMA S UNMIS fines sec socal e do a o a sear RC OR a da ia eat ee a a e dias tee ek 199 Okada dd can AMO atra o dade o CE E Bere Det O O do a MN aoc kN Oi a dD DA AIR SMe 199 RE O BRA RN CR RR P ER rta dae 200 O I AEE E ER AIDS E RSS RN SRD EAE PIRES S ED 1 RAND O SN SR E NE eebete 200 Ol seh ant asia nd dana cit ER ih oes ca a ea o Jena Dq san da e a De ans 200 other turiles here other BREED here rsrsrsrs renan 200 output print output show output type output write ooooooocococ
28. themselves and get the same result that you got Since NetLogo uses pseudo random numbers the experiments that you do with it can be reproduced by others Here s how it works NetLogo s random number generator can be started with a certain seed value which can be any integer Once the generator has been seeded with the random seed command it always generates the same sequence of random numbers from then on For example if you run these commands random seed 137 show random 100 show random 100 show random 100 You will always get the numbers 95 7 and 54 Code Example Random Seed Example Note however that you re only guaranteed to get those same numbers if you re using the same version of NetLogo Sometimes when we make a new version of NetLogo we change the random number generator For example NetLogo 2 0 has a different generator than NetLogo 1 3 did 2 0 s generator which is known as the Mersenne Twister is faster and generates numbers that are statistically more random than 1 3 s Java s built in linear congruential generator If you don t set the random seed yourself NetLogo sets it to a value based on the current date and time There is no way to find out what random seed it chose so if you want your model run to be reproducible you must set the random seed yourself ahead of time Programming Guide 83 NetLogo 2 1 0 User Manual The NetLogo primitives with random in their names random random float rando
29. to your code text that explains the code to human readers Extra semicolons can be added for visual effect NetLogo s Edit menu has items that let you comment or uncomment whole sections of code sentence se sentence value value2 sentence value valuen Makes a list out of the values If any value is a list its items are included in the result directly rather than being included as a sublist Examples make this clearer how sentence 1 2 1 2 how sentence 1 2 3 1 2 3 sentence 1 2 3 1 2 3 how sentence 1 2 3 4 1234 how sentence 1 2 3 4 5 3 3 7 1234567 Vv Vv Vv Vv lol ail a i av i a 5 o Vv set set variable value Sets variable to the given value Variable can be any of the following e An global variable declared using globals e The global variable associated with a slider switch or chooser e A variable belonging to the calling agent e If the calling agent is a turtle a variable belonging to the patch under the turtle e An expression of the form VARIABLE of agent e A local variable created by the let command set current directory set current directory string Sets the current directory that is used by the primitives file delete file exists and file open 218 Primitives Dictionary NetLogo 2 1 0 User Manual The current directory is not used if the above commands are given an absolute file path This is defaulted to the user s home director
30. window So breeds defined later will appear on top of breeds defined earlier in this example sheep will be drawn over wolves When you define a breed such as sheep an agentset for that breed is automatically created so that all of the agentset capabilities described above are immediately available with the sheep agentset The following new primitives are also automatically available once you define a breed create sheep create custom sheep cct sheep for short hatch sheep sprout sheep sheep here and sheep at Also you can use sheep own to define new turtle variables that only turtles of the given breed have A turtle s breed agentset is stored in the breed turtle variable So you can test a turtle s breed like this if breed wolves Note also that turtles can change breeds A wolf doesn t have to remain a wolf its whole life Let s change a random wolf into a sheep ask random one of wolves set breed sheep The set default shape primitive is useful for associating certain turtle shapes with certain breeds See the section on shapes below Programming Guide 75 NetLogo 2 1 0 User Manual Here is a quick example of using breeds breeds mice frogs mice own cheese to setup ca create custom mice 50 set color white set cheese random 10 create custom frogs 50 set color green end Code Example Breeds and Shapes Example Buttons Buttons in the interface tab provide an eas
31. 0 User Manual hubnet message hubnet message Reports the message retrieved by hubnet fetch message See the HubNet Authoring Guide for details hubnet message source hubnet message source Reports the name of the client that sent the message retrieved by hubnet fetch message See the HubNet Authoring Guide for details hubnet message tag hubnet message tag Reports the tag that is associated with the data that was retrieved by hubnet fetch message For Calculator HubNet this will report one of the variable names set with the hubnet set client interface primitive For Computer HubNet this will report one of the Display Names of the interface elements in the client interface See the HubNet Authoring Guide for details hubnet message waiting hubnet message waiting This looks for a new message sent by the clients It reports true if there is one and false if there is not See the HubNet Authoring Guide for details hubnet reset hubnet reset Starts up the HubNet system HubNet must be started to use any of the other hubnet primitives with the exception of hubnet set client interface See the_HubNet Authoring Guide for details Primitives Dictionary 183 NetLogo 2 1 0 User Manual hubnet send hubnet send string tag name value hubnet send list of strings tag name value For Calculator HubNet this primitive acts in exactly the same manner as hubnet broadcast We plan to change this in a future version of NetLogo
32. 8 MacOS 9 no longer supported e increased overall reliability e improved look and feel throughout the application e faster and more flexible graphics labels turtle sizes exact turtle positions all now fast reliable and flicker free e suite of primitives for reading and writing external files e strict math mode now always on for reproducible results e export graphics window or interface tab as image file e revamped BehaviorSpace various improvements made some old features are missing e Mersenne Twister random number generator e many new primitives e computer HubNet improved reliability no longer alpha or beta improved graphics window mirroring features and performance Version 1 3 June 2003 e graphics window control strip e choosers e strict math mode so results are identical on all platforms requires Java 1 3 or higher e new primitives including run runresult and map foreach filter reduce e some primitives now accept a variable number of inputs Version 1 2 March 2003 e 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 e new primitives and other language improvements e display of coordinates when mousing over plots Version 1 1 July 2002 e Save as Applet lets you embed your model in any web page e printer support e Procedures menu e scrollable Interface tab e contextu
33. BREED own turtles own var1 var2 BREED own var1 var2 The turtles own keyword like the globals breed lt BREED gt own and patches own keywords can only be used at the beginning of a program before any function definitions It defines the variables belonging to each turtle If you specify a breed instead of turtles only turtles of that breed have the listed variables More than one breed may list the same variable breeds cats dogs hamsters turtles own eyes legs 7 applies to all breeds cats own fur kittens hamsters own fur cage dogs own hair puppies See also globals patches own breeds lt BREED gt own type type value Prints value in the Command Center not followed by a carriage return unlike_print and show The lack of a carriage return allows you to print several values on the same line The calling agent is not printed before the value unlike_show 230 Primitives Dictionary NetLogo 2 1 0 User Manual type 3 type print 4 gt 3 4 See also print show and write See also output type U uphill uphill patch variable x Reports the turtle heading between 0 and 359 degrees in the direction of the maximum value of the variable patch variable of the patches in a one patch radius of the turtle This could be as many as eight or as few as five patches depending on the position of the turtle within its patch If there are multiple patches that have the
34. Dictionary NetLogo 2 1 0 User Manual Even if no display was not used display can still be useful because ordinarily NetLogo is free to skip some screen updates so that fewer total updates take place so that models run faster This command lets you force a display update so whatever changes have taken place in the world are visible to the user ask turtles set color red display ask turtles set color blue turtles turn red then blue use of display forces red turtles to appear briefly There is exception to the immediately rule if the command is used by an agent that is running without interruption such as via the without interruption command inside a procedure defined using to report or inside a command such as hatch sprout or cct then the display update takes place once the agent is done running without interruption Note that display and no display operate independently of the switch in the graphics window control strip that freezes the display See also no display distance distance agent Reports the distance from this agent to the given turtle or patch The distance to or a from a patch is measured from the center of the patch Unlike distance nowrap turtles and patches use the wrapped distance around the edges of the screen if that distance is shorter than the on screen distance distance nowrap distance nowrap agent k Reports the distance from this agent to the given t
35. Models saved as applets using Save as Applet on NetLogo s File menu cannot make use of extensions We plan to fix this in a future release For examples that use the sound extension see the Sound section under Code Examples in NetLogo s Models Library Primitives drums instruments play drum play note start note stop note stop instrument stop music drums drums Reports a list of the names of the 47 drums for use with play drum instruments NetLogo Sound Extension 129 NetLogo 2 1 0 User Manual instruments Reports a list of the names of the 128 instruments for use with play note start note and stop note play drum play drum drum velocity Plays a drum play drum ACOUSTIC SNARE 64 play note play note instrument keynumber velocity duration Plays a note for a specified duration in seconds 7 play a trumpet at middle C for two seconds play note TRUMPET 60 64 2 start note start note instrument keynumber velocity Starts a note The note will continue until stop note stop instrument or stop music is called 7 play a violin at middle C start note VIOLIN 60 64 7 play a C major scale on a xylophone foreach 60 62 64 65 67 69 71 72 start note XYLOPHONE 65 wait 0 2 stop note XYLOPHONE stop note stop note instrument keynumber Stops a note 7 stop a violin note at middle C stop note VIOLIN 60 130 NetLogo Sound Extension NetLogo 2
36. OTHER LIABILITY WHETHER IN AN ACTION OF CONTRACT TORT OR OTHERWISE ARISING FROM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE For movie making NetLogo uses code adapted from JpeglmagesToMovie java by Sun Microsystems The copyright for that code is as follows Copyright c 1999 2001 Sun Microsystems Inc All Rights Reserved Sun grants you Licensee a non exclusive royalty free license to use modify and redistribute this software in source and binary code form provided that i this copyright notice and license appear on all copies of the software and ii Licensee does not utilize the software in a manner which is disparaging to Sun This software is provided AS IS without a warranty of any kind ALL EXPRESS OR IMPLIED CONDITIONS REPRESENTATIONS AND WARRANTIES INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY FITNESS 4 Copyright Information NetLogo 2 1 0 User Manual FOR A PARTICULAR PURPOSE OR NON INFRINGEMENT ARE HEREBY EXCLUDED SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING MODIFYING OR DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE PROFIT OR DATA OR FOR DIRECT INDIRECT SPECIAL CONSEQUENTIAL INCIDENTAL OR PUNITIVE DAMAGES HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE EVEN IF SUN HAS BE
37. PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE COPYRIGHT OWNERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT INCLUDING NEGLIGENCE OR OTHERWISE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE Parts of NetLogo specifically the random gamma primitive are based on code from the Colt library http hoschek home cern ch hoschek colt The copyright for that code is as follows Copyright 1999 CERN European Organization for Nuclear Research Permission to use copy modify distribute and sell this software and its documentation for any purpose is hereby granted without fee provided that the above copyright Copyright Information 3 NetLogo 2 1 0 User Manual notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation CERN makes no representations about the suitability of this software for any purpose It is provided as is without expressed or implied warranty NetLogo uses the MRJ Adapter library which is Copyright c 2003 Steve Roy lt sroy roydesign net gt The library is covered by the GNU LGPL Lesser General Publi
38. Screen Edge X 20 Screen Edge Y 20 Patch Size pixels 8 0 Font Size of turtle and patch labels 10 Y Turtle Shapes Y Exact Turtle Positions amp Sizes Cancel Apply Co What are the current settings for Screen Edge X Screen Edge Y and Patch Size e Press cancel to make this window go away without changing the settings e Place your mouse pointer next to but still outside of the Graphics Window You will notice that the pointer turns into a crosshair e Hold down the mouse button and drag the crosshair over the Graphics Window The Graphics Window is now selected which you know because it is now surrounded by a gray border e Drag one of the square black handles The handles are found on the edges and at the corners of the Graphics Window e Unselect the graphics window by clicking anywhere in the white background of the Interface tab e Press the More button again and look at the settings What numbers changed What numbers didn t change The NetLogo world is a two dimensional grid of patches Patches are the individual squares in the grid Tutorial 1 Models 27 NetLogo 2 1 0 User Manual In Wolf Sheep Predation when the grass switch is on the individual patches are easily seen because some of them are green while others are brown Think of the patches as being like square tiles in a room with a tile floor Exactly in the middle of the room is a tile labeled
39. Shapes Example Shape Animation Example Plotting NetLogo s plotting features let you create plots to help you understand what s going on in your model Before you can plot you need to create one or more plots in the Interface tab Each plot should have a unique name You ll be using its name to refer to it in your code in the Procedures tab Specifying a plot If you only have one plot in your model then you can start plotting to it right away But if you have more than one plot you have to specify which one you want to plot to To do this use the set current plot command with the name of the plot enclosed in double quotes like this set current plot Distance vs Time 84 Programming Guide NetLogo 2 1 0 User Manual You must supply the name of the plot exactly as you typed it when you created the plot Note that later if you change the name of the plot you ll also have to update the set current plot calls in your model to use the new name Copy and paste can be helpful here Specifying a pen When you make a new plot it just has one pen it If the current plot only has one plot pen then you can start plotting to it right away But you can also have multiple pens in a plot You can create additional pens by editing the plot and using the controls in the Plot Pens section at the bottom of the edit dialog Each pen should have a unique name You ll be using its name to refer to it in your code in the Procedures tab F
40. StarLogoT and NetLogo e Has anyone built a model of lt x gt e Are NetLogo models runs scientifically reproducible e Are there any NetLogo textbooks e Is NetLogo available in a Spanish version German version your language here version etc e Is NetLogo compiled or interpreted Downloading e The download form doesn t work for me Can have a direct link to the software e Downloading NetLogo takes too long Is it available any other way such as on a CD e downloaded and installed NetLogo but the Models Library has few or no models in it How can fix this e Can have multiple versions of NetLogo installed at the same time e I m on a UNIX system and can t untar the download Why Applets e tried to run one of the applets on your site but it didn t work What should do e Can make my model available as an applet while keeping the code secret e Can a model saved as an applet use import world and file open Usage e How do change the number of patches e Can use the mouse to paint in the graphics window e How big can my model be How many turtles patches procedures buttons and so on can my model contain e Can import a graphic into NetLogo e Can import GIS data into NetLogo e My model runs slowly How can speed it up e want to try HubNet Can 1 FAQ Frequently Asked Questions 135 NetLogo 2 1 0 User Manual e Can I run a NetLogo model from the command line Ca
41. Valid calculator lists such as L1 or PLOTS e Valid calculator matrices such as A or B e Valid calculator strings such as Str1 or Str5 e Numbers such as A or B The calculator sends and receives data by storing a set of parameters in the string Stro Depending upon what type of data you are trying to send or receive St ro will have different values For instance if the modeler wanted to create and send a list of numbers in the list L1 it would be done as follows Set the value of the list to some numbers in this case 20 A and B where A and B are number variables that are set previously in the calculator code Then write 20 A B gt L1 TI Lit gt SEr0 Asm prgmSENDVAR The length of the list of numbers that a calculator sends depends on what information you want to send to the NetLogo model Further how those numbers are interpreted by the model is also up to you You can also receive data from the NetLogo model To do this use the following calculator code 4 Str6 1 gt Strod Asm prgmGETVAR Let s take a look at how the values of the string stro are set The first input in the string represents the type of variable that you are trying to get Since we are trying to get a string Str 6 we give the first input the value 4 See below for the values of legal data types The second input is the variable in which you would like to save the data received In this case we want to save the data to the vari
42. a workaround or provide additional guidance where our documentation is thin Controlling Guide 127 NetLogo 2 1 0 User Manual 128 Controlling Guide NetLogo Sound Extension The NetLogo Sound Extension provides primitives to add sound to NetLogo models The extension simulates a 128 key electronic keyboard with 47 drums and 128 melodic instruments as provided by General MIDI Level 1 specification It supports 15 polyphonic instrument channels and a single percussion channel Using more than 15 different melodic instruments simultaneously in a model will cause some sounds to be lost or cut off The pitch of a melodic instrument is specified by a key number The keys on the keyboard are numbered consecutively from 0 to 127 where 0 is the left most key Middle C is key number 60 The loudness of an instrument is specified by a velocity which represents the force with which the keyboard key is depressed Velocity ranges from 0 to 127 where 64 is the standard velocity A higher velocity results in a louder sound Using the Sound Extension The sound extension comes pre installed To use the extension in your model add a line to the top of your procedures tab extensions sound jar For more information on NetLogo extensions see the Extensions Guide Please note that the NetLogo extensions facility is under development and is still considered experimental so the syntax is likely to change in a future version of NetLogo
43. and 0 799999999999 instead of 0 1 and 0 8 Why See the Math section of the Programming Guide in the User Manual for a discussion of this issue How can I keep two turtles from occupying the same patch See One Turtle Per Patch Example in the Code Examples section of the Models Library How can find out if a turtle is dead When a turtle dies it becomes equal to nobody So for example if turtle 0 nobody You could also use is turtle if is turtle turtle O sss How do find out how much time has passed in my model NetLogo does not automatically keep track of this If you want to keep track of the passage of time add a global variable to your model with a name like clock or steps In your setup procedure set the variable to 0 In your go procedure increment the variable Many of the models in the Models Library use this technique The reason NetLogo doesn t automatically keep track of this is that NetLogo is very flexible about letting you make buttons that do anything that you want them to NetLogo has no one way of knowing which of your buttons should advance the clock and which shouldn t Does NetLogo have arrays What NetLogo calls lists are actually implemented internally as arrays so they have some of the performance characteristics of arrays For example random access using the item reporter takes constant time However they re immutable arrays they cannot be altered except by making a c
44. be called before this command can be used See also file show file type and file write file read file read This reporter will read in the next constant from the opened file and interpret it as if it had been typed in the Command Center It reports the resulting value The result may be a number list string boolean or the special value nobody 174 Primitives Dictionary NetLogo 2 1 0 User Manual Whitespace separates the constants Each call to file read will skip past both leading and trailing whitespace Note that strings need to have quotes around them Use the command file write to have quotes included Also note that the file open command must be called before this reporter can be used and there must be data remaining in the file Use the reporter file at end to determine if you are at the end of the file file open myfile data print file read 5 7 Next value is the number 1 gt 6 print length file read 7 Next value is the list 1 2 3 4 gt 4 See also file open and file write file read characters file read characters number Reports the given number of characters from an opened file as a string If there are fewer than that many characters left it will report all of the remaining characters Note that it will return every character including newlines and spaces Also note that the file open command must be called before this reporter can be used and there must be data remaining in the f
45. button If there are any syntax errors the Errors tab will come to the front of the screen and turn red The code that contains the error will be highlighted and a comment will appear in the top box Switching tabs also causes the code to be checked and any errors will be shown so if you switch tabs pressing the Check button first isn t necessary To find a fragment of code in the procedures click on the magnifying glass on the Procedures Toolbar Then enter the text you are looking for and hit the Find button The Find Again button finds the next location of the word or fragment of code throughout the procedure To find a particular procedure definition in your code use the Procedures popup menu in the Procedures Toolbar The menu lists all procedures in alphabetical order The Shift Left Shift Right Comment and Uncomment items on the Edit menu are used in the procedures tab to change the indentation level of your code or add and remove semicolons which mark comments from sections of code For more information about writing procedures read Tutorial 3 Procedures and the Programming Guide Information Tab The Information tab provides an introduction to the model and an explanation of how to use it things to explore possible extensions and NetLogo features It is very helpful when you re first exploring a model 64 Interface Guide NetLogo 2 1 0 User Manual Interface Information Procedures Errors
46. by default NetLogo ships with a 512 megabyte ceiling on how much total RAM it can use On other operating systems the ceiling is determined by your Java VM Here s how to raise the limit if you need to e Windows Edit this section of the NetLogo lax file in the NetLogo folder LAX NL JAVA OPTION JAVA HEAP SIZE MAX allow the heap to get huge lax nl java option java heap size max 536870912 142 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual e Macintosh Edit the Contents Info plist file in the NetLogo application package You can reach this file by control clicking the application in the Finder and choosing Show Package Contents from the popup menu The relevant section is this the second number is the ceiling lt key gt VMOptions lt key gt lt string gt XX PrintJavaStackAtFatalState Xms16M Xmx512M lt string gt Note that at least as of Mac OS X 10 3 the maximum possible heap size for any Java program is two gigabytes e Other Java VMs from Sun let you set the ceiling on the command line as follows If you are using a VM from a different vendor the method may be different java Xmx512M jar NetLogo jJar Can import a graphic into NetLogo Yes See Image Import Example in the Code Examples section of the Models Library This example contains NetLogo code that reads in image files stored in PGM Portable GrayMap format In a future version we plan to make this a built in capabil
47. by the string plotname to an external file given by the string filename If a pen is in bar mode mode 0 and the y value of the point plotted is greater than 0 the upper left corner point of the bar will be exported If the y value is less than 0 then the lower left corner point of the bar will be exported export all plots writes every plot in the current model to an external file given by the string filename Each plot is identical in format to the output of export plot export world writes the values of all variables both built in and user defined including all observer turtle and patch variables to an external file given by the string filename The result file can be read back into NetLogo with the import world primitive export plot export all plots and export world save files in in plain text comma separated values csv format CSV files can be read by most popular spreadsheet and database programs as well as any text editor If the file already exists it is overwritten If you wish to export to a file in a location other than the model s location you should include the full path to the file you wish to export Use the forward slash as the folder separator Note that the functionality of these primitives is also available directly from NetLogo s File menu Primitives Dictionary 171 NetLogo 2 1 0 User Manual export world fire csv 7 exports the state of the model to the file fire csv located in the Net
48. clear output or export output in a model which does not have a separate output area then the commands apply to the output portion of the Command Center File I O In NetLogo there is a set of primitives that give you the power to interact with outside files They all begin with the prefix file There are two main modes when dealing with files reading and writing The difference is the direction of the flow of data When you are reading in information from a file data that is stored in the file flows into your model On the other hand writing allows data to flow out of your model and into a file When a NetLogo model runs as an applet within a web browser it will only be able to read data from files which are in the same directory on the server as the model file Applets cannot write to any files When working with files always begin by using the primitive ile open This specifies which file you will be interacting with None of the other primitives work unless you open a file first The next file primitive you use dictates which mode the file will be in until the file is closed reading or writing To switch modes close and then reopen the file The reading primitives include ile read file read line file read characters and file at end Note that the file must exist already before you can open it for reading The primitives for writing are similar to the primitives that print things in the Command Center except that th
49. close all file close file close Closes a file that has been opened previously with file open Note that this and file close all are the only ways to restart to the beginning of an opened file or to switch between file modes If no file is open does nothing See also file close all file open file close all file close all Closes all files if any that have been opened previously with file open See also file close file open file delete file delete string Deletes the file specified as string string must be an existing file with writable permission by the user Also the file cannot be open Use the command file close to close an opened file before deletion Note that the string can either be a file name or an absolute file path If it is a file name it looks in whatever the current directory is This can be changed using the command set current directory It is defaulted to the model s directory file exists file exists string Reports true if string is the name of an existing file on the system Otherwise it reports false Note that the string can either be a file name or an absolute file path If it is a file name it looks in whatever the current directory is This can be changed using the command set current directory It defaults to to the model s directory Primitives Dictionary 173 NetLogo 2 1 0 User Manual file open file open string This command will interpret string as a path name to a file and open
50. dea base ahs stu ae nein Sar ud ene ORIENTE accutane teal nace ee tomate 231 US C CNOICS cm A IE oe DO de cas dot 8 UE qa CE SO RE Cotes duce aes aes audio and 231 ser hoose direCtoiy ee 232 USCr ChOOSC TI Gs iii a tivos 232 User choose newsll dat tiesa 232 A AO NO 232 USGr MeSSAGS id ii 233 USES 0 NOA A A O 233 a A A RR es Mme tet ale 233 VAI OSIOM ss See auc cctieecdectcadeneed A E SERA Du 233 NetLogo 2 1 0 User Manual Table of Contents Primitives Dictionary VAISS STROM ii AN RD NS SS A 233 VALANCES uso dee vee hecdiiuts ds cassada tra eos saute SUE da a La Sa Maes da tiny a E 234 VALSA a A SR de Rd PA RO AS RE RR o A A Be RR DADA RA A 234 Walt ites EAA DR Da alot we an cian 234 WAE ir Mie fotus apra ii A dia anata car Ca GR a Meee 234 WO cs Stason tits sande duress A dO AUS e ST sa Sha UT da ER aera tect 234 A 235 ATL es gt E R E ee ro A ida 235 WITH MIN ARDOR RAR RN ve NANDA RR ee avian RR 235 without interruption rare ra tener eae rena r eras rea nenes 236 WO dd qa do qd dA Td and nd a do oe Be O dol 236 WIaD COlO iia daa did 236 WITS sets cca tis iate A A AA AA ae 237 DR E alas do eae ao Di ss E a e oa o ee ace actas Da doe ER id 237 XCO lees tek cmi O a is Sts pad ca CR RO eek A aaa ad 237 XOTE eS EA a eC RA a ee 237 IMS ia RES ee A A dite E E DS da id SS E E 237 YOO REPOR O RR E RRDDO RR a E aa a RR A RR io 238 iAP ae di ARA DRA A UA A AAA SAO O o UA DRA O A R Da SO o ARA TR AO 238 BLADE RE PARAR
51. doesn t work for me Can have a direct link to the software 140 Downloading NetLogo takes too long Is it available any other way such as ona CD A nai a A e e e aa 140 downloaded and installed NetLogo but the Models Library has few or no models Mit HOW Can TIAS ii la hes 140 Can have multiple versions of NetLogo installed at the same time 140 I m on a UNIX system and can t untar the download Why2 141 NA O NN 141 Can make my model available as an applet while keeping the code secret 141 Can a model saved as an applet use import world and file open 141 Di AA A E tea A A an 142 How do change how many patches there are cccccccnnnnococcccccconnnonnnnnncnnnnncnnnnanononoos 142 Can use the mouse to paint in the graphics window e 142 How big can my model be How many turtles patches procedures buttons and so on can My model contain sia ot dona nie ear e uia sol ia 142 Can import a graphic into NetLogo eee eeeeaareresaaaenaaeaaanaaaes 142 Can import GIS data into NeiLogo is uassa sita isiressdo justa pa porta eri dan tan bica dada 143 My model runs slowly How can speed it up ni eeeeeeeeeereresaaan 143 lwant totry FUNG DAA An 143 Can run a NetLogo model from the command line Can run it without a GUI 144 Can have more than one model open at a time eee 144 Can save the
52. element first To learn more about the different kinds of interface elements refer to the chart below Chart Interface Toolbar Icon amp Name Description Button Buttons can be either once only buttons or forever buttons When you click ona once button it executes its instructions once The forever button executes the instructions over and over until you click on the button again to stop the action If you have assigned an action key to the button pressing the corresponding keyboard key will act just like a button press when the button is in focus Buttons with action keys have a letter in the upper right corner of the button to show what the action key is If the input cursor is in another interface element such as the Command Center pressing the action key won t trigger the button The letter in the upper right hand corner of the button will be dimmed in this situation To enable action keys click in the white background of the Interface tab EE siider Sliders are global variables which are accessible by all agents They are used in models as a quick way to change a variable without having to recode the procedure 60 Interface Guide NetLogo 2 1 0 User Manual every time Instead the user moves the slider to a value and observes what happens in the model TSA switch Switches are a visual representation for a true false variable The user is asked to set the variable to either on true or off false b
53. family of languages We believe that NetLogo shares enough syntax vocabulary and features with other Logos to earn the Logo name Still NetLogo differs in some respects from most other Logos The most important differences are as follows Surface differences e The precedence of mathematical operators is different Infix math operators like etc have lower precedence than reporters with names For example in many Logos if you write sin x 1 it willbe interpreted as sin x 1 NetLogo on the other hand interprets it the way most other programming languages would and the way the same expression would be interpreted in standard mathematical notation namely as sin x 1 e The and and or reporters are special forms not ordinary functions and they short circuit that is they only evaluate their second input if necessary e Procedures can only be defined in the Procedures tab not interactively in the Command Center e Reporter procedures that is procedures that report return a value must be defined with to report instead of to The command to report a value from a reporter procedure is report not output e When defining a procedure the inputs to the procedure must be enclosed in square brackets e g to square x e Variable names are always used without any punctuation always foo never foo or foo To make this work instead of a make command taking a quoted argument we supply a set special form which does
54. for connecting to the TI Navigator system and running the HubNet activity If you don t actually want to run the model just press the Cancel button For more information about how to log in to the calculators and other details of using Calculator HubNet please refer to the Participatory Simulations Guide which can be found on the Participatory Simulations Project web site More Information For specific instructions on using Calculator HubNet in your classroom see A Guide to Participatory Simulations Network Based Design for Systems Learning in Classrooms Teacher workshops For information on upcoming workshops and NetLogo and HubNet use in the classroom please contact us at feedback ccl northwestern edu HubNet Authoring Guide To learn about authoring or modifying HubNet activities see the HubNet Authoring Guide HubNet Guide 107 NetLogo 2 1 0 User Manual Getting help If you have any questions about Computer HubNet or Calculator HubNet or need help getting started please email us at feedback ccl norithwestern edu 108 HubNet Guide HubNet Authoring Guide This explains how to use NetLogo to modify the existing HubNet activities or build your own new HubNet activities e General HubNet Information e NetLogo Primitives Setup Data Extraction Sending Data e Calculator HubNet Information e Computer HubNet Information How To Make an Interface for a Client Graphics Window Updates on the Clients Plot
55. given list or the number of characters in the given string let let variable value Creates a new local variable and gives it the given value A local variable is one that exists only within the enclosing block of commands If you want to change the value afterwards use set Example let prey random one of sheep her if prey nobody ask prey die list list value value2 list value valuen Reports a list containing the given items The items can be of any type produced by any kind of reporter 190 Primitives Dictionary NetLogo 2 1 0 User Manual show list random 10 random 10 gt 4 9 or similar list show list 5 gt 5 show list random 10 1 2 3 random 10 gt 4 1 2 3 9 or similar list In In number Reports the natural logarithm of number that is the logarithm to the base e 2 71828 See also e log locals locals Vax1 var2 NOTE This keyword should not be used in new models Please use the let command instead locals is included only for backwards compatibility with NetLogo version 2 0 and earlier It will not necessarily continue to be supported in future versions of NetLogo Locals is a keyword used to declare local variables in a procedure that is variables that are usable only within that procedure It must appear at the beginning of the procedure before any commands See also let log log number base Reports the logarithm of num
56. ii cutee cate aora tects 181 NetLogo 2 1 0 User Manual Table of Contents Primitives Dictionary MM A SS RAND RR RAN ND DIR ER et 181 ASDA srs ates hens oo dicas e aid 181 hubnet broadcast is cieereaaeraaaraeaeraa a nano arara nano arara EEREN EEEn EEn nnen 182 hubnet broadcast graphicsS ccocccoccconccnnccnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnninnninnniss 182 hubnet enter MESS ada nipeni ee re E A TEE 182 h bnet exit message Z e sr a a e E E EAA N TRE 182 hubnet fetCh MeSSAE cccccccccceeecsssensneeeeeeeeseseeeeeeeeeeeeeeeeeeeeneaeeeeeeeessseeeniaeeeeeeesseeeee 182 hubnet Message ui a as 183 DUDNet MESSage SQUICB ccccccccccnncnnnnnnnnnnnnnnnnnnnnnnn nono nono nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnrnnnennnennnness 183 DUDNet MESSage taQ cccccccccccnoncnnnononononononnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnneninnnnss 183 hubnet Message WaltidQP oooococonnnccccnonoooonnnoncccnnnnnononnnnnnnnnnnnnnnnnrnnnnnnnnnnnnnnnnnrnnnnccninnnnnos 183 O sic eee 183 MDEE EE AAE A eae aa DECISAO a EE 184 hubnet Send graphics cccccccccccncnnncnnnnnoncnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnineninnnoss 184 hubnet set client inter ace occcccccncccccncnoccncnononcncnononcncnonananononanannno nono ncno no nana nc non ncnannns 184 A AR AO 185 EA si A A god DL aa 185 A ANN 186 MERIEN UE as 2 midia At o A DO da dE A do re des da lo o Bo SEE 186 Mport Wold soii dadas 186
57. in detail Let s try a biology model Wolf Sheep Predation a predator prey population model e Open the Models Library from the File menu NetLogo HEM Edit Tools Zoon 8 New sn tl Open 0 ir Models Library 3M 3 Save 3S E Save AS Save As Applet Print dE P e Choose Wolf Sheep Predation from the Biology section and press Open The Interface tab will fill up with lots of buttons switches sliders and monitors These interface elements allow you to interact with the model Buttons are blue they set up start and stop the model Sliders and switches are green they alter model settings Monitors and plots are beige they display data If you d like to make the window larger so that everything is easier to see you can use the zoom menu at the top of the window When you first open the model you will notice that the Graphics Window is empty all black To begin the model you will first need to set it up Tutorial 1 Models 21 NetLogo 2 1 0 User Manual e Press the setup button What do you see appear in the Graphics Window e Wait until the setup button pops back up in other words turns blue again e Press the go button to start the simulation As the model is running what is happening to the wolf and sheep populations e Press the go button to stop the model Controlling the Model Buttons When a button is pressed the model responds with an action A button can be a
58. in different ways NetLogo s design was driven by the need to revise and expand the language so it is easier to use and more powerful and by the need to support the HubNet architecture NetLogo also incorporates almost all of the extended functionality of our earlier StarLogoT You can use the chart below to help familiarize yourself with the new features NetLogo has to offer StarLogoT Netlogo gt Features X Fully programmable X _ Models can be saved as applets to be embedded in a web page Simplified language structure X Agentsets make many programming tasks easier StarLogoT X X i o ES pa E po 138 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual Exact on screen turtle positioning Redesigned user interface Text labels for turtles and patches Many new primitives E RI ES X ir X _ BehaviorSpace a tool used to collect data from multiple runs of a model ER EA Po Se E 161 HubNet participatory simulations using networked devices Java API for user extensions Java API for controlling NetLogo from outside Headless operation from the command line Has anyone built a model of lt x gt The best place to ask this question is on the NetLogo Users Group You should also check the Community Models section of our Models Library web page Are NetLogo models runs scientifically reproducible Yes NetLogo s agent scheduling algorithms are deterministic and N
59. in radius IN FAQIUS NQWIAQD ccccconccnncconnnonnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnninnenss 187 INS POC o COR E AR RR RR 187 MM ttt a ara he ont oe AO see AR ca NT Rado a e Ree AR Ad a E co MA Da 187 is agent is agentset is boolean is list is number is patch is patch agentset is string is turtle is turtle agentset 188 EM eects errar oth ce A tee Oda tds eda aie 188 reat a th OTN Ad RES Sa APTN Ae tg e NOM Bat SC ds AA AS ue a 189 JUNI RES RPE MENESES eet ma taisavebennatetands da 189 estes seein safa doa a a oe ke alco el a Nett 189 ADE eee NENEI S EA BO E NE EIAN EA A RO ee 189 EKE E qee APN A AEA UTA 189 PAST EE E A PEE E E E A el Ae ARIA E Aa NS 190 EE econ scot AE E EE TAE E E O RARE SE A TS E E SAR RD 190 AN 190 ra is A a ps a de A RA ADA A O A A a a 190 A EETA EA E TEA 190 NN 191 aE E E EIEEE A Maa A a a oat CR NOIR A cla Misti coheed a 191 TOM care does 191 O A Ieee 191 AAA AP OS 192 As caga Lodo cao ed cana de mata ED ca da tl lato 192 TVD RENA CURE A vin ataseanvevcten lavanaesaedunincedudhadulaivatechedoes aavesaaes aieddengaYesuavevpederiuatabsdivand 192 ds ep as EE NOR ERR A ree 192 MaX 0NB 0 isos avis AA de cada aed Socata a SRU UR eet oes 193 Aale A RAM OS A A A ERON E TA RAR ED 193 PM OCIA Sl sas ata cccthann case De nao iso asd aa O chee a O a aa ade SR atos nas aaa 193 NetLogo 2 1 0 User Manual Table of Contents Primitives Dictionary member
60. is better for the data to be increasing the more 100 BehaviorSpace Guide NetLogo 2 1 0 User Manual positive the slope the better decreasing the more negative the better or constant the closer to O the better Relative weight menu Determines the relative importance of the slope of the data compared to how well it fits a line or exponential curve see slope type menu If 60 is chosen then 60 of the data s rank comes from its slope how much it is increasing decreasing or constant and 40 comes from line and curve fitting error So a value of 100 means only slope is considered while a value or O means only the error is considered e If you do not care about seeing strictly linear or exponential behavior in the run data you should use high relative weight values and otherwise use low ones Fitness landscape Consists of a grid of squares each of which represents the model run whose slider values were the current values of the constant sliders below and the ith and jth values of the two sliders on the grid s axes where i is the horizontal index of the square and is the vertical The entire grid thus represents all runs in which the constant sliders had their current values the current values being the ones displayed on the set of slider components held constant below the grid This grid earns the name fitness landscape because the squares of which it is composed each has a fitness value expressed by the color of the squa
61. jar IntegerList java SampleExtension java Then create a JAR containing the resulting class files and the manifest For example jar cvfm example jar manifest txt IntegerList class SampleExtension class For information about manifest files JAR files and Java tools see java sun com 5 Use your extension in a model To use our example extension put the extension JAR in the NetLogo extensions folder or in the same directory as the model that will use the extension At the top of the Procedures tab write extensions example jar Now you can use first n integers just like it was a built in NetLogo reporter For example select the Interface tab and type in the Command Center O gt show first n integers 5 observer 1 2 3 4 5 Extension development tips Debugging extensions There are special NetLogo primitives to help you as you develop and debug your extension Like the extensions facility itself these are considered experimental and will be changed at a later date That s why they have underscores in their name eprint __dump extensions prints information about loaded extensions eprint __dump extension prims prints information about loaded extension primitives e_ reload extensions forces NetLogo to reload all extensions the next time you compile your model Without this command changes in your extension JAR will not take effect until you open a model or restart NetLogo Third party JARs If your extension dep
62. make the cars turn blue and try to make the patches turn red If you try to ask the patches to set color red an error message occurs 34 Tutorial 2 Commands NetLogo 2 1 0 User Manual Command Center Cleai T gt set color yellow ERROR You can t use COLOR ina patch context because COLOR is turtle only e Type set pcolor red instead and press return We call color and pcolor variables Some commands and variables are specific to turtles and some are specific to patches For example the color variable is a turtle variable while the pcolor variable is a patch variable Go ahead and practice altering the colors of the turtles and patches using the set command and these two variables To be able to make more changes to the colors of turtles and patches or shall we say cars and backgrounds we need to gain a little insight into how NetLogo deals with colors In NetLogo all colors have a numeric value In all of the exercises we have been using the name of the color This is because NetLogo recognizes 16 different color names This does not mean that NetLogo only recognizes 16 colors There are many shades in between these colors that can be used too Here s a chart that shows the whole NetLogo color space black 0 white 9 9999 gray 5 8 9 9 9999 red 15 18 19 19 9999 orange 25 28 29 29 9999 brown 35 38 39 39 9999 yellow 45 48 49 49 9999 green 55 58 59 59 9999 lime 65 68 69 69 999
63. nona Lorena ras branda de aan dando 224 SUA Essa A SS O AS 224 SIAM eked RR ede eee ee EEE ci eed tee eee et RR aah 224 Slandard deviatiON ccooooccconccconcncnnncconnccnononononcnnoncccnnn ronca ccnn nano arrancan rana rc rare 224 SLAM rar 225 SLO Desens SE E RIR RENO O NOR DEN ORE eater OND DEN es 225 SUBIISHSUBSTNNG serei oE eae egin dado ad edi 225 subtract headinas eee rea eeeaa rea ares arena nes e ras aeee e ease aaa ease EEEE E EEEE 225 OT a a REGIS PR AR AP A RE o AR laden ddan Salta RIR RR ER E sheds nde RPE satan seta RE PE Divers 226 at od MS a qa NA IA NAO One o 226 Las sa O a E A DADE Sd a Ed pa ra e DO dc an 226 TIMER Bets caem PEED lode A Ca UE ass a 226 TO siste SE ssa iara mala US P SR ir REGIS ED TD Pac PASSAR CS GE RUA ab SECR sl Sta ai 226 Ot OO SR nS A eS ES ee 227 towards tOWALAS NOW AN eecceccececeecceeeceeeceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeteeeeeeeeeeeeseeeeeeeseetes 227 towardsxy towardsxy nowrap eee eene rr rre 227 a ee ee 228 tU ES PR RD ad ae AREA Seca lah seal eto edad Reed RES AR SIR SR 228 turtlesat BREED Sales ii ea ua do aa a ef eect 228 A E 229 turtles here BREED hN8r8B occcoonccconnccnoncccnnccononcconncno nan cononc cnn nn anna KNEA a 229 turiles on BREED on ease arrasa teares aerea E 229 turiles own BREED own cast E A rear arenas ANERE 230 VD Ea A A A NT eaten noua A cee as ea 230 ad 231 FU eee cette A 231 uphill ti
64. not evaluate its first input The last three differences are illustrated in the following procedure definitions most Logos NetLogo to square x to report square x output x x report x x end end 146 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual Deeper differences e NetLogo is lexically scoped not dynamically scoped e NetLogo has no word data type what Lisp calls symbols Eventually we may add one but since it is seldom requested it may be that the need doesn t arise much in agent based modeling We do have strings In most situations where traditional Logo would use words we simply use strings instead e Control structures such as if and while are special forms not ordinary functions You can t define your own special forms so you can t define your own control structures e As in most Logos functions as values are not supported Most Logos provide similar if less general functionality though by allowing passing and manipulation of fragments of source code in list form NetLogo s capabilities in this area are presently limited A few of our built in special forms use UCBLogo style templates to accomplish a similar purpose for example sort by length 21 lt length 22 string list In some circumstances using run and runresult instead is workable but unlike most Logos they operate on strings not lists Of course the NetLogo language also contains many additional features not found in most oth
65. now resolve ties by choosing randomly from the winners 4 clear al1 now includes the effect of clear output clear output no longer clears the output portion of the command center only the model s output area if it has one removed cc as an alias for clear output stricter rules are now in effect preventing you from using the same name for two different things in the same model for example a procedure and a local variable e engine fixes the file open command and other file reading commands now work in saved applets exporting and importing worlds now saves and restores the state of the random number generator 4 fixed histogram bug where sometimes the tallest bar in a histogram would be missing its top edge mouse down now behaves properly even if the mouse pointer leaves the graphics window while the mouse button is down removed spurious warning when importing a world file edited in Excel 4 fixed bug where combining ask with recursion sometimes caused a Java exception fixed Mac only bug where mouse down would sometimes spontaneously become false for no reason 4 fixed the n values primitive to work correctly with constant lists 4 fixed obscure bug where setting a turtle or patch color to an extremely small negative value such as 1 0E 15 could cause a Java exception fixed obscure bug where the random seed command ignored the high 4 bits of its 32 bit input 4 n values now signals an error if given negative input
66. nowrap towardsxy towardsxy nowrap turtle turtles turtles at turtles from turtles here turtles on turtles own uphill value from Patch related primitives clear patches cp diffuse diffuse4 distance distance nowrap distancexy distancexy nowrap inspect is patch myself neighbors neighbors4 no label nobody nsum nsum4 of patch patch at patch ahead patch at heading and distance patch here patch left and ahead patch right and ahead patches patches from patches own self sprout sprout BREED value from Agentset primitives any ask at points BREED at BREED here BREED on count histogram from in radius min one of neighbors neighbors4 one of other turiles here aher BREED here patches patches from random n of random one df turtles with with max with min turtles at turtles from turtles here turtles on values from Color primitives extract hsb extract rgb hsb rgb scale color shade of wrap color Primitives Dictionary 153 NetLogo 2 1 0 User Manual Control flow and logic primitives and carefully end error message foreach if ifelse ifelse value let loop map not or repeat report run runresult semicolon set stop startup to to report wait while without interruption xor Display primitives clear all ca clear graphics cg clear patches cp clear turtles ct display no display no label screen edge x screen edge y screen size x screen size y HubNet primitives hubnet broadcast hubnet bro
67. of its heading The steps are 42 Tutorial 3 Procedures NetLogo 2 1 0 User Manual the same size as the patches end completes the definition of the setup procedure When you re done typing in the code switch to the Interface tab and press your setup button You will see the turtles quickly spread out in a rough cluster Notice the density distribution of the turtles on the Graphics Window Press setup a couple more times and watch how the turtles arrangement changes Keep in mind that some turtles may be right on top of each other Can you think of other ways to randomly distribute the turtles over the screen Note that if a turtle moves off the screen it wraps that is comes in the other side Make a forever button called go Again begin by creating a button but this time check the forever checkbox in the edit dialog Tutorial 3 Procedures 43 NetLogo 2 1 0 User Manual S mul SS Mor Esso a E TT Editing Button Agent s Observer HH Display Name g Code v Forever Y Force display update after each run Checking this box causes smoother screen updates but may make the button run more slowly Then add its procedure to the Procedures tab to go move turtles end But what is move turtles Is it a primitive in other words built in to NetLogo like fd is No it s a procedure that you re about to write right after the go procedure to move turtles ask turtles set h
68. of these though Gathering Information Plots and Monitors A purpose to modeling is to gather data on a subject or topic that would be very difficult to do in a laboratory situation NetLogo has two main ways of displaying data to the user plots and monitors Plots The plot in Wolf Sheep Predation contains three lines sheep wolves and grass 4 The grass count is divided by four so it doesn t make the graph too tall The lines show what s happening in the model over time To see which line is which click on Pens in the upper right corner of the plot window to open the plot pens legend A key appears that indicates what each line is plotting In this case it s the population counts When a plot gets close to becoming filled up the horizontal axis increases in size and all of the data from before gets squeezed into a smaller space In this way more room is made for the plot to grow If you want to save the data from a plot to view or analyze it in another program you can use the Export Plot item on the File menu It saves this information to your computer in a format that can by read back by spreadsheet and database programs such as Excel You can also export a plot by control clicking Mac or right clicking Windows it and choosing Export from the popup menu Monitors Monitors are another method of displaying information in a model Here are the monitors in Wolf Sheep Predation time ticks sheep wolves grass
69. of turtles here reports a turtle set containing one turtle from 7 each patch that has any turtles on it turtles from neighbors turtles here if run by a turtle or patch reports the set of all turtles on the neighboring eight patches note that 7 this could be written more concisely using turtles on 7 like this Far turtles on neighbors See also patches from turtles on turtles here BREED here turtles here BREED here Reports an agentset containing all the turtles on the caller s patch including the caller itself if it s a turtle ca ert 10 ask turtle O show count turtles here gt 10 If the name of a breed is substituted for turtles then only turtles of that breed are included breeds cats dogs create cats 5 create dogs 1 ask dogs show count cats here gt 5 See also_other turtles here turtles on BREED on Primitives Dictionary 229 NetLogo 2 1 0 User Manual turtles on agent turtles on agentset BREED on agent BREED on agentset Reports an agentset containing all the turtles that are on the given patch or patches or standing on the same patch as the given turtle or turtles ask turtles if not any turtles on patch ahead 1 fd 1 41 ask turtles if not any turtles on neighbors die of loneliness If the name of a breed is substituted for turtles then only turtles of that breed are included See also_turtles from turtles own
70. plot pen interval then plots a point at the updated x value and a y value of number The first time the command is used on a plot the point plotted has an x value of 0 plot name plot name Reports the name of the current plot a string plot pen down ppd plot pen up ppu plot pen down plot pen up Puts down or up the current plot pen so that it draws or doesn t By default all pens are down initially Primitives Dictionary 205 NetLogo 2 1 0 User Manual plot pen reset plot pen reset Clears everything the current plot pen has drawn moves it to 0 0 and puts it down If the pen is a permanent pen the color and mode are reset to the default values from the plot Edit dialog plotxy plotxy number number Moves the current plot pen to the point with coordinates number1 number2 If the pen is down a line bar or point will be drawn depending on the pen s mode plot x min plot x max plot y min plot y max plot x min plot x max plot y min plot y max Reports the minimum or maximum value on the x or y axis of the current plot These values can be set with the commands set plot x range and set plot y range Their default values are set from the plot Edit dialog position position item list position string1 string2 On a list reports the first position of tem in list or false if it does not appear On strings reports the position of the first appearance string1 as a substring of st
71. same greatest value a random one of those patches will be selected If the patch is located directly to the north south east or west of the patch that the turtle is currently on a multiple of 90 degrees is reported However if the patch is located to the northeast northwest southeast or southwest of the patch that the turtle is currently on the direction the turtle would need to reach the nearest corner of that patch is reported See also_uphill4 downhill downhill uphill4 uphill4 patch variable x Reports the turtle heading between 0 and 359 degrees as a multiple of 90 degrees in the direction of the maximum value of the variable patch variable of the four patches to the north south east and west of the turtle If there are multiple patches that have the same greatest value a random patch from those patches will be selected See also_uphill downhill downhill4 user choice user choice value list of choices Opens a dialog with value displayed as the message and a button corresponding to each item in list of choices Reports the item in list of choices that is associated with the button the user presses Primitives Dictionary 231 NetLogo 2 1 0 User Manual value may be of any type but is typically a string if yes user choic Set up the model no yes setup user choose directory user choose directory Opens a dialog that allows the user to choose an existing directory on the system
72. scale color red age 0 50 7 colors each turtle a shade of red proportional 7 to its value for the age variable 216 Primitives Dictionary NetLogo 2 1 0 User Manual screen edge x screen edge y screen edge x screen edge y These reporters give the maximum x coordinate and maximum y coordinate respectively of the Graphics Window screen edge x and y are the half width and half height of the NetLogo world the distances from the origin to the edges screen size is the same as 2 screen edge 1 Note You can set the size of the Graphics Window only by editing it these are reporters which cannot be set cct 100 setxy random float screen edge x random float screen edge y 7 distributes 100 turtles randomly in the 5 first quadrant screen size x screen size y screen size x screen size y These reporters give the total width and height of the NetLogo world Screen size is the same as 2 screen edge 1 self self isd Jin Reporis this turile or patch self and myself are very different self is simple it means me patch who asked me to do what I m doing right now myself means the turtle or ask turtles with self myself die this turtle kills all other turtles See also myself Primitives Dictionary 217 NetLogo 2 1 0 User Manual semicolon comments After a semicolon the rest of the line is ignored This is useful for adding comments
73. shape rabbit Provided there is some shape called rabbit in this model give this command to the observer in the command center O gt crt 50 And then give these commands to the turtles to spread them out then change their shape T gt fd random 15 T gt set shape rabbit Voila Rabbits Note the use of double quotes around the shape name Shape names are strings 94 Shapes Editor Guide NetLogo 2 1 0 User Manual The set default shape command is also useful for assigning shapes to turtles Shapes Editor Guide 95 96 NetLogo 2 1 0 User Manual Shapes Editor Guide BehaviorSpace Guide This guide is broken up into three paris e BehaviorSpace Old and New An explanation of how BehaviorSpace has changed since NetLogo 1 3 e What is BehaviorSpace A general description of the tool including the ideas and principles behind it e How It Works Walks you through how to use the tool and highlights its most commonly used features BehaviorSpace Old and New For NetLogo 2 0 and 2 1 the old BehaviorSpace tool from NetLogo 1 x was replaced with a new rewritten version which though functional is still under development The new version does not yet include all the functionality of the old one The biggest difference is that it does not include any of the data analysis capabilities the old version had Instead it is assumed that you will use other software Such as a spreadsheet program or scientific visualizati
74. the file You may then use the reporters file read file read line and file read characters to read in from the file or file write file print file type or file show to write out to the file Note that you can only open a file for reading or writing but not both The next file i o primitive you use after this command dictates which mode the file is opened in To switch modes you need to close the file using file close Also the file must exist when opening a file in reading mode When opening a file in writing mode all new data will be appended to the end of the original file If there is no original file a new blank file will be created in its place The user needs to have writable permission in the file s directory Note that the string can either be a file name or an absolute file path If it is a file name it looks in whatever the current directory is This can be changed using the command set current directory It is defaulted to the model s directory file open myfile in txt print file read line gt First line in file File is in reading mode file open C NetLogo myfile out txt 7 assuming Windows machine file print Hello World File is in writing mode See also file close file print file print value Prints value to an opened file followed by a carriage return The calling agent is not printed before the value unlike file show Note that this command is the file i o equivalent of print and file open needs to
75. the line diffuse elevation 1 with repeat 5 diffuse elevation 1 The repeat command is another way for NetLogo to loop besides making a forever button which you already know how to do Repeat takes a number here 5 and some commands here the diffuse command and executes the commands that number of times here five times Try it out and look at the landscape i e press setup and see what you think Then press go and watch the turtles behavior Remember that the lighter the patch the greater the elevation Obviously fewer peaks make for an improvement in the turtles performance On the other hand maybe you feel like this is cheating the turtles really aren t doing any better it s just that their problem was made easier True enough If you call repeat with an even higher number 20 or so you ll end up with only a handful of peaks as the values become more evenly distributed with every successive call Watch the values in the monitors In order to specify how smooth you want your world to be let s make it easier to try different values Maybe one time you ll want the turtles to try and solve a hard world and maybe another time you ll just want to look at an easy landscape So we ll make a global variable named smoothness Create a slider in the Interface tab and call it smoothness in the editing box The minimum can be 0 and the maximum can be 25 or so Then change your code to repeat smo
76. the model runs to a file The data saved for each model run includes the slider settings for that run how many time ticks the run lasted the minimum maximum average and final value for the behavior reporter and the value of the behavior reporter at each time tick during the run Note that the fitnesses are not exported only the raw behavior data In a future version of BehaviorSpace the fitness data will be exported as well Note The export buttons create files in plain text comma separated values csv format CSV files can be read by most popular spreadsheet and database programs as well as any text editor gt 102 BehaviorSpace Guide HubNet Guide This section of the User Manual introduces the HubNet system and includes instructions to set up and run a HubNet activity HubNet is a technology that lets you use NetLogo to run participatory simulations in the classroom In a participatory simulation a whole class takes part in enacting the behavior of a system as each student controls a part of the system by using an individual device such as a TI 83 calculator or a networked computer For example in the Gridlock simulation each student controls a traffic light in a simulated city The class as a whole tries to make traffic flow efficiently through the city As the simulation runs data is collected which can afterwards be analyzed on a calculator or computer For more information on participatory simulations and
77. the name of the activity to enable on the TI Navigator web site hubnet set client interface TI 83 notifies the user to enable this activity The second item is a list of the tags for which to check The tag list sets which variables NetLogo expects from the calculators NetLogo will only check for these variables and will ignore all others If client type is COMPUTER client info is a list containing a string with the file name and path relative to the model to the file which will serve as the client s interface This interface will be sent to any clients that log in hubnet set client interfac TI 83 AAA Gridlock 1 3 L1 LOCS 7 notifies the user to enable the activity AAA Gridlock 1 3 and looks for the calculator j lists Ll and LOCS on the Navigator server hubnet set client interfac COMPUTER clients Disease client nlogo 7 when clients log in they will will get the interface described in the file clients Disease client nlogo relative to 7 the location of the model Future versions of HubNet may support other client types and or change the meaning of the second input to this command See the HubNet Authoring Guide for details if if condition commands Reporter must report a boolean true or false value If condition reports true runs commands The reporter may report a different value for different agents so some agents may run commands and others don t
78. their learning potential please visit the Participatory Simulations Project web site Understanding HubNet NetLogo NetLogo is a programmable modeling environment It comes with a large library of existing simulations both participatory and traditional that you can use and modify Content areas include social science and economics biology and medicine physics and chemistry and mathematics and computer science You and your students can also use it to build your own simulations For more about NetLogo see the NetLogo Users Manual In traditional NetLogo simulations the simulation runs according to rules that the simulation author specifies HubNet adds a new dimension to NetLogo by letting simulations run not just according to rules but by direct human participation Since HubNet builds upon NetLogo we recommend that before trying HubNet for the first time you become familiar with the basics of NetLogo To get started using NetLogo models see_Tutorial 1 Running Models in the NetLogo Users Manual HubNet Architecture HubNet simulations are based on a client server architecture The activity leader uses the NetLogo application to run a HubNet activity When NetLogo is running a HubNet activity we refer to it as a HubNet server Participants use a client application to log in and interact with the HubNet server There are two types of HubNet available With Computer HubNet participants run the HubNet Client application on computer
79. this variable to make the turtle change color See also pcolor Primitives Dictionary 163 NetLogo 2 1 0 User Manual cos cos number Reporis the cosine of the given angle Assumes the angle is given in degrees show cos 180 gt 1 0 count count agentset Reports the number of agents in the given agentset show count turtles 7 prints the total number of turtles show count patches with pcolor red 7 prints the total number of red patches create turtles crt create lt BREED gt create turtles number create lt BREED gt number o Creates number new turtles New turiles start at position 0 0 are created with the 14 primary colors and have headings from 0 to 360 evenly spaced ert 100 ask turtles fd 10 makes an evenly spaced circle If the create lt BREED gt form is used the new turtles are created as members of the given breed create custom turtles cct create custom lt BREED gt cct lt BREED gt create custom turiles number commands create custom lt BREED gt number commands Creates number new turtles of the given breed if specified New turtles start at position 0 0 New turtles are created with the 14 primary colors and have headings from 0 to 360 evenly spaced The new turtles immediately run commands This is useful for giving the new turtles a different 164 Primitives Dictionary NetLogo 2 1 0 User Manual color heading or whatever breeds ca
80. time compilers that in turn compile Java byte code all the way to native code the new compiler should substantially improve the speed of NetLogo We are not sure when the new compiler will be done Downloading The download form doesn t work for me Can I have a direct link to the software Please write us at lbugs ccl northwestern edu and we ll either fix the problem with the form or provide you with an alternate method of downloading the software Downloading NetLogo takes too long Is it available any other way such as on a CD At present no If this is a problem for you contact us at feedback ccl northwestern edu downloaded and installed NetLogo but the Models Library has few or no models in it How can fix this So far users reporting this problem all used the without VM download option for Windows Uninstall NetLogo and try the with VM download instead Even if the with VM download fixes it for you please contact us at bugs Dccl northwestern edu so we can find out more details about your setup We d like to fix this in a future version but to troubleshoot it we need help from users 140 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual Can have multiple versions of NetLogo installed at the same time Yes When you install NetLogo the folder that is created contains has the version number in its name so multiple versions can coexist On a Window system whichever version you installed last
81. turtles own and patches own keywords like this turtles own energy speed patches own friction These variables can then be used freely in your model Use the set command to set them If you don t set them they ll start out storing a value of zero Global variables can by read and set at any time by any agent As well a turtle can read and set patch variables of the patch it is standing on For example this code ask turtles set pcolor red causes every turtle to make the patch it is standing on red Because patch variables are shared by turtles in this way you can t have a turtle variable and a patch variable with the same name In other situations where you want an agent to read or set a different agent s variable you put of after the variable name and then specify which agent you mean Examples set color of turtle 5 red 7 turtle with ID number 5 turns red set pcolor of patch 2 3 green 7 patch with pxcor of 2 and pycor of 3 turns green ask turtles set pcolor of patch at 1 0 blue 7 every turtle turns the patch to its east blue ask patches with any turtles here set color of random one of turtles here yellow 7 on every patch a random turtle turns yellow Local variables A local variable is defined and used only in the context of a particular procedure or part of a procedure To create a local variable use the Let command You can use this command anywhere If you use it at the top of a proce
82. use the URL where you have stored the extension For example extensions http yourdomain net jars sound jar Using __extensions tells NetLogo to find and open the specified extension and makes the custom commands and reporters found in the extension available to the current model You can use these commands and reporters just as if they were built in NetLogo primitives To use more than one extension list each extension seperately For example extensions sound jar speech jar Some extensions depend on additional files Check the instructions that come with the extension to see if you need to keep any other files with the extension Applets Models saved as applets using Save as Applet on NetLogo s File menu cannot make use of extensions We plan to fix this in a future release Writing Extensions We assume you have experience programming in Java Summary A NetLogo extension is a JAR that contains e one or more classes that implementation org nlogo api Primitive e a main class that implements org nlogo api ClassManager and e a NetLogo extension manifest file The manifest file must contain three tags e Extension Name the name of the extension e Class Manager the fully qualified name of a class implementing org nlogo api ClassManager e Net Logo Version the version of NetLogo for which this JAR is intended If a user opens the extension with a different version of NetLogo a warn
83. value from value from agent reporter Reports the value of the reporter for the given agent turtle or patch show value from turtle 5 who who gt 25 show value from patch 0 0 count turtles in radius 3 7 prints the number of turtles located within a 7 three patch radius of the origin values from values from agentset reporter Reports a list that contains the value of the reporter for each agent in the agentset ca crt 4 show values from turtles who gt 0 1 2 3 show values from turtles who who gt 0 1 4 9 Primitives Dictionary 233 NetLogo 2 1 0 User Manual variance variance list Reports the sample variance of a list of numbers Ignores other types of items The sample variance is the sum of the squares of the deviations of the numbers from their mean divided by one less than the number of numbers in the list show variance 2 7 4 3 5 gt 3 7 W wait wait number Wait the given number of seconds You can use floating point numbers to specify fractions of seconds Note that you can t expect complete precision the agent will never wait less than the given amount but might wait slightly more repeat 10 fd 1 wait 0 5 See also every while while reporter commands If reporter reports false exit the loop Otherwise run commands and repeat The reporter may have different values for different agents so some agents may run commands a different number of times
84. ways to change an individual turtle s color One way is to use the box called an Agent Commander found at the bottom of an Agent Monitor You type commands here just like in the Command Center but the commands you type here are Tutorial 2 Commands 37 NetLogo 2 1 0 User Manual only done by this particular turtle e In the Agent Commander of the Turtle Monitor for turtle O type set color pink What happens in the Graphics Window Did anything change in the Turtle Monitor A second way to change one turtle s color is to go directly to the color variable in the Turtle Monitor and change the value e Select the text to the right of color in the Turtle Monitor e Type in a new color such as green 2 What happened The third way to change an individual turtle s or patch s color is to use the observer Since the observer oversees the NetLogo world it can give commands that affect individual turtles as well as groups of turtles e In the Command Center select Observer from the popup menu or use the tab key e Type ask turtle 0 set color blue and press return What happens Just as there are Turtle Monitors there are also Patch Monitors Patch monitors work very similarly to Turtle Monitors Can you make a patch monitor and use it to change the color of a single patch If you try to have the observer ask patch 0 set pcolor blue you ll get an error message Command Center Clear ERROR Exp
85. with VM option when downloading NetLogo you will get version 1 4 2 05 of the VM which does not have the problem We are waiting to see if Sun will fix this issue in their 1 4 2 07 release or whether we will need to provide a workaround for 1 4 2 06 users Macintosh only bugs e When opening a model from the Finder by double clicking on it or dragging it onto the NetLogo icon if NetLogo is not already running then the model may or may not open the bug is intermittent If NetLogo is already running the model always opens e It is possible for NetLogo s menus to get confused so that the Quit item does not work If this happens you can quit NetLogo by pressing the red close button on the left end of the NetLogo s title bar e On OS X 10 2 the User Manual item on the Help menu will sometimes launch a web browser other than your default browser Known Issues 13 NetLogo 2 1 0 User Manual Linux UNIX only bugs e User Manual always opens in Netscape not your default browser One possible is to bookmark the file docs index html in your favorite browser Another workaro workaround und is to make a symlink that s called netscape that s the command name NetLogo tries to run but actually runs a different browser e We have discovered a problem on Linux where the exp reporter sometimes ret slightly different answer differing only in the last decimal place for the same inp urns a ut According to an engineer at Sun th
86. you to print several values on the same line The calling agent is not printed before the value unlike file show Note that this command is the file i o equivalent of type and file open needs to be called before this command can be used See also file print fle show and file write file write file write value This command will output value which can be a number string list boolean or nobody to an opened file not followed by a carriage return unlike file print and file show The calling agent is not printed before the value unlike file show lts output will also includes quotes around strings and is prepended with a space It will output the value in such a manner that file read will be able to interpret it Note that this command is the file i o equivalent of write and file open needs to be called before this command can be used file open locations txt ask turtles file write xcor file write ycor 176 Primitives Dictionary NetLogo 2 1 0 User Manual See also file print file show and file type filter filter reporter list Reports a list containing only those items of list for which the boolean reporter is true in other words the items satisfying the given condition In reporter use to refer to the current item of list show filter lt 3 1 3 2 gt 1 2 show filter first t hi there everyone gt hi everyone See also map reduce first fir
87. 0 all turtles less than 3 patches away turtles in radius 3 the four patches to the east north west and south patches at points 1 0 0 1 1 0 0 1 7 Shorthand for those four patches neighbors4 7 turtles in the first quadrant that are on a green patch turtles with xcor gt 0 and ycor gt 0 and pcolor green 5 turtles standing on my neighboring four patches turtles on neighbors4 Once you have created an agentset here are some simple things you can do e Use ask to make the agents in the agentset do something e Use any to see if the agentset is empty e Use count to find out exactly how many agents are in the set And here are some more complex things you can do e Pick a random agent from the set using random one of For example we can make a randomly chosen turtle turn green set color of random one of turtles green Or tell a randomly chosen patch to sprout a new turtle ask random one of patches sprout 1 e Use the max one of Or min one of reporters to find out which agent is the most or least along some scale For example to remove the richest turtle you could say ask max one of turtles sum assets die e Make a histogram of the agentset using the histogram f rom command e Use values from to make a list of values one for each agent in the agentset Then use one of NetLogo s list primitives to do something with the list See the Lists section below For example to fin
88. 1 0 User Manual stop instrument stop instrument instrument Stops all notes of an instrument 7 stop all cello notes stop instrument CELLO stop music stop music Stops all notes Sound names Drums 35 Acoustic Bass Drum 59 Ride Cymbal 2 36 Bass Drum 1 60 Hi Bongo 37 Side Stick 61 Low Bongo 38 Acoustic Snare 62 Mute Hi Conga 39 Hand Clap 63 Open Hi Conga 40 Electric Snare 64 Low Conga 41 Low Floor Tom 65 Hi Timbale 42 Closed Hi Hat 66 Low Timbale 43 Hi Floor Tom 67 Hi Agogo 44 Pedal Hi Hat 68 Low Agogo 45 Low Tom 69 Cabasa 47 Open Hi Hat 70 Maracas 47 Low Mid Tom 71 Short Whistle 48 Hi Mid Tom 72 Long Whistle 49 Crash Cymbal 1 73 Short Guiro 50 Hi Tom 74 Long Guiro 51 Ride Cymbal 1 75 Claves 52 Chinese Cymbal 76 Hi Wood Block 53 Ride Bell 77 Low Wood Block 54 Tambourine 78 Mute Cuica 55 Splash Cymbal 79 Open Cuica 56 Cowbell 80 Mute Triangle 57 Crash Cymbal 2 81 Open Triangle 58 Vibraslap Instruments Piano Reed 1 Acoustic Grand Piano 65 Soprano Sax 2 Bright Acoustic Piano 66 Alto Sax 3 Electric Grand Piano 67 Tenor Sax 4 Honky tonk Piano 68 Baritone Sax 5 Electric Piano 1 69 Oboe 6 Electric Piano 2 70 English Horn 7 Harpsichord 71 Bassoon 8 Clavi 72 Clarinet NetLogo Sound Extension 131 Chromatic Percussion 9 Celesta LO Glockenspiel L1 usic Box 12 Vibraphone 13 Marimba L4 Xyl
89. 19 9999 The scale is discontinuous 19 9999 is white but 20 0 is black The available color names are listed below See also the rgb and hsb primitives black O gray 5 white 9 9999 red 15 orange 25 brown 35 yellow 45 green 55 lime 65 turquoise 75 cyan 85 sky 95 blue 105 violet 115 magenta 125 pink 135 A abs abs number Reports the absolute value of number show abs 7 gt 7 show abs 5 gt 5 acos acos number Reports the arc cosine inverse cosine of the given number The input must be in the range 1 0 to 1 0 The result is in degrees and lies in the range 0 0 to 180 0 156 Primitives Dictionary NetLogo 2 1 0 User Manual and condition and condition Reports true if both condition and condition are true Note that if condition is false then condition2 will not be run since it can t affect the result if pxcor gt 0 and pycor gt 0 set pcolor blue 7 the upper right quadrant of 7 patches turn blue any any agentset Reports true if the given agentset is non empty false otherwise Equivalent to count agentset gt 0 but arguably more readable if any turtles with color red show at least one turtle is red Note nobody is not an agentset You only get nobody back in situations where you were expecting a single agent not a whole agentset If any gets nobody as input an error results See also_nobody Arithmetic Ope
90. 3 Procedures In Tutorial 2 you learned how to use command centers and agent monitors to inspect and modify agents and make them do things Now you re ready to learn about the real heart of a NetLogo Model the Procedures tab This tutorial leads you through the process of building a complete model built up stage by stage with every step explained along the way You ve already been exposed to the three types of agents you can give commands to in NetLogo turtles patches and the observer As you start to write your own procedures it ll be helpful to keep in mind how people usually think of these three different kinds of agents The turtles and patches usually don t use information about the whole world They mostly use information about what s close to them The observer on the other hand typically uses and accesses the whole world Also while patches can t move and often represent some sort of environment turtles can move around in the world Setup and Go To start a new model select New from the the File menu Then begin making your model by creating a once button called setup Here s how to make the button 1 Click on the button icon in the Toolbar 2 Click where you want the button to be in the empty white area of the Interface tab 3 When the dialog box for editing the properties of the button opens type setup in the box labeled Code EE AA eoo iaaa O Agent s Observer HJ Display Name setup o Code
91. 5 Sitar 106 Banjo 107 Shamisen 108 Koto 109 Kalimba 110 Bag pipe 111 Fiddle 12 Shanai Percussive 13 Tinkle Bell 114 Agogo 115 Steel Drums 116 Woodblock 117 Taiko Drum 18 Melodic Tom 119 Synth Drum 120 Reverse Cymbal Sound Effects 121 Guitar Fret Noise NetLogo Sound Extension 58 Trombone 59 Tuba 60 Muted Trumpet 61 French Horn 62 Brass Section 63 Synth Brass 1 64 Synth Brass 2 NetLogo Sound Extension NetLogo 2 1 0 User Manual 122 123 124 129 126 127 128 Breath Noise Seashore Bird Tweet Telephone Ring Helicopter Applause Gunshot 133 NetLogo 2 1 0 User Manual 134 NetLogo Sound Extension FAQ Frequently Asked Questions 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 General e Why is it called NetLogo e What programming language was NetLogo written in e How do cite NetLogo in an academic publication e How do cite a model from the Models Library in an academic publication e What license is NetLogo released under Are there are any legal restrictions on use redistribution etc e Is the source code to NetLogo available e Do you offer any workshops or other training opportunities for NetLogo e What s the difference between StarLogo MacStarLogo
92. 9 turquoise 75 78 79 79 9999 cyan 85 88 89 89 9999 sky 95 i os 99 99 9999 blue 105 100 108 109 109 9999 violet 115 110 111 118 119 119 9999 magenta 125 120 121 128 129 129 9999 pink 135 130 131 138 139 139 9999 Tutorial 2 Commands 35 NetLogo 2 1 0 User Manual To get a color that doesn t have its own name you just refer to it by a number instead or by adding or subtracting a number from a name For example when you type set color red this does the same thing as if you had typed set color 15 And you can get a lighter or darker version of the same color by using a number that is a little larger or a little smaller as follows e Choose Patches from the popup menu in the Command Center or use the tab key e Type set pcolor red 2 The spacing around the is important By subtracting from red you make it darker e Type set pcolor red 2 By adding to red you make it lighter You can use this technique on any of the colors listed in the chart Agent Monitors and Agent Commanders In the previous activity we used the set command to change the colors of all the cars But if you recall the original model contained one red car amongst a group of blue cars Let s look at how to change only one car s color e Press setup to get the red car to reappear e If you are on a Macintosh hold down the Control key and click on the red car On other operating systems click on the red car with the rig
93. E AE E IDR RO A RE 238 xili NetLogo 2 1 0 User Manual xiv What is NetLogo NetLogo is a programmable modeling environment for simulating natural and social phenomena It is particularly well suited for modeling complex systems developing over time Modelers can give instructions to hundreds or thousands of independent agents all operating concurrently This makes it possible to explore the connection between the micro level behavior of individuals and the macro level patterns that emerge from the interaction of many individuals NetLogo lets students open simulations and play with them exploring their behavior under various conditions It is also an authoring environment which enables students teachers and curriculum developers to create their own models NetLogo is simple enough that students and teachers can easily run simulations or even build their own And it is advanced enough to serve as a powerful tool for researchers in many fields NetLogo has extensive documentation and tutorials It also comes with a Models Library which is a large collection of pre written simulations that can be used and modified These simulations address many content areas in the natural and social sciences including biology and medicine physics and chemistry mathematics and computer science and economics and social psychology Several model based inquiry curricula using NetLogo are currently under development NetLogo can also power a classroom
94. EN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES This software is not designed or intended for use in on line control of aircraft air traffic aircraft navigation or aircraft communications or in the design construction operation or maintenance of any nuclear facility Licensee represents and warrants that it will not use or redistribute the Software for such purposes Copyright Information NetLogo 2 1 0 User Manual Copyright Information What s New 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 1 December 13 2004 e content NetLogo now includes a much larger and higher quality set of turtle shapes new models and all sample models include a new core set of frequently used shapes and you can also import shapes into a model from a large new shapes library the FAQ has been updated and expanded the Programming Guide now includes three new subsections on plotting on scientific notation for floating point numbers and on output to the screen new biology model Heatbugs new mathematics probability models Birthdays four ProbLab models Equidistant Probability Shuffleboard Sample Stalagmite 9 Blocks new earth science model Erosion new social science model Rebellion improved models Buffer overhauled Doppler over
95. Edge Y 17 Patch Size pixels 9 0 Font Size of turtle and patch labels 10 Y Turtle Shapes Y Exact Turtle Positions amp Sizes Cancel Apply PE To change the size of the Graphics Window adjust the Patch Size setting which is measured in pixels This does not change the number of patches only how large the patches appear on the screen To change the number of patches alter the Screen Edge X and Screen Edge Y settings Note that changing the numbers of patches requires rebuilding the NetLogo world you will lose all turtles and the values of all variables The Turtle Shapes checkbox performs the same function as the shapes button in the control strip discussed above In most NetLogo models turtles are visible at their exact locations and may vary in size If you turn off the Exact Turtle Positions checkbox then e Every turtle is drawn at the same size e Every turtle is drawn as if it were standing on the center of its patch e Only the top turtle on a patch is visible This makes a model appear is it would have in earlier versions of NetLogo which did not support turtle sizes and exact turtle positions This checkbox does not change behavior of a model only its visual appearance Command Center The Command Center allows you to issue commands directly without adding them to the model s procedures Commands are instructions you give to turtles patches and the observer This is useful for inspe
96. FAQ Frequently Asked Questions 143 NetLogo 2 1 0 User Manual arsblay end e If your model is using all available RAM on your computer then installing more RAM should help If your hard drive makes a lot of noise while your model is running you probably need more RAM In many cases though if you want your model to run faster you may need to make some changes to the code Usually the most obvious opportunity for speedup is that you re doing too many computations that involve all the turtles or all the patches Often this can be reduced by reworking the model so that it does less computation per time step If you need help with this if you contact us at feedback ccl northwestern edu we may be able to help if you can send us your model or give us some idea of how it works The members of the NetLogo Users Group may be able to help as well want to try HubNet Can I Yes There are two types of HubNet available With Computer HubNet participants run the HubNet Client application on computers connected by a regular computer network In Calculator HubNet created in conjunction with Texas Instruments participants use Tl 83 graphing calculators and the Tl Navigator Classroom Learning System Note that Calculator HubNet works with a prototype version of the Tl Navigator system and is not yet compatible with the commercially available TI Navigator We are actively working in partnership with Texas Instruments on integrating the new TI Naviga
97. Logo folder export plot Temperature c My Documents plot csv 7 exports the plot named 5 Temperature to the file plot csv located in the C My Documents folder export all plots c My Documents plots csv 77 exports all plots to the file plots csv located in the C My Documents folder extract hsb extract hsb color Reports a list of three values in the range 0 0 to 1 0 representing the hue saturation and brightness respectively of the given NetLogo color in the range 0 to 140 show extract hsb red gt 0 0 1 0 1 0 show extract hsb cyan gt 0 5 1 0 1 0 See also hsb rgb extract rgb extract rgb extract rgb color Reports a list of three values in the range 0 0 to 1 0 representing the levels of red green and blue respectively of the given NetLogo color in the range 0 to 140 show extract rgb red gt 1 0 0 0 0 0 show extract rgb cyan gt 0 0 1 0 1 0 See also rgb hsb extract hsb F file at end file at end Reports true when there are no more characters left to read in from the current file that was opened previously with file open Otherwise reports false file open myfile txt print file at end gt false Can still read in more characters print file read line gt This is the last line in file 172 Primitives Dictionary NetLogo 2 1 0 User Manual print file at end gt true We reached th nd of the file See also file open file
98. O RR eA RR RD See ll RR dota PR 169 EMP Snap 169 ENO A TE 169 CrOF MESSAGG ees A A Rad aa ada a dO 170 UV iii ies 170 AP A A A A Aia E 170 export graphics export interface export output export plot export all plots EXPORT WO acacia UR ORA RR UR UND A A RO PEN DR RA 171 Exiraci hsb ssa austin bass Meet A E EE Enio E aaa ARNS ao Said pes Dl E 172 EXA 172 T E RA 172 EEO EAE ass EE A E EEE AAS RE IN E A AO 172 EA ii A AE AAE RR DD E AA T 173 Tile close al aeinn na ad is 173 Tile deletes cata dd tido 173 IS ceo saca 173 A E A SR tees E 174 A SS a NE 174 OR 174 file read charact rs css ass i oA ES es ed DL EE ada rei RE Ra 175 fle ead a ee me RR E RR RR EE ET RR 175 OSO WI saree etn cre Min abet AS Barina Esta ae 176 MOD So rv pF eda apa E EO O hited emcees 176 TICE ENG iee ico aa CARA 176 Tien ss saite od a 177 SERA di 177 A vane da DC fea rete Td LATTEA e ba dn ETE ah a TE 177 ToreaCh ur AA AD A A AA AR do a a al a ee AR E 177 A E o Reaper nen NRO O AR RR DE RD RU ER RR 178 A Pe o O a N SS R 178 Ro cade god e oa aca gh aad teens DR ba ao e dc AR UA RR ne aan coed a al e a a oh 178 get date and time rear ea ae raae nene rena nene ease rea e rea aneaa ease rena nesaneano 178 Albal ia sims ps rasa A af E iia ieee 179 DD GARE o SA Si a DADO A DT a SD TD Ad de 179 hatch haich lt BREE Ds script estocar tte 179 aerate liate DAA EA T TO 179 A a RAR RR RR RR 180 ndeteksi A 180 histogram RIOD AS 180 AIStOGa MAIS ec
99. ROD DE UNDER DARE RED CR RR a 0 PR RD O RR O 135 Programming A dines ERR RO OR PODRE RR SRD RE O SKAER 135 Generale 2 muda Ena Den dol e DMA TANIA Dd EA UA E UA A PRATO o oe 136 Why is IE called NetLodo aiii a tas bird 136 What programming language was NetLogo written in2 nnee 136 How do cite NetLogo in an academic publication eee 137 How do cite a model from the Models Library in an academic publication 137 What license is NetLogo released under Are there are any legal restrictions on use redistribution etc 2 resetar tacar tree cano nana nana nnninanas 137 Is the source code to NetLogo available oooocccccnononococncnncnnonanonanncncnnnnnnnnnnnnnnnnnos 137 Do you offer any workshops or other training opportunities for NetLogo 137 What s the difference between StarLogo MacStarLogo StarLogoT and NetLogo 138 Has anyone built a model Ol sata ti ganas cais enim Dan pel dis Pd de 138 Are NetLogo models runs scientifically reproducible nnen 139 Are there any NetLogo textbo0kS cccooooooccccconoccconononnnonononcccnnnannnnnnnnncncnnnnnnnonenennnnnns 139 Is NetLogo available in a Spanish version German version your language here VOTSION OIC a E 139 Is NetLogo compiled or interpreted ccooonoconccccnnnnccononnnnnnnonnccnnnnnnnonnnnnnnnnnnnnnnnnnnnnnos 140 DOWMIOAGING sss ccc queira SA TE CERTAS oink O AE 140 The download form
100. Updates on the Clients 4 Clicking in the Graphics Window on Clients Text Area for Input and Display General HubNet Information If you are interested in more general information on what HubNet is or how to run HubNet activities you should refer to the HubNet Guide NetLogo Primitives In the model the modeler uses a set of commands to set the model up to use a type of HubNet extract data from and send data to the Navigator system or the computer clients Below you can find explanations of each of the NetLogo primitives used to do these tasks Setup In order to make a NetLogo model into a HubNet one it is necessary to establish a connection with the Navigator server in the case of Calculator HubNet and to start a HubNet server in the case of Computer HubNet For Calculator HubNet it is also necessary for NetLogo to tell the Navigator server what variables to send to NetLogo For all forms of HubNet it is also necessary to inform NetLogo what the client interface is All these tasks are done with the following primitives hubnet reset This starts up the HubNet system HubNet must be started to use any of the other HubNet primitives with the exception of hubnet set client interface HubNet remains running as long as this model is open it stops running when the model is closed or you quit NetLogo If this is the first time called for this NetLogo session and you are using Calculator HubNet the TI Navigator Login dialog appears p
101. Virtual Machine to to procedure name to procedure name input1 input Used to begin a command procedure 226 Primitives Dictionary NetLogo 2 1 0 User Manual to setup ca crt 500 end to circle radius ect 100 fd radius end to report to report procedure name to report procedure name input1 input2 Used to begin a reporter procedure The body of the procedure should use report to report a value for the procedure See report to report average a b report a b 2 end to report absolute value number ifelse number gt 0 report number report number end to report first turtle report who 0 reports true or false end towards towards nowrap towards agent towards nowrap agent Reports the heading from this agent to the given agent If the wrapped distance around the edges of the screen is shorter than the on screen distance towards will report the heading of the wrapped path towards nowrap never uses the wrapped path Note asking for the heading from an agent to itself or an agent on the same location will cause a runtime error towardsxy towardsxy nowrap Primitives Dictionary 221 NetLogo 2 1 0 User Manual towardsxy x y towardsxy nowrap x y x Reports the heading from the turtle or patch towards the point x y If the wrapped distance around the edges of the screen is shorter than the on screen distance towardsxy will report the
102. a random one of those patches will be selected If the patch is located directly to the north south east or west of the patch that the turtle is currently on a multiple of 90 degrees is reported However if the patch is located to the northeast northwest southeast or southwest of the patch that the turtle is currently on the direction the turtle would need to reach the nearest corner of that patch is reported See also_downhill4 uphill uphill4 168 Primitives Dictionary NetLogo 2 1 0 User Manual downhill4 downhill4 patch variable Reports the turtle heading between 0 and 359 degrees as a multiple of 90 degrees in the direction of the minimum value of the variable patch variable of the four patches to the north south east and west of the turtle If there are multiple patches that have the same least value a random patch from those patches will be selected See also downhill uphill uphill4 dx dy dx dy k Reports the x increment or y increment the amount by which the turtle s xcor or ycor would change if the turtle were to take one step forward in its current heading Note dx is simply the sine of the turtle s heading and dy is simply the cosine If this is the reverse of what you expected it s because in NetLogo a heading of O is north and 90 is east which is the reverse of how angles are usually defined in geometry Note In earlier versions of NetLogo these primitives were used in many situations whe
103. able St r6 The third input tells how you would like to save this data into this variable See below for values of valid commands It should be noted that for sending a variable the command defaults to 0 i e no command data type number 0 list of numbers 1 command number command explanation 0 No Command 1 Collate Lists into a matrix reals into a list append strings 2 Teacher Variable 4 Append Lists HubNet Authoring Guide 113 NetLogo 2 1 0 User Manual You should note that you must always save the information into the variable St r0 when you are sending or receiving information from the calculators You can t use any other variable For more information on writing the calculator program portion of a HubNet Activity please contact us Saving The data sent by calculators or NetLogo is saved in the order that the server receives the data Computer HubNet Information The following information is specific to Computer HubNet How To Make an Interface for a Client Open a new model in NetLogo Add any interface buttons sliders switches monitors plots choosers or text boxes that you want in the Interface Tab For buttons and monitors you only need to type a Display Name Any code you write in the Code or Reporter sections will be ignored The Display Name you give to the interface element is the tag that is returned by the hubnet message tag reporter in the NetLogo code For example if in the I
104. ad e If you re on Linux or another Unix you will need version 1 4 1 or higher of the Sun Java Runtime Environment It is available for download at_http www java com Check your browser s home page for information about installing the Java plugin If you think you have the right browser and plugin but it still doesn t work check your browser s preferences to make sure that Java is enabled Can make my model available as an applet while keeping the code secret No In order for the applet to operate the model file must be accessible also When you use Save as applet on the File menu the HTML page generated contains a link where the user can download the model file If you want you can remove that link Doing so will make it harder for the user to access the model file but not impossible FAQ Frequently Asked Questions 141 NetLogo 2 1 0 User Manual Can a model saved as an applet use import world and file open Yes but only to read files that are stored in the same directory on your web server as the HTML and model files Applets cannot read files on the user s computer only the web server Usage How do change how many patches there are A quick method is to use the three sets of black arrows in the upper left corner of the graphics window Another method is as follows Select the Graphics Window by dragging a rectangle around it with the mouse Click the Edit button in the Toolbar A dialog will appear in which
105. adcast graphics hubnet enter message hubnet exit message hubnet fetch message hubnet message hubnet message source hubnet message tag hubnet message waiting hubnet reset hubnet send hubnet send graphics hubnet set client interface Input output primitives beep clear output export graphics export interface export output export plot export all plots export world get date and time import world mouse down mouse xcor mouse ycor output print output show output type output write print read from string reset timer set current directory show timer type user choice user choose directory user choose file user choose new file user input user message user yes or no write File primitives fle at end file close file close all file delete file exists file open file print file read file read characters file read line file show file type file write user choose directory user choose file user choose new file List primitives but first but last empty filter first foreach fout is list item last length list lout map member modes n values position random n of random one of reduce remove remove duplicates remove item replace item reverse sentence shuffle sort sort by sublist values from String primitives position remove remove item read from string replace item reverse substring word Mathematical primitives log max mean median min mod modes pi precision random random exponential random float random gamma random int
106. ading is a multiple of 90 that is exactly north south east or west It s because the turtle might not be standing in the center of a patch It can stand near the edge or near the corner So for example suppose your turtle is close to the southwest corner of a patch and is facing northeast The length of the patch diagonal is 1 414 the square root of two so fd 1 will leave the turtle near the northeast corner of the same patch If you don t want to have to think about these issues one possibility is to write your model in such a way that your turtles always come to rest on patch centers patch ahead 1 is reporting the same patch my turtle is already standing on Why See previous answer It s the same issue This might not be the meaning of ahead you were expecting With patch ahead you must specify the distance ahead that you want to look If you want to know the next patch a turtle would cross into if it moved forward continuously that is possible to find out See Next Patch Example in the Code Examples section of the Models Library How do give my turtles vision The pat ch ahead primitive is useful for letting a turtle see what is directly in front of it If you want the turtle to look in another direction besides straight ahead try pat ch left and ahead and patch right and ahead Those primitives let the turtle look at specific points If you want the turtle to have a full cone of vision see Visio
107. age hubnet message sourc will contain the user name of the client that just logged on or off Also if hubnet message and hubnet message tag are used while hubnet enter message or hubnet exit message are true a Runtime Error will be given Sending data It is also possible to send data from NetLogo to the clients For Calculator HubNet NetLogo sends the data to the Navigator server and then the calculators can then access it For Computer HubNet NetLogo is able to send the data directly to the clients Note Since NetLogo must send the data to the Navigator server in Calculator HubNet it is not currently possible to send data from NetLogo directly to only an individual calculator However once the server has the data any connected calculator can grab it This is done using the calculators communication facilities rather than through NetLogo The primitives for sending data to the server are hubnet broadcast tag name value This broadcasts value from NetLogo to the variable in the case of Calculator HubNet or interface element in the case of Computer HubNet with the name tag name to all the clients hubnet broadcast graphics This broadcasts the current state of the Graphics Window in the NetLogo model to all the Computer HubNet Clients It does nothing for Calculator HubNet Note This is an experimental privitive and its behavior may change in a future version hubnet send list of strings tag name value hubnet send stri
108. agentset made by gathering together all the patches reported by reporter for each agent in agentset For each agent the reporter must report a patch agentset a single patch or nobody patches from turtles patch here 7 reports the set of all patches with turtles on them if there are many more patches than turtles this will 7 run much faster than patches with any turtles here See also turtles from patches own patches own var7 var2 This keyword like the globals breeds lt BREED gt own and turtles own keywords can only be used at the beginning of a program before any function definitions It defines the variables that all patches can use All patches will then have the given variables and be able to use them All patch variables can also be directly accessed by any turtle standing on the patch See also globals turtles own breeds lt BREED gt own Primitives Dictionary 203 NetLogo 2 1 0 User Manual pcolor pcolor Ent This is a built in patch variable It holds the color of the patch You can set this variable to make the patch change color All patch variables can be directly accessed by any turtle standing on the patch See also_color pen down pd pen up pu pen down pen up The turtle its pen down or up so that it draws leaves a trail when they move or doesn t Turtles draw by changing the color of the patches underneath them to their own color To change the color
109. al menus in Interface tab e new primitives Version 1 0 April 2002 e initial release after a series of betas 10 What s New System Requirements NetLogo is designed to run on almost any type of computer but some older or less powerful systems are not supported The exact requirements are summarized below If you have any trouble with NetLogo not working on your system we would like to offer assistance Please write bugs ccl northwestern edu System Requirements Application On all systems approximately 25MB of free hard drive space is required Windows e Windows NT 98 ME 2000 or XP e 64 MB RAM or probably more for NT 2000 XP You can choose to include a suitable Java Virtual Machine when downloading NetLogo If you want to use a JVM that you install separately yourself it must be version 1 4 1 or later 1 4 2 or later is preferred Windows 95 is no longer supported by the current version of NetLogo Windows 95 users should use NetLogo 1 3 instead We plan to continue to support NetLogo 1 3 Mac OS X e OS X version 10 2 6 or later 10 3 or later is recommended e 128 MB RAM 256 MB RAM recommended On OS X the Java Virtual Machine is supplied by Apple as part of the operating system OS X 10 3 includes an appropriate JVM OS X 10 2 users must install Java 1 4 1 Update 1 which is available from Apple through Software Update For OS X 10 3 users installing Java 1 4 2 Update 1 is recommended for improved appl
110. always immediately became visible So NetLogo waits until a certain amount of time has passed usually about 1 20 of a second and then redraws the world so that all the changes that have happened so far become visible This is sometimes called skipping frames by analogy with movies Skipping frames is good because each frame takes NetLogo time to draw so your model runs faster if NetLogo can skip some of them But skipping frames may be bad if the frames skipped contained information that you wanted to see Sometimes the way a model looks when frames are being skipped can be misleading Even when the checkbox is on for a button NetLogo will still skip frames while the code in the button is running Checking the box only ensures that NetLogo will draw a frame when the code is done In some contexts you may want to force NetLogo to draw a frame even in the middle of button code To do that use the display command that forces NetLogo to refresh the screen immediately In other contexts you may want to force NetLogo neverto draw a frame in the middle of button code only at the end To ensure that put no display at the beginning of the code and display at the end Note also that NetLogo will never draw on screen when inside a without interruption block Turtle and patch forever buttons There is a subtle difference between putting commands in a turtle or patch forever button and putting the same commands in an observer button that doe
111. ampleExtension java import org nlogo api DefaultClassManager import org nlogo api PrimitiveManager public class SampleExtension extends DefaultClassManager public void load PrimitiveManager primitiveManager primitiveManager addPrimitive first n integers new IntegerList addPrimitive tells NetLogo that our reporter exists and what its name is 3 Write a Manifest The extension must also include a manifest The manifest is a text file which tells NetLogo the name of the extension and the location of the ClassManager The manifest must contain three tags e Extension Name the name of the extension e Class Manager the fully qualified name of a class implementing org nlogo api ClassManager e Net Logo Version the version of NetLogo for which this JAR is intended If a version mismatch is detected when a JAR is imported a warning message will be issued and the user will have the opportunity to cancel If the user chooses to continue NetLogo will attempt to import the JAR anyway which of course may fail Here s a manifest for our example extension manifest txt Extension Name exampl Class Manager SampleExtension etLogo Version 2 0 2 122 Extensions Guide NetLogo 2 1 0 User Manual 4 Create a JAR To create an extension JAR first compile your classes as usual Make sure Net Logo jar from the NetLogo distribution is in your classpath For example javac classpath NetLogo
112. and a patch whose pxcor is 5 but the turtle must be considered to be in one patch or the other so the turtle is considered to be in the patch whose pxcor is 4 because we round towards the positive numbers show round 4 2 gt 4 show round 4 5 gt 5 show round 4 5 gt 4 Primitives Dictionary 215 NetLogo 2 1 0 User Manual run run string This agent interprets the given string as a sequence of one or more NetLogo commands and runs them The code runs in the agent s current context which means it has access to the values of local variables myself and so on See also runresult runresult runresult string This agent interpreis the given string as a NetLogo reporter and runs it reporting the result obtained The code runs in the agent s current context which means it has access to the values of local variables myself and so on See also run S scale color scale color color number range1 range Reports a shade of color proportional to number If range7 is less than range2 then the larger the number the lighter the shade of color But if range2 is less than range7 the color scaling is inverted If number is less than range1 then the darkest shade of color is chosen If number is greater than range2 then the lightest shade of color is chosen Note for color shade is irrelevant e g green and green 2 are equivalent and the same spectrum of colors will be used ask turtles set color
113. anging an individual turtle s shape later turtles don t have to be stuck with their breed s default shape create turtles 1 new turtle s shape is default create cats 1 7 new turtle s shape is default Primitives Dictionary 219 NetLogo 2 1 0 User Manual set default shape turtles circle create turtles 1 new turtle s shape is circle create cats 1 7 new turtle s shape is circle set default shape cats cat set default shape dogs dog create cats 1 7 new turtle s shape is cat ask cats set breed dogs 7 all cats become dogs and automatically Change their shape to dog See also_shape set histogram num bars set histogram num bars integer Set the current plot pen s plot interval so that given the current x range for the plot there would be integer number of bars drawn if the histogram from or histogram list commands were called See also histogram from set plot pen color set plot pen color number Sets the color of the current plot pen to number set plot pen interval set plot pen interval number Tells the current plot pen to move a distance of number in the x direction during each use of the plot command The plot pen interval also affects the behavior of the histogram from and histogram list commands set plot pen mode set plot pen mode number Sets the mode the current plot pen draws in to number The allowed plot pen modes are e 0 line mode the plot pen draws a line connecting two
114. any NetLogo values 194 Primitives Dictionary NetLogo 2 1 0 User Manual If the input is an empty list reports an empty list show modes 1 2 2 3 4 gt 2 show modes 1 2 2 3 3 4 gt 2 3 show modes 1 2 3 1 2 3 2 3 4 gt 1 2 3 show modes values from turtles pxcor 7 shows which columns of patches have the most turtles on them mouse down mouse down Reports true if the mouse button is down false otherwise Note If the mouse pointer is outside of the NetLogo graphics window mouse down will always report false mouse xcor mouse ycor mouse xcor mouse ycor Reports the x or y coordinate of the mouse in the Graphics Window The value is in terms of turtle coordinates so it is a floating point number If you want patch coordinates use round mouse xcor and round mouse ycor Note If the mouse is outside of the NetLogo graphics window reports the value from the last time it was inside to make the mouse draw in red 1f mouse down set pcolor of patch at mouse xcor mouse ycor red movie cancel movie cancel Cancels the current movie movie close movie cancel Stops the recording of the current movie Primitives Dictionary 195 NetLogo 2 1 0 User Manual movie grab graphics movie grab interface movie grab graphics movie grab interface Adds an image of the graphics window or the interface panel to the current movie 77 make a 20 step movi
115. aries over the course of each run You can watch your model run in the main NetLogo window If the Running Experiment window is in the way just move it to a different place on the screen The graphics window and plots will update as the model runs If you don t need to see them update then use the checkboxes in the Running Experiment window to turn the updating off This will make your model run faster so you ll get your final results sooner If you want to stop your experiment before it s finished press the Abort button But note that you ll lose any results that were generated up to that point When all the runs have finished the experiment is complete BehaviorSpace will then prompt you for the name of a file to save the results to The default name is behaviors csv You can change this to any name you want but don t leave off the csv part that indicates the file is a Comma Separated Values CSV file This is a plain text data format that is readable by any text editor as well as by most popular spreadsheet and database programs If you open the results file in a program that displays it in tabular format you ll see that each individual model run occupies a single column At the top of the column you ll see summary information about the run such as what the settings were for that run and how many ticks the run lasted If you used a numeric reporter to measure your runs then you ll see the min max and mean values of that r
116. at if you use the Edit or Delete buttons on the Interface Toolbar only the key item is affected The key item is indicated by a darker gray border than the other items Unselecting To unselect all interface elements click the mouse on the white background of the Interface tab To unselect an individual element control click Macintosh or right click other systems the element and choose Unselect from the popup menu Editing To change the characteristics of an interface element select the element then press the Edit button on the Interface Toolbar You may also double click the element once it is selected A third way to edit an element is to control click Macintosh or right click other systems it and choose Edit ffom the popup menu If you use this last method it is not necessary to select the element first Moving Select the interface element then drag it with your mouse to its new location If you hold down the shift key while dragging the element will move only straight up and down or straight left and right Resizing Select the interface element then drag the black handles in the selection border Deleting Select the element or elements you want to delete then press the Delete button on the Interface Toolbar You may also delete an element by control clicking Macintosh or right clicking other systems it and choosing Delete from the popup menu If you use this latter method it is not necessary to select the
117. at you expected Your Graphics Window should have a yellow background with a line of brown cars in the middle of the window The NetLogo world is a two dimensional world that is made up of turiles patches and an observer The patches create the ground in which the turtles can move around on and the observer is a being that oversee everything that is going on in the world For a detailed description and specifics about this world refer to the NetLogo Programming Guide In the Command Center we have the ability to give the observer a command the turtles a command or the patches a command We choose between these options by using the popup menu located in the bottom left corner of the Command Center You can also use the tab key on your keyboard to cycle through the different options e Inthe Command Center click on the O gt in the bottom left corner Command Center Cleai O gt ask patches set pcolor yellow O gt ask turtles set color brown o Observer Patches e Choose Turtles from the popup menu e Type set color pink and press return e Press the tab key until you see P gt in the bottom left corner e Type set pcolor white and press return What does the Graphics Window look like now Tutorial 2 Commands 33 NetLogo 2 1 0 User Manual Do you notice any differences between these two commands and the observer commands from earlier The observer oversees the world and there
118. atedly add or subtract 140 from the number until it is in the O to 140 range For example 25 is orange so 165 305 445 and so on are orange too and so are 115 255 395 etc This calculation is done automatically whenever you set the turtle variable color or the patch variable pcolor Should you need to Programming Guide 71 NetLogo 2 1 0 User Manual perform this calculation in some other context use the wrap color primitive If you want a color that s not on the chart more can be found between the integers For example 26 5 is a shade of orange halfway between 26 and 27 This doesn t mean you can make any color in NetLogo the NetLogo color space is only a subset of all possible colors A fixed set of discrete hues is available and you can either decrease the brightness darken or decrease the saturation lighten of those hues to get your desired color but you cannot decrease both the brightness and saturation There are a few primitives that are helpful for working with color shades The scale color primitive is useful for converting numeric data into colors And shade of will tell you if two colors are shades of the same basic hue For example snade of orange 27 is true because 27 is a lighter shade of orange Code Example Scale color Example shows you how to use the scale color reporter For many models the NetLogo color system is a convenient way of expressing colors But sometimes you d like to be able to s
119. ation Mirror graph l irre The client list on the right displays the names of clients that are currently connected to you activity To remove a participant from the activity select their name in the list and press the Kick button To launch your own HubNet client press the Launch button The lower part of the Control Center displays messages when a participant joins or leaves the activity To broadcast a message to all the participants click on the field at the bottom type your message and press Broadcast Message Troubleshooting started a HubNet activity but when participants open a HubNet Client my activity isn t listed On some networks the HubNet Client cannot automatically detect a HubNet server Tell your participants to manually enter the server name and port of your HubNet server which appear in the HubNet Control Center Note The technical details on this are as follows In order for the client to detect the server multicast routing must be available between them Not all networks support multicast routing In particular networks that use the IPsec protocol typically do not support multicast The IPsec protocol is used on many virtual private networks VPN s When a participant tries to connect to my activity nothing happens after they click Enter If your computer or network has a firewall it may be impeding the HubNet server from communicating Make sure that your computer and network are not blockin
120. ation random exponential reports an exponentially distributed random floating point number random gamma reports a gamma distributed random floating point number as controlled by the floating point alpha and lambda parameters Both inputs must be greater than zero Note for results with a given mean and variance use inputs as follows alpha mean mean variance lambda 1 variance mean random normal reports a normally distributed random floating point number random poisson reports a Poisson distributed random integer show random exponential 2 7 prints an exponentially distributed random floating 7 point number with a mean of 2 show random normal 10 1 5 2 7 prints a normally distributed random floating point 7 number with a mean of 10 1 and a standard deviation EE CE a show random poisson 3 4 7 prints a Poisson distributed random integer with a j mean of 3 4 random int or float random int or float number NOTE This primitive should not be used in new models It is included only for backwards compatibility with NetLogo 1 x It will not necessarily continue to be supported in future versions of NetLogo When a NetLogo 1 x model is read into NetLogo 2 0 or higher all uses of the random primitive are automatically converted to random int or float instead because the meaning of random has changed It used to sometimes return an integer and sometimes a floating point number now it always returns an i
121. ations please use Wilensky U 1999 NetLogo http ccl northwestern edu netlogo Center for Connected Learning and Computer Based Modeling Northwestern University Evanston IL The project gratefully acknowledges the support of the National Science Foundation REPP and ROLE Programs grant numbers REC 9814682 and REC 0126227 For random number generation NetLogo uses the MersenneTwisterFast class by Sean Luke The copyright for that code is as follows Copyright c 2003 by Sean Luke Portions copyright c 1993 by Michael Lecuyer All rights reserved Redistribution and use in source and binary forms with or without modification are permitted provided that the following conditions are met e Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer e Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation and or other materials provided with the distribution e Neither the name of the copyright owners their employers nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
122. aurants Minority Game Herbivore Carnivore Prisoner s Dilemma Public Good Investments the server discovery feature is no longer considered experimental so it is on by default on both server and client on the server you can shut it off at the time you open an activity support for multiple simultaneous HubNet servers on a single computer allows running several activities at once by choosing different port numbers for the different activities redesigned HubNet client interface redesigned Control Center interface including improved logging Local button in Control Center automatically launches local client connects to current activity many client interfaces have action keys now 4 fixed bug where turtles were sometimes layered differently in the graphics window on clients than on the server 4 fixed bug where old activities remained on client s server list Version 2 0 2 August 6 2004 e new experimental extensions API lets users write new commands and reporters in Java e 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 the extensions API e new controlling API lets users control NetLogo from external Java code such as for automating multiple runs e o gt What s New 9 NetLogo 2 1 0 User Manual Version 2 0 December 10 2003 e full support for Mac OS X improved Linux support e minimum Java version is now 1 4 1 Windows 95 MacOS
123. ay and display primitives or by toggling the display on off switch in the Graphics Window Control Strip A second way of sending the clients the Graphics Window is to use the hubnet broadcast graphics and hubnet send graphics primitives hubnet broadcast graphics and hubnet send graphics both send the entire Graphics Window to the clients instead of just the patches that need to be redrawn This makes them less efficient but for some models this is feature is necessary To send the Graphics Window to the clients using this scheme you must use the following NetLogo code HubNet Authoring Guide 115 NetLogo 2 1 0 User Manual hubnet broadcast graphics to send to all the logged in clients To just send the Graphics Window to a subset of all the clients use hubnet send graphics user name list where user name listis either a single string or a list of strings of the user names of clients that you want to send it to It should be mentioned that if there is no Graphics Window in the clients or if the Mirror Graphics Window on Clients checkbox in the HubNet Control Center is not checked then no graphics messages are sent to the clients NOTE Since hubnet broadcast graphics and hubnet send graphics are experimenta primitives their behaviors may change in a future release Plot Updates on the Clients Plots on the clients are updated in the following way If a change occurs on a NetLogo plot and a plot with the exact same name ex
124. ber in base base show log 64 2 gt 6 See also In loop loop commands Runs the list of commands forever or until the current procedure exits through use of the stop command or the report command Note In most circumstances you should use a forever button in order to repeat something forever The advantage of using a forever button is that the user can click the button to stop the loop Primitives Dictionary 191 NetLogo 2 1 0 User Manual Iput Iput value list Adds value to the end of a list and reports the new list 7 suppose mylist is 2 7 10 Bob set mylist lput 42 mylist 7 mylist now is 2 7 10 Bob 42 map map reporter list map reporter list list2 With a single list the given reporter is run for each item in the list and a list of the results is collected and reported In reporter use to refer to the current item of list show map round 1 1 2 2 2 7 gt 1 2 3 show map 1 2 3 gt 1 4 9 With multiple lists the given reporter is run for each group of items from each list So it is run once for the first items once for the second items and so on All the lists must be the same length In reporter use 1 through_ n to refer to the current item of each list Some examples make this clearer show map 1 2 1 2 3 2 4 6 gt 3 6 9 show map 1 2 3 1 2 3 2 4 6 3 5 9 gt true false true See also foreach max
125. bles from an external file named by the given string The file should be in the format used by the export world primitive 186 Primitives Dictionary NetLogo 2 1 0 User Manual Note that the functionality of this primitive is also directly available from NetLogo s File menu When using import world to avoid errors perform these steps in the following order 1 Open the model from which you created the export file 2 Press the Setup button to get the model in a state from which it can be run 3 Import the file 4 If you want press Go button to continue running the model from the point where it left off If you wish to import a file from a location other than the model s location you may include the full path to the file you wish to import See export world for an example in radius in radius nowrap agentset in radius number agentset in radius nowrap number mt XE Reports an agentset that includes only those agents from the original agentset whose distance from the caller is less than or equal to number The distance to or a from a patch is measured from the center of the patch in radius allows its distance measurements to wrap around the edge of the screen in radius nowrap does not ask turtles ask patches in radius 3 set pcolor red each turtle makes a red splotch around itself inspect inspect agent Opens an agent monitor for the given agent turtle or patch inspect patch 2 4 an agent
126. bset of turtles or a subset of patches and ask them to do something This involves a concept called agentsets The next section explains this concept in detail Agentsets An agentset is exactly what its name implies a set of agents An agentset can contain either turtles or patches but not both at once You ve seen the turtles primitive which reports the agentset of all turtles and the patches primitive which reports the agentset of all patches But what s powerful about the agentset concept is that you can construct agentsets that contain only some turtles or some patches For example all the red turtles or the patches with pxcor evenly divisible by five or the turtles in the first quadrant that are on a green patch These agentsets can then be used by ask or by various reporters that take agentsets as inputs Programming Guide 73 NetLogo 2 1 0 User Manual One way is to use turtles here or turtles at to make an agentset containing only the turtles on my patch or only the turtles on some other particular patch There s also turtles on SO you can get the set of turtles standing on a given patch or set of patches or the set of turtles standing on the same patch as a given turtle or set of turtles Here are some more examples of how to make agentsets 7 all red turtles turtles with color red 7 all red turtles on my patch turtles here with color red 7 patches on right side of screen patches with pxcor gt
127. c License The text of that license is included in the docs folder which accompanies the NetLogo download and is also available from_http www gnu org copyleft lesser html For movie making NetLogo uses code adapted from sim util media MovieEncoder java by Sean Luke distributed under the MASON Open Source License The copyright for that code is as follows This software is Copyright 2003 by Sean Luke Portions Copyright 2003 by Gabriel Catalin Balan Liviu Panait Sean Paus and Dan Kuebrich All Rights Reserved Developed in Conjunction with the George Mason University Center for Social Complexity By using the source code binary code files or related data included in this distribution you agree to the following terms of usage for this software distribution All but a few source code files in this distribution fall under this license the exceptions contain open source licenses embedded in the source code files themselves In this license the Authors means the Copyright Holders listed above and the license itself is Copyright 2003 by Sean Luke The Authors hereby grant you a world wide royalty free non exclusive license subject to third party intellectual property claims to use reproduce modify display perform sublicense and distribute all or any portion of the source code or binary form of this software or related data with or without modifications or as part of a larger work and under patents now or hereafter owned or contr
128. can rewrite it as follows patches own elevation to setup ca setup patches setup turtles end The line at the top patches own elevation declares that we have a variable for the patches called elevation Our setup patches procedure that we haven t defined yet will then use this variable We also still need to define setup turtles as well but for now here s how to define setup patches to setup patches ask patches set elevation random 10000 diffuse elevation 1 ask patches set pcolor scale color green elevation 1000 9000 end The setup patches procedure sets the elevation and color of every patch First each patch picks a random integer between 0 and 9999 and sets its elevation variable to that number Tutorial 3 Procedures 45 NetLogo 2 1 0 User Manual We then use an observer primitive diffuse that smooths out the distribution of this variable over the neighboring patches Remember that primitives are built in procedures in NetLogo as opposed to procedures that you define Scale color is a reporter that uses the different values of elevation to assign colors to the patches In this case we re assigning different shades of green to all the patches Don t worry about the numbers given to diffuse and scale color just yet The larger elevation is the lighter the shade of green Low values of elevation will result in darker shades The only part remaining in our new setup that is still undefined is se
129. checkbox is selected the value that you see above the landscape is not the fitness of the run but the value of the chosen statistic For instance the minimum value of the run is shown when minimum value is selected in the point statistic type menu This value is not necessarily the fitness of the run however since the goodness of a particular value changes when you make a new selection in the point statistic value menu e The grid has a maximum height and width which is reached when there are more than 5 squares in either direction and cannot be resized e Squares turn gray when there is insufficient information to construct a grid this happens when either axis has not been assigned a slider one axis is sufficient if a model only has one slider Set of sliders components held constant These sliders consist of all those not present as axes of the fitness landscape Since all the model runs represented on the landscape have the same value for these sliders namely the one currently selected on the slider components they are considered held constant for the landscape By changing the value of a single one of these sliders BehaviorSpace Guide 101 NetLogo 2 1 0 User Manual the whole landscape changes because it now represents a whole new set of runs If you changed a slider from 10 to 12 say then all the runs in which that slider had the value 10 are replaced by those in which it had the value 12 e Changing the value of these slider
130. contents of the graphics window Of the interface tab 144 Can make a movie of My Model occccononococcccccccnononononccncnnnnccconnnnnonnnnnncnnnnnnnnonnnnnnnnnnns 144 Does NetLogo take advantage of multiple processors 2 145 Can use screen edge x or screen edge y etc as the minimum or maximum of FE WAI Te EAEE a be a RG AN Na Da T de Ra E E me ete 145 Can change the choices in a chooser on the fly2 eee 145 Can divide the code for my model up into several files 2 145 NetLogo 2 1 0 User Manual Table of Contents NetLogo Sound Extension PEO AMINO DSO IR DDR RO Ai 145 How is the NetLogo language different from the StarLogoT language How do convert my StarLogoT model to NetLogo iene 145 The NetLogo world is a torus that is the edges of the screen are connected to each other so turtles and patches wrap around Can use a different world topology bounded infinite plane Sphere etc 2 146 How do take the negative Of a NUMDEN cssccccccccessseeeeeeeeeeeeeesseeeeeeeeeeeeeesssentaaaees 147 My turtle moved forward 1 but it s still on the same patch Why cccccnnccccccccccncccnnnnnnos 147 patch ahead 1 is reporting the same patch my turtle is already standing on Why 148 How do give my turtles ViSION cccccccccccessssseneeeeeeeeesseeeeneeeeeeeeeessesneseeeeeeeeessessnaaees 148 Does NetLogo have a command like StarLogo s grab command
131. ct but see the Image Import Example model e camera brightness camera click camera init camera set brighi enetlogo directory project directory project name project pa save project 14 K tness thname nown Issues Contacting Us Feedback from users is very valuable to us in designing and improving NetLogo We d like to hear from you Web Site Our web site at ccl northwestern edu includes our mailing address and phone number It also has information about our staff and our various research activities Feedback Questions Etc If you have general feedback suggestions or questions write to feedback ccl northwestern edu If you need help with your model you should also consider posting to the NetLogo users group at http groups yahoo com group netlogo users Reporting Bugs If you would like to report a bug that you find in NetLogo write to bugs ccl northwestern edu When submitting a bug report please try to include as much of the following information as possible e A complete description of the problem and how it occurred e The NetLogo model or code you are having trouble with If possible attach a complete model e Your system information NetLogo version OS version Java version and so on This information is available from NetLogo s About NetLogo menu item In saved applets the same information is available by control clicking Mac or right clicking the white background of the applet e Any er
132. cting and manipulating agents on the fly Tutorial 2 Commands is an introduction to using commands in the Command Center Let s take a closer look at the design of the Command Center 62 Interface Guide NetLogo 2 1 0 User Manual Command Center Ta T gt set color red P gt set pcolor white O gt ask turtle 10 set color blue O gt ask turtle 1 set color blue O gt crt 19 o v You will notice there is a large display box an agent popup menu O gt a clear button a button with the double headed arrow to relocate the command center to the right side of the window and the history popup menu in the lower right with the little black triangle The top large display box temporarily stores all of the commands that are entered into the Command Center This area is strictly for reference commands cannot be accessed or changed from this box To clear this box click clear in the top right corner To toggle between a vertical and horizantal split between the Command Center and the Graphics Window click the switch button The smaller text box below the large box is where commands are entered On the left of this box is the agent popup menu and on the right is the history popup menu The agent popup menu allows you to select either observer turtles or patches This is an easy way to assign an agent to a command and it is the same as writing ask turtles Note a quicker way to change between observer t
133. currently hidden i e invisible You can set this variable to make a turtle disappear or reappear See also_hideturtle showturtle Example set hidden not hidden 5 if turtle was showing it hides and if it was hiding it reappears hideturtle ht hideturtle The turtle makes itself invisible Note This command is equivalent to setting the turtle variable hidden to true See also_showturtle histogram from histogram from agentset reporter Draws a histogram showing the frequency distribution of the values reported when all agents in the agentset run the given reporter The heights of the bars in the histogram represent the numbers of agents with values in those ranges Before the histogram is drawn first any previous points drawn by the current plot pen are removed The reporter should report a numeric value Any non numeric values reported are ignored 180 Primitives Dictionary NetLogo 2 1 0 User Manual The histogram is drawn on the current plot using the current plot pen and pen color Use set plot x range to control the range of values to be histogrammed and set the pen interval either directly with set plot pen interval or indirectly via set histogram num bars to control how many bars that range is split up into Be sure that if you want the histogram drawn with bars that the current pen is in bar mode mode 1 As of NetLogo 2 0 2 for histogramming purposes the plot s X range is not consider
134. d StarLogoT primitives sir eeeeentaaarereeaeeananeaaareresaana 14 Contacting US assa aliada a 15 Web Bei PARAR DRA has A E cede dente IA 15 Feedback Questions Elimina feds 15 REDOMINGIB UGS iii A Ta A ED PU Ra 15 Sample Model Pary a eaaa eraann anann aana ea as 17 Ata Party rsiic scicutssaedsiiteoieoa E 17 Challeng sect coa 19 Thinking With Models iii cdo did rosada en fa anos 20 WES dd alta cmo cata 20 Tutorial 1 Model ui cananea nina ida ando da nicho nds 21 Sample Model Wolf Sheep Predati0N ccccccooooooccccccncnoconononoccnnnonccnnnnnnnonnnnncccnnnnnnnonnnnnnnnns 21 Controlling the Model BU ONS cccooooooocccnccccnononoonncncnnnnonnnononnnnnnnnncccnnnnnnnnnnnnccncnnnnrnnnnnnnnnnn 22 Adjusting Settings Sliders and SWitCHeS cccoonnnononccccononccnnnnannnonnnnccncnnnnnnonnnncnnnnnnnnnnnnnnnns 23 Gathering Information Plots and MonitO Side dais 25 A me STAR Sad oat a eel al ale fofa cats a tetas et Mt 25 MONNOrS saca ote cocoicns alt te SS PRE aa aeb A ot toc 25 NetLogo 2 1 0 User Manual Table of Contents Tutorial 1 Models Controlling the Graphics WiWWGOW isaeies ioe ved ahaha ja DES la Ta a 26 The Models Library eeina At aes sare 29 Sample MOBIS a E A NE DEE ckaNa tea 30 CurticulariModelS iza a a ea dual eee pescando 30 COCs Example si 30 HubNet Calculator 8 Computer ActIV tIOS cooooooocnccncccnanonononncnnccnnnnnnnrnnoncnnnnnonannnnnnos 30 Whats NE e e a ae cass gua se
135. d out how rich the richest turtle is you could say show max values from turtles sum assets e Use turtles from and patches from reporters to make new agentsets by gathering together the results reported by other agents 74 Programming Guide NetLogo 2 1 0 User Manual This only scratches the surface see the Models Library for many more examples and consult the Primitives Guide and Primitives Dictionary for more information about all of the agentset primitives More examples of using agentsets are provided in the individual entries for these primitives in the NetLogo Dictionary In developing familiarity with programming in NetLogo it is important to begin to think of compound commands in terms of how each element passes information to the next one Agentsets are an important part of this conceptual scheme and provide the NetLogo developer with a lot of power and flexibility as well as being more similar to natural language Code Example Ask Agentset Example Breeds NetLogo allows you to define different breeds of turtles Once you have defined breeds you can go on and make the different breeds behave differently For example you could have breeds called sheep and wolves and have the wolves try to eat the sheep You define breeds using the breeds keyword at the top of your model before any procedures breeds wolves sheep The order in which breeds are declared is also the order in which they are drawn in the graphics
136. das 104 Starting araceli 104 HubNet Control GOnter Luia ardid 104 Tro bl sho iNO rre 105 KNOW BAES a AAE A E E E A E E AEEA E 106 Galculator HUDN OT poi AA haben acc Ai nda 106 ACUM e E Sd ce Doca e 106 Requir mentS sesuais dd da A dias 107 SANO AAC id 107 More Informations iii aaa eae 107 Teacher workShODS ssa sssasiceso constam ea LE Iara das data ada 107 HubNet Authoring AMA A Aa ias 107 Go tina MND 5 3 leads is separa meadd ane ad E e E pa 108 NetLogo 2 1 0 User Manual Table of Contents H bNetA thoring QUIE citada ii AR A A esmas nanda 109 General HubNet INfOrMAtiON oocccccnoncnncnnnoccncnnnnconononononononononononnnanonn non acc no nana ca non naaa na nnnnnanas 109 NetLogo PrMIIVES tr rate ERRE e a A A den diretas ad 109 A A A A A AT EMR E OS O 109 Dala exiracHON A EAA 110 S nding data situadas aria 111 Examples unitarias asada da ts da 112 Calculator HubNet Information reter teen nano nana rannnnnncanannancanas 113 O 114 Computer HubNet Information cararara nose Ecoganuiias uso pati Paiao danada nanne 114 How To Make an Interface for a Client rear eeererr tara 114 Graphics Window Updates on the ClientS cccccononocooccocononccnnonannnnonnccncnnnnnnnnncnnnnnnnns 115 Plot Updates om tne Clica ios 116 Clicking in the Graphics Window on ClientS ccccononononcccnononccnnnnnnnoncnnnccnonananononcnnnnnnnn 116 Text Area for Input and Dispara A ED a pa 117 Extensions GU E ii
137. default shape Example ask turtles set shape wolf 7 assumes you have made a wolf 7 Shape in NetLogo s Shapes Editor Primitives Dictionary 221 NetLogo 2 1 0 User Manual See also set default shape shapes shapes shapes Reports a list of strings containing all of the turtle shapes in the model New shapes can be created or imported from the shapes library or from other models in the Shapes Editor show shapes gt default airplane arrow box bug ask turtles set shape random one of shapes show show value Prints value in the Command Center preceded by the calling agent and followed by a carriage return The calling agent is included to help you keep track of what agents are producing which lines of output Also all strings have their quotes included similar to_write See also print type and write See also output show showturtle st showturtle The turtle becomes visible again Note This command is equivalent to setting the turtle variable hidden to false See also hideturile shuffle shuffle list Reports a new list containing the same items as the input list but in randomized order show shuffle gt 5241 3 show shuffle gt 13524 123 4 5 123 4 5 222 Primitives Dictionary NetLogo 2 1 0 User Manual sin sin number Reports the sine of the given angle Assumes angle is given in degrees show sin 270 gt 1 0 size size k This
138. der at parties why do groups tend to form that are mostly men or mostly women Let s use NetLogo to explore this question What to do 1 Start NetLogo 2 Choose Models Library from the File menu NetLogo MEM Edit Tools Zoon 8 4 New N tl 3 Open O Models Library 3M t mi tet it B Deleg Save 36S Save AS Save As Applet Print dE P 3 Open the Social Science folder 4 Click on the model called Party Sample Model Party 17 NetLogo 2 1 0 User Manual 5 Press the open button 6 Wait for the model to finish loading 7 optional Make the NetLogo window bigger so you can see everything 8 Press the setup button In the Graphics Window you will see pink and blue lines with numbers 10 15 13 12 18 14 15 18 17 These lines represent mingling groups at a party Men are represented in blue women in pink The numbers are the total number of people in each group Do all the groups have about the same number of people Do all the groups have about the same number of each sex Let s say you are having a party and invited 150 people You are wondering how people will gather together Suppose 10 groups form at the party How do you think they will group Instead of asking 150 of your closest friends to gather and randomly group let s have the computer simulate this situation for us What to do 1 Press the go button Pressing go again will stop the model manually 2
139. dure the variable will exist throughout the procedure If you use it inside a set of square brackets for example inside an ask then it will exist only inside those brackets 70 Programming Guide NetLogo 2 1 0 User Manual to swap colors turtlel turtle2 let temp color of turtlel set color of turtlel color of turtle2 set color of turtle2 temp end NetLogo represents colors as numbers in the range 0 to 140 with the exception of 140 itself Below is a chart showing the range of colors you can use in NetLogo black 0 white 9 9999 gray 5 8 9 9 9999 red 15 18 19 19 9999 orange 25 28 29 29 9999 brown 35 38 39 39 9999 yellow 45 48 49 49 9999 green 55 58 59 59 9999 lime 65 68 69 69 9999 turquoise 75 78 79 79 9999 cyan 85 7 88 89 89 9999 sky 95 98 99 99 9999 blue 105 100 02 108 109 109 9999 violet 115 110 2 3 118 119 119 9999 magenta 125 pa 22 3 128 129 129 9999 pink 135 138 139 139 9999 The chart shows that e Some of the colors have names You can use these names in your code e Every named color except black and white has a number ending in 5 e On either side of each named color are darker and lighter shades of the color e 0 10 20 and so on are all black 9 9999 19 9999 29 9999 and so on are all white Code Example The color chart was made in NetLogo with the Color Chart Example model Note If you use a number outside the 0 to 140 range NetLogo will repe
140. e Similarly a chooser enforces that its value is a valid choice and a slider enforces that its value is permitted by its minimum maximum and increment When running headless none of these checks occur We plan to lift these restrictions in a future version of NetLogo The NetLogo API Specification contains further details Other Options When your program controls NetLogo using the App class the entire NetLogo application is present including tabs menubar and so forth This arrangement is suitable for controlling or scripting a NetLogo model but not ideal for embedding a NetLogo model in a larger application We also have a separate similar API which allows embedding only parts of NetLogo such as only the tabs not the whole window or only the contents of the Interface tab At present this additional API is not documented If you are interested in using it please contact us at feedback ccl northwestern edu Conclusion Don t forget to consult the NetLogo API Specification for full details on these classes and methods As mentioned before the controlling facility is considered experimental This initial API doesn t necessarily include everything you might expect Some facilities exist but are not yet documented So if you don t see the capability you want contact us we may be able to help you do you what you want Please do not hesitate to contact us at feedback ccl northwestern edu with questions as we may be able to find
141. e reports a random integer less than or equal to O but strictly greater than number If number is zero the result is always 0 as well Note In versions of NetLogo prior to version 2 0 this primitive reported a floating point number if given a floating point input This is no longer the case If you want a floating point answer you must now use random float instead show random 3 Pp prints 0y ly or 2 show random 3 7 prints 0 1 or 2 show random 3 0 7 prints 0 1 or 2 show random 3 5 o prints O Mo Zi OS See also random float random float random float number If number is positive reports a random floating point number greater than or equal to 0 0 but strictly less than number If number is negative reports a random floating point number less than or equal to 0 0 but strictly greater than number If number is zero the result is always 0 0 show random float 3 7 prints a number at least 0 0 but less than 3 0 for example 2 589444906014774 show random float 2 5 7 prints a number at least 0 0 but less than 2 5 7 for example 1 0897423196760796 random exponential random gamma random normal random poisson 208 Primitives Dictionary NetLogo 2 1 0 User Manual random exponential mean random gamma alpha lambda random normal mean standard deviation random poisson mean Reports an accordingly distributed random number with the mean and in the case of the normal distribution the standard devi
142. e data For example if you keep the number of people at the party constant but gradually increase the tolerance level more mixed groups appear How high does the tolerance value have to be before you get mixed groups What percent tolerance tends to produce what percentage of mixing Thinking With Models Using NetLogo to model situations like this party scenario allows you to experiment with a system in a rapid and flexible way that would be difficult to do in a real world situation Modeling also gives you the opportunity to observe a situation or circumstance with less prejudice as you can examine the underlying dynamics of a situation You may find that as you model more and more many of your preconceived ideas about various phenomena will be challenged For example a surprising result of the Party model is that even if tolerance is relatively high a great deal of separation between the sexes occurs This is a classic example of an emergent phenomenon where a group pattern results from the interaction of many individuals This idea of emergent phenomena can be applied to almost any subject What other emergent phenomena can you think of To see more examples and gain a deeper understanding of this concept and how NetLogo helps learners explore it you may wish to explore NetLogo s Models Library It contains models that demonstrate these ideas in systems of all kinds For a longer discussion of emergence and how NetLogo he
143. e left an agentset usually turtles or patches On the right a reporter Reports a new agentset containing all agents reporting the maximum value of the given reporter show count patches with max pxcor 7 prints the number of patches on the right edge See also max one of with min agentset with min reporter Takes two inputs on the left an agentset usually turtles or patches On the right a reporter Reports a new agentset containing only those agents that have the minimum value of the given reporter show count patches with min pycor 7 prints the number of patches on the bottom edge See also min one of Primitives Dictionary 235 NetLogo 2 1 0 User Manual without interruption without interruption commands The agent runs all the commands in the block without allowing other agents to interrupt That is other agents are put on hold and do not execute any commands until the commands in the block are finished CEE 5 ask turtles without interruption type 1 fd 1 type 2 gt 1212121212 77 because each turtle will output 1 and move 7 then output 2 however ask turtles type 1 fd 1 type 2 gt 1111122222 77 because each turtle will output 1 and move 7 then output 2 word word value value2 word value valuen Concatenates the inputs together and reports the result as a string show word tur tle gt turtle word a 6 gt a6 set directo
144. e of the graphics window setup movie start out mov repeat 20 movie grab graphics go movie close movie set frame rate movie set frame rate frame rate Sets the frame rate of the current movie Must be called after movie start but before movie grab area See also movie status movie set frame rate movie start movie start filename Creates a new movie filename specifies a new QuickTime file where the movie will be saved so it should end with mov See also movie grab graphics movie grab interface movie cancel movie status movie set frame rate movie close movie status movie status Reports a string describing the current movie print movie status gt No movie movie start print movie status gt 0 frames Framerate 15 0 movie grab graphics print movie status 1 frames Framerate 15 0 Size 315x315 196 Primitives Dictionary NetLogo 2 1 0 User Manual myself myself isd self and myself are very different self is simple it means me myself means the turtle or patch who asked me to do what I m doing right now When an agent has been asked to run some code using myself in that code reports the agent turtle or patch that did the asking myself is most often used in conjunction with of to read or set variables in the asking agent myself can be used within blocks of code not just in the ask command but also hatch sprout values from value from turtles fro
145. e output gets saved to a file They include file print file show file type and file write Note that you can never overwrite data In other words if you attempt to write to a file with existing data all new data will be appended to the end of the file If you want to overwrite a file use ile delete to delete it then open it for writing When you are finished using a file you can use the command ile close to end your session with the file If you wish to remove the file afterwards use the primitive i le delete to delete it To close multiple opened files one needs to first select the file by using file open before closing it 7 Open 3 files file open myfilel txt file open myfile2 txt file open myfile3 txt Programming Guide 89 NetLogo 2 1 0 User Manual Now close the 3 files file close file open myfile2 txt file close file open myfilel txt file close Or if you know you just want to close every file you can use file close all Two primitives worth noting are file write and file read These primitives are designed to easily save and retrieve NetLogo constants such as numbers lists booleans and strings file write will always output the variable in such a manner that file read will be able to interpret it correctly file open myfile txt Opening file for writing ask turtles file write xcor file write ycor file close file open myfile txt Opening file for reading ask turtles set
146. e red car in a stream of blue cars The stream of cars are all moving in the same direction Every so often they pile up and stop moving This is modeling how traffic jams can form without any cause such as an accident a broken bridge or an overturned truck No centralized cause is needed for a traffic jam to form You may alter the settings and observe a few runs to get a full understanding of the model As you are using the Traffic Basic model have you noticed any additions you would like to make to the model Looking at the Traffic Basic model you may notice the environment is fairly simple a black background with a white street and number of blue cars and one red car Changes that could be made to the model include changing the color and shape of the cars adding a house or street light creating a stop light or even creating another lane of traffic Some of these suggested changes are cosmetic and would enhance the look of the model while the others are more behavioral We will be focusing more on the simpler or cosmetic changes throughout most of this tutorial Tutorial 3 will go into greater detail about behavioral changes which require changing the Procedures tab To make these simple changes we will be using the Command Center The Command Center The Command Center is located in the Interface Tab and allows you to enter commands or directions to the model Commands are instructions you can give to NetLogo s agents tur
147. e run by only some turtles or some patches you could make an observer button and then have the observer use the ask command to ask only some of the turtles or patches to do something When you edit a button you have the option to assign an action key This makes that key on the keyboard behave just like a button press If the button is a forever button it will stay down until the key is pressed again or the button is clicked Action keys are particularly useful for games or any model where rapid triggering of buttons is needed Buttons and display updates When you edit a button there is a checkbox called Force display update after each run Below the checkbox is a note that reads Checking this box produces smoother animation but may make the button run more slowly 76 Programming Guide NetLogo 2 1 0 User Manual Most of the time it s enough to know that if you prefer smooth animation check the box and if you prefer speed uncheck it In some models the difference is dramatic in others it s hardly noticeable It depends on the model What follows is a more detailed explanation of what s really going on with this checkbox To understand why this option is offered you need to understand a little about how NetLogo updates the graphics window When something changes in the world for example if a turtle moves or a patch changes color the change does not always immediately become visible NetLogo would run too slowly if changes
148. eading random 360 fd 1 end Be careful of the spacing around the In Tutorial 2 we used red 2 with spaces in order to subtract two numbers but here we want move turtles without spaces The combines move and turtles into one word Line by line ask turtles commands says that each turtle should execute the commands in the brackets set heading random 360 is another command that uses a reporter First each turtle picks a random integer between 0 and 359 random doesn t include the number you give it as a possible result Then the turtle sets its heading to the number it picked Heading is measured in degrees clockwise around the circle starting with O degrees at twelve o clock north fd 1 Each turtle moves forward one step in the new direction it just set its heading to Why couldn t we have just written that in go We could but during the course of building your project it s likely that you ll add many other parts We d like to keep go as simple as possible so that it is easy to understand Eventually it could include many other things you want to have happen 44 Tutorial 3 Procedures NetLogo 2 1 0 User Manual as the model runs such as calculating something or plotting the results Each of these sub procedures could have its own name The go button you made in the Interface tab is a forever button meaning that it will continually execute its code until you shut it off by clicking on it again
149. ected a number here rather than a list or block O gt ask patch set pcolor blue 38 Tutorial 2 Commands NetLogo 2 1 0 User Manual To ask an individual turtle to do something we use its who number But patches don t have who numbers therefore we need to refer to them some other way Remember patches are arranged on a coordinate system Two numbers are needed to plot a point on a graph an x axis value and a y axis value Patch locations are designated in the same way as plotting a point e Open a patch monitor for any patch The monitor shows that for the patch in the picture its pxcor variable is 11 and its pycor variable is 4 If we go back to the analogy of the coordinate plane and wanted to plot this point the point would be found in the lower left quadrant of the coordinate plane where x 11 and y 4 To tell this particular patch to change color use its coordinates e Type ask patch 11 4 set pcolor blue and press return What are the two words in this command that tip you off that we are addressing a patch What s Next At this point you may want to take some time to try out the techniques you ve learned on some of the other models in the Models Library In Tutorial 3 Procedures you can learn how to alter and extend existing models and build your own models Tutorial 2 Commands 39 40 NetLogo 2 1 0 User Manual Tutorial 2 Commands Tutorial 4
150. ed to include the maximum X value Values equal to the maximum X will fall outside of the histogram s range histogram from turtles color 5 draws a histogram showing how many turtles there are z gt of each color Note using this primitive amounts to the same thing as writing histogram list values from agentset reporter butis more efficient histogram list histogram list list Histograms the values in the given list after first removing any previous points drawn by the current plot pen See histogram from above for more information home home Moves the turtle to the origin Equivalent to setxy 0 0 hsb hsb hue saturation brightness Reports a number in the range 0 to 140 not including 140 itself that represents the given color specified in the HSB spectrum in NetLogo s color space All three values should be in the range 0 0 to 1 0 The color reported may be only an approximation since the NetLogo color space does not include all possible colors It contains only certain discrete hues and for each hue either saturation or brightness may vary but not both at least one of the two is always 1 0 show hsb 0 0 0 gt 0 0 black show hsb 0 5 1 0 1 0 gt 85 0 cyan Primitives Dictionary 181 NetLogo 2 1 0 User Manual See also extract hsb rgb extract rgb hubnet broadcast hubnet broadcast tag name value This broadcasts value from NetLogo to the variable in the case of Calculator H
151. ed your mind The but 1ast b1 for short reporter reports all the list items but the last set mylist but last mylist mylist is now 2 7 10 Bob 3 0 2 Suppose you want to get rid of item 0 the 2 at the beginning of the list set mylist but first mylist mylist is now 7 10 Bob 3 0 2 Suppose you wanted to change the third item that s nested inside item 3 from 2 to 9 The key is to realize that the name that can be used to call the nested list 3 0 2 is item 3 mylist Then the replace item reporter can be nested to change the list within a list The parentheses are added for clarity set mylist replace item 3 mylist replace item 2 item 3 mylist 9 mylist is now 7 10 Bob 3 0 9 Iterating Over Lists If you want to do some operation on each item in a list in turn the foreach command and the map reporter may be helpful foreach is used to run a command or commands on each item in a list It takes an input list and a block of commands like this foreach 2 4 6 i ext gt show created turtles gt created 2 turtles gt created 4 turtles gt created 6 turtles In the block the variable 2 holds the current value from the input list Here are some more examples of foreach foreach 1 2 3 ask turtles fd 5 turtles move forward 6 patches foreach true false true true ask turtles if fd 1 1 turtles move forward 3 patches map is similar to foreach but
152. een them e How can keep two turtles from occupying the same patch e How can find out if a turtle is dead e How do find out how much time has passed in my model e Does NetLogo have arrays e Does NetLogo have associative arrays or lookup tables e How can convert an agentset to a list or vice versa e What if want to ask an agentset in random order e How does NetLogo decide when to switch from agent to agent when running code General Why is it called NetLogo The Logo part is because NetLogo is a dialect of the Logo language Net is meant to evoke the decentralized interconnected nature of the phenomena you can model with NetLogo It also refers to HubNet the networked participatory simulation environment included in NetLogo 136 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual What programming language was NetLogo written in NetLogo is written entirely in Java version 1 4 1 How do cite NetLogo in an academic publication NetLogo itself Wilensky U 1999 NetLogo http ccl northwestern edu netlogo Center for Connected Learning and Computer Based Modeling Northwestern University Evanston IL HubNet Wilensky U amp Stroup W 1999 HubNet http ccl northwestern edu netlogo hubnet html Center for Connected Learning and Computer Based Modeling Northwestern University Evanston IL How do cite a model from the Models Library in an academic publication Wilen
153. efore any went on The equivalent in NetLogo is to come to the end of an ask block If you write it this way the two steps are not synced ask turtles fd random 10 do calculation Since the turtles will take varying amounts of time to move they ll begin do calculation at different times But if you write it this way they are ask turtles fd random 10 ask turtles do calculation Here some of the turtles will have to wait after moving until all the other turtles are done moving Then the turtles all begin do calculation at the same time This latter form is equivalent to this use of the comma in StarLogoT fd random 10 do calculation Lists In the simplest models each variable holds only one piece of information usually a number or a string The list feature lets you store multiple pieces of information in a single variable by collecting those pieces of information in a list Each value in the list can be any type of value a number or a string an agent or agentset or even another list Lists allow for the convenient packaging of information in NetLogo If your agents carry out a repetitive calculation on multiple variables it might be easier to have a list variable instead of multiple number variables Several primitives simplify the process of performing the same computation on each value in a list The Primitives Dictionary has a section that lists all of the list related primitives Constant Lis
154. elevations are and where they can be found a o setup go a highest lowest 0 0 An Uphill Algorithm Okay Finally we re ready to start hill climbing To rehash we ve got some turtles randomly spread out from the origin and we ve got a landscape of patches whose primary attribute is their elevation Lastly we have two kinds of tools to help us understand the patch landscape each patch has a color depending on its value of elevation and we have a pair of monitors telling us what the highest peak and lowest valley are What we need now is for the turtles to wander around each trying to get to the patch that has the highest elevation Let s try a simple algorithm first We ll assume three things 1 that the turtles cannot see ahead farther than just one patch 2 that each turtle can move only one square each turn and 3 that turtles are blissfully ignorant of each other Before we had a procedure move turtles like this to move turtles ask turtles set heading random 360 fd 1 48 Tutorial 3 Procedures NetLogo 2 1 0 User Manual end But now we don t want them to move randomly about We want each turtle to look at the elevation of each patch directly around it and move to the patch with the highest elevation If none of the patches around it have a higher elevation than the patch it is on it ll stay put This new procedure should replace move turtles inside of go Type in the following code and
155. els whether the Graphics Window uses shapes and whether turtles are drawn in their exact positions or whether they snap to fixed grid positions Feel free to experiment with these settings as well Once you are done exploring the Wolf Sheep Predation model you may want to take some time just to explore some of the other models available in the Models Library The Models Library The library contains five sections Sample Models Curricular Models Code Examples HubNet Calculator Activities HubNet Computer Activities Tutorial 1 Models 29 NetLogo 2 1 0 User Manual Sample Models The Sample Models section is organized by subject area and currently contains more than 150 models We are continuously working on adding new models to it so come visit this section at a later date to view the new additions to the library Some of the folders in Sample Models have folders inside them labeled unverified These models are complete and functional but are still in the process of being reviewed for content accuracy and quality of code Curricular Models These are models designed to be used in schools in the context of curricula developed by the CCL at Northwestern University Some of these are models are also listed under Sample Models others are unique to this section See the info tabs of the models for more information on the curricula they go with Code Examples These are simple demonstrations of particular features of NetLogo Th
156. ends on code stored in a separate JAR copy the extra JARs into the extensions directory of the NetLogo installation Whenever an extension is imported NetLogo makes all the JARs in this folder available to the extension If you plan to distribute your extension to other NetLogo users make sure to provide installation instructions that describe which files should be copied to their extensions directory Extensions Guide 123 NetLogo 2 1 0 User Manual Conclusion Don t forget to consult the NetLogo API Specification for full details on these classes interfaces and methods Note that there is no way for the modeler to get a list of commands and reporters provided by an extension so it s important that you provide adequate documentation The extensions facility is considered experimental This initial API doesn t include everything you might expect Some facilities exist but are not yet documented If you don t see a capability you want please let us know Do not hesitate to contact us at feedback Occl northwestern edu with questions as we may be able to find a workaround or provide additional guidance where our documentation is thin Hearing from users of this API will also allow us to appropriately focus our efforts for future releases We are committed to making NetLogo flexible and extensible and we very much welcome your feedback 124 Extensions Guide Controlling Guide NetLogo can be invoked from another Java program and c
157. ent plot Turtles at Peaks plot count turtles with elevation gt highest 100 end Note that we use the plot primitive to add the next point to a plot but before doing that we need to tell NetLogo which plot we want since later our model might have more than one plot Thus we re plotting the number of turtles within 100 units of our maximum elevation at some given point in time The plot command moves the current plot pen to the point that has x coordinate equal to 1 greater than the old x coordinate and y coordinate equal to the value given in the plot command in this case the number of turtles whose elevation is within 100 of highest Then the plot command draws a line from the current position of the plot pen to the last point it was on In order for set current plot Turtles at Peaks to work you ll have to add a plot to your model in the Interface tab then edit it so its name is Turtles at Peaks the exact same name used in the code Even one extra space will throw it off it must be exactly the same in both places Note that when you create the plot you can set the minimum and maximum values on the x and y axes and the color of the default plot pen pick any color you like You ll want to leave the Autoplot checkbox checked so that if anything you plot exceeds the minimum and maximum values for the axes the axes will automatically grow so you can see all the data Now reset the project and run it again Y
158. eport Argument args Context context throws ExtensionException create a NetLogo list for the result LogoList list new LogoList use typesafe helper method from org nlogo api Argument to access argument int n args 0 getIntegerValue if n lt 0 throw org nlogo api ExtensionException to signal a NetLogo runtime error to the modeler throw new ExtensionException input must be positive populate the list for int i 1 i lt n i list add new Integer i return list Extensions Guide 121 NetLogo 2 1 0 User Manual Notice e To access arguments use org nlogo api Argument s typesafe helper methods such as getIntegerValue e Throw org nlogo api ExtensionException to signal a NetLogo runtime error to the modeler A Command is just like a Reporter except that reporters implement Object report while commands implement void perform 2 Write a ClassManager Each extension must include in addition to any number of command and reporter classes a class that implements the interface org nlogo api ClassManager The ClassManager tells NetLogo which primitives are part of this extension In simple cases extend the abstract class org nlogo api DefaultClassManager which provides empty implementations of the methods from ClassManager that you aren t likely to need Here s the class manager for our example extension S
159. eporter during the run Finally in the all run data section you ll see what the value of your reporter was at every time step during the entire run Conclusion That concludes the tour of the features of BehaviorSpace The tool is still under development so we d like to hear from you about what what additional features would be useful to you in your work Please write us at feedback ccl northwestern edu he slope of the data always remains the same The higher the weight selected in the relative weight menu the less this menu selection matters because that means slope matters increasingly more than error Error is determined by attempting to fit the data to either a line or a curve depending on which is chosen and then finding the Least Square Error involved in doing so e Fitting data to a line means finding a function of the form y ax b that best approximates the data e Fitting data to an exponential curve means finding a function of the form y ae bx where e 2 71828 that best approximates the data e If exponential is selected and any run has both positive and negative data values then a warning dialog is brought up saying that the data cannot be fit to an exponential curve and linear is automatically selected this occurs because exponential curves of this form can be either above the x axis when a is positive or below the x axis when a is negative but not both Slope value menu Determines whether it
160. er Logos most importantly agents and agentsets The NetLogo world is a torus that is the edges of the screen are connected to each other so turtles and patches wrap around Can use a different world topology bounded infinite plane sphere etc Torus is the only topology directly supported by NetLogo but you can often simulate a different topology without too much extra effort If you want the world to be a bounded rectangle you may need to add some code to your model to enforce this Often a helpful technique is to turn the edge patches a different color so turtles can easily detect when they hit the edge Also there are no wrap versions of primitives such as distance and towards these should help If you want your turtles to move over an infinite plane you can simulate this by having the turtles keep track of their position on the infinite plane then hide the turtle when it goes out of bounds The Random Walk 360 model in the Models Library shows you how to code this Simulating a spherical or other topology might be difficult we haven t seen a model that does this If you have one please send it in How do take the negative of a number Like this x The parentheses are required FAQ Frequently Asked Questions 147 NetLogo 2 1 0 User Manual My turtle moved forward 1 but it s still on the same patch Why Moving forward 1 is only guaranteed to take a turtle to a new patch if the turtle s he
161. er turtles affect the success value displayed by the plot Third when all the turtles have found their local maxima wouldn t it be nice for the model to stop This requires a few lines of code e Add a global variable turtles moved to the globals list 52 Tutorial 3 Procedures NetLogo 2 1 0 User Manual globals highest 7 maximum patch elevation lowest 7 Minimum patch elevation turtles moved so we know when to stop the model e At the end of the go procedure add a test to see if any turtles have moved to go set turtles moved false move to local max do plots if not turtles moved stop end e In move to local max if a turtle moves set turtles moved to true to move to local max ask turtles set heading uphill elevation if elevation of patch ahead 1 gt elevation pai set turtles moved tru end Finally what rules can you think of that would help turtles escape from lower peaks and all get to the highest ones Try writing them What s Next So now you have a nice framework for exploring this problem of hill climbing using all sorts of NetLogo modeling features buttons sliders monitors plots and the graphics window You ve even written a quick procedure to give the turtles something to do And that s where this tutorial leaves off If you d like to look at some more documentation about NetLogo the Interface Guide section of the manual walks you through every element of
162. ese commands compares its own value of elevation to our global variables highest and lowest If the comparison reports true the patch executes the commands inside the brackets In this case the patch changes its color If the comparison reports false the patch skips over the commands inside the brackets These ifs cause all patches whose value of elevation is NEAR to the highest within about 1 for our values change their color to white and all patches whose values are NEAR to the lowest become black We want this so that they ll be easier to see You can make a couple of quick changes here if you wish they won t affect the rest of the model For example instead of saying set pcolor white and set pcolor black you can say set pcolor blue and set pcolor red or whatever other colors you may wish Also you can change the range of highest peaks and lowest peaks by changing the number 100 to some other number After this create two monitors in the Interface tab with the Toolbar You make them just like buttons and sliders using the monitor icon on the Toolbar Name one of them highest and the other one lowest The reporters you ll want in each of them happen to be highest and lowest as well If you want to learn more about reporters you can look them up in the NetLogo Programming Guide Now every time you click setup and redistribute the values of elevation you ll know exactly what the highest and lowest
163. etLogo always uses Java s strict math library which gives bit for bit identical results regardless of platform But keep the following cautions in mind e If your model uses random numbers then in order to get reproducible behavior you must use the random seed command to set the random seed in advance so that your model will receive the exact same sequence of random numbers every time e If your model uses the every or wait Commands in such a way that affects the outcome of the model then you may get different results on different computers or even on the same computer since the model may run at a different speed Such models are rare These two commands are common but using them in a way that affects the outcome is not e In order to reproduce model runs exactly you must be using the exact same version of NetLogo The details of the agent scheduling mechanism and the random number generator may change between NetLogo versions and other changes bugfixes in the engine language changes and so forth may also affect the behavior of your model Then again they may not e We have expended every effort to make NetLogo model runs fully reproducible but of course this can never truly be an iron clad guarantee due to the possibility of random hardware failure and also due to the possibility of human error in the design of your model NetLogo your Java VM your hardware and so on Are there any NetLogo textbooks We at the CCL have
164. ex removed Note that the indices begin from 0 not 1 The first item is item 0 the second item is item 1 and so on set mylist 2 7 4 7 Bob set mylist remove item 2 mylist 7 mylist is now 2 7 7 Bob show remove item 3 banana gt banna repeat repeat number commands Runs commands number times pd repeat 36 fd 1 rt 10 Primitives Dictionary 213 NetLogo 2 1 0 User Manual 7 the turtle draws a circle replace item replace item index list value replace item index string1 string2 On a list replaces an item in that list index is the index of the item to be replaced starting with 0 The 6th item in a list would have an index of 5 Note that replace item is used in conjunction with set to change a list Likewise for a string but the given character of string 1 removed and the contents of string2 spliced in instead show replace item 2 2 7 4 5 15 gt 2 7 15 5 show replace item 1 sat lo gt slot report report value Immediately exits from the current to report procedure and reports value as the result of that procedure report and to report are always used in conjunction with each other See to report for a discussion of how to use them reset timer reset timer Resets the global clock to zero See also timer reverse reverse list reverse string Reports a reversed copy of the given list or string show mylist 7 mylist is 2 7 4 Bob set mylist reverse mylist
165. ey ll be useful to you later when you re extending existing models or building new ones For example if you wanted to put a histogram within your model you d look at Histogram Example to find out how HubNet Calculator amp Computer Activities This section contains participatory simulations for use in the classroom For more information about HubNet see the HubNet Guide What s Next If you want to learn how to explore models at a deeper level Tutorial 2 Commands will introduce you to the NetLogo modeling language In_Tutorial 3 Procedures you can learn how to alter and extend existing models and build your own models 30 Tutorial 1 Models Tutorial 42 Commands In Tutorial 1 you had the opportunity to view some of the NetLogo models and you have successfully navigated your way through opening and running models pressing buttons changing slider and switch values and gathering information from a model using plots and monitors In this section the focus will start to shift ffom observing models to manipulating models You will start to see the inner workings of the models and be able to change how they look Sample Model Traffic Basic e Go to the Models Library File menu e Open up Traffic Basic found in the Social Science section e Run the model for a couple minutes to get a feel for it e Consult the Information tab for any questions you may have about this model In this model you will notice on
166. f inputs for which no parentheses are required The primitives which have this capability are list word sentence map and foreach Math NetLogo supports two different kinds of math integer and floating point Integers have no fractional part and may range from 2147483648 to 2147483647 2 31 to 231 1 Integer operations that exceed this range will not cause runtime errors but will produce incorrect answers Floating point numbers are numbers containing a decimal point In NetLogo they operate according to the IEEE 754 standard for double precision floating point numbers These are 64 bit numbers consisting of one sign bit an 11 bit exponent and a 52 bit mantissa See the IEEE 754 standard for details Any operation which produces the special quantities infinity or not a number will cause a runtime error In NetLogo integers and floating point numbers are interchangeable in the sense that as long as you stay within legal ranges it is never an error to supply 3 when 3 0 is expected or 3 0 when 3 is expected In fact 3 and 3 0 are considered equal according to the equals operator If a floating point number is supplied in a context where an integer is expected the fractional part is simply discarded So for example crt 3 5 creates three turtles the extra 0 5 is ignored Programming Guide 81 NetLogo 2 1 0 User Manual Scientific notation Very large or very small floating point numbers are displayed by NetLogo usin
167. f the model suggestions on things to try and other information You may want to read the Information tab before running a model or you might want to just start experimenting then look at the Information tab later What would happen to the sheep population if there was more initial sheep and less initial wolves at the beginning of the simulation e Turn the grass switch off e Set the initial number sheep slider to 100 e Set the initial number wolves slider to 20 e Press setup and then go e Let the model run for about 100 time ticks Try running the model several times with these settings What happened to the sheep population Did this outcome surprise you What other sliders or switches can be adjusted to help out the sheep population e Set initial number sheep to 80 and initial number wolves to 50 This is close to how they were when you first opened the model e Set sheep reproduce to 10 0 e Press setup and then go e Let the model run for about 100 time ticks 24 Tutorial 1 Models NetLogo 2 1 0 User Manual What happened to the wolves in this run When you open a model all the sliders and switches are on a default setting If you open a new model or exit the program your changed settings will not be saved unless you choose to save them Note in addition to sliders and switches some models have a third kind of setting called a chooser The Wolf Sheep Predation doesn t have any
168. fore can give a command to the patches or turtles using ask Like in the first example O gt ask patches set pcolor yellow the observer has to ask the patches to set their pcolor to yellow But when a command is directly given to a group of agents like in the second example P gt set pcolor white you only have to give the command itself e Press setup What happened Why did the Graphic Window revert back to the old version with the black background and white road Upon pressing the setup button the model will reconfigure itself back to the settings outlined in the Procedures tab The Command Center is not often used to permanently change the model It is most often used as a tool to customize current models and allows for you to manipulate the NetLogo world to further answer those What if questions that pop up as you are investigating the models The Procedures tab is explained in the next tutorial and in the Programming Guide Now that we have familiarized ourselves with the Command Center let s look at some more details about how colors work in NetLogo Working With Colors You may have noticed in the previous section that we used two different words for changing color color and pcolor What is the difference between color and pcolor e Choose Turtles from the popup menu in the Command Center or use the tab key e Type set color blue and press return What happened to the cars Think about what you did to
169. g In contrast to patch left and ahead and patch right and ahead the calling turtle s current heading is not taken into account set pcolor of patch at heading and distance 90 1 green 7 turns the patch 1 to the west of the calling patch He green See also patch patch at patch left and ahead patch right and ahead patch here patch here patch here reports the patch under the turtle Note that this reporter isn t available to a patch because a patch can just say self patch left and ahead patch right and ahead patch left and ahead angle distance patch right and ahead angle distance 202 Primitives Dictionary NetLogo 2 1 0 User Manual Reports the single patch that is the given distance from the calling turtle in the direction turned left or right the given angle in degrees from the turtle s current heading If you want to find a patch in a given absolute heading rather than one relative to the current turtle s heading use patch at heading and distance instead set pcolor of patch right and ahead 30 1 green the calling turtle looks 30 degrees right of its Rs current heading at the patch 1 unit away and turns ioe that patch green note that this might be the same i patch the turtle is standing on See also patch patch at patch at heading and distance patches patches Reports the agentset consisting of all patches patches from patches from agentset reporter Reports a patch
170. g scientific notation Examples O gt show 0 000000000001 observer 1 0E 12 O gt show 50000000000000000000 0 observer 5 0E19 Numbers in scientific notation are distinguished by the presence of the letter E for exponent It means times ten to the power of so for example 1 0E 12 means 1 0 times 10 to the 12 power O gt show 1 0 10 12 observer 1 0E 12 You can also use scientific notation yourself in NetLogo code O gt show 3 observer 3000000 0 O gt show 3 0E7 0E6 3 0 observer 3 0E 0 0 0 8 7 O gt show 8 0E 3 observer 0080 4 O gt show 8 0E observer E 4 These examples show that numbers are displayed using scientific notation if the exponent is less than 3 or greater than 6 When entering a number using scientific notation you must include the decimal point For example 1E8 will not be accepted Instead you must write 1 0E8 or 1 E8 O gt show 1 0E8 observer 1 0E8 O gt show 1 E8 observer 1 0E8 O gt show 1E8 ERROR Illegal number format When entering a number the letter E may be either upper or lowercase When printing a number NetLogo always uses an uppercase E O gt show 4 5e10 observer 4 5E10 Floating point accuracy When using floating point numbers you should be aware that due to the limitations of the binary representation for floating point numbers you may get answers that are slightly inaccurate For example O gt sh
171. g ports used by the HubNet server ports 9173 9180 The graphics window on the HubNet client is grey e Verify that the Graphics Mirroring check box in the HubNet Control Center is selected e Make sure that the display switch in the model is on e If you changed the size of the Graphics Window on the HubNet server you need to restore it to its original dimensions There is no graphics window on the HubNet client Some activities don t have a graphics window on the client can t quit a HubNet client HubNet Guide 105 NetLogo 2 1 0 User Manual You will have to force the client to quit On OS X force quit the application by selecting Force Quit in the Apple menu On Windows press Ctrl Alt Delete to open the Task Manager select HubNet Client and press End Task My computer went to sleep while running a HubNet activity When woke the computer up got an error and HubNet wouldn t work anymore The HubNet server may stop working if the computer goes to sleep If this happens quit the NetLogo application and start over Change the settings on your computer so it won t sleep again My problem is not addressed on this page Please send us an email at_feedback ccl northwestern edu Known Limitations If HubNet malfunctions please send us an email at bugs ccl northwestern edu Please note that e HubNet has not yet been extensively tested with large numbers of clients i e more than about 25 Unexpected results may occ
172. hauled Weak Acid bugfix Enzyme Kinetics bugfix El Farol bugfix also most ProbLab models and all GasLab models have been substantially improved new Code Examples Case Conversion Example Lottery Example Movie Example Plot Axis Example Diffuse Nowrap Example File Input Example File Output Example Mouse Click amp Drag Example Next Patch Example Patch Coordinates Example Image Import Example Mouse Recording Example Plot Smoothing Example e features NetLogo can now run headless with no GUI from the command line see the Controlling section of the User Manual for details the editor now highlights matching and mismatched parentheses and brackets buttons can now be assigned action keys so they can be triggered by individual keypresses action keys are especially useful for games and HubNet activities but can also be added to any model making a movie of your model is now directly supported using a new suite of movie primitives See below for list the Command Center has a new design it is now always attached to the bottom or the right of the window and is full width or height and it can be easily resized or hidden you can now add an output area to the interface of your model and send output to it separately from the Command Center shapes editor is much improved 0 the list of shapes is now shown in multiple sizes against a black background with rotatability indicated 0 individual shape element
173. heading of the wrapped path towardsxy nowrap never uses the wrapped path Note asking for the heading to the point the agent is already standing on will cause a runtime error turtle turtle number Reports the turtle with the given ID number or_nobody if there is no such turtle number must be an integer set color of turtle 5 red 7 turtle with id number 5 turns red ask turtle 5 set color red 7 another way to do the same thing turtles turtles Reports the agentset consisting of all turtles show count turtles 7 prints the number of turtles turtles at BREED at turtles at dx dy BREED at dx dy Reports an agentset containing the turtles on the patch dx dy from the caller including the caller itself if it s a turtle If the caller is the observer dx and dy are calculated from the origin 0 0 7 suppose I have 40 turtles at the origin show count turtles at 0 0 gt 40 If the name of a breed is substituted for turtles then only turtles of that breed are included breeds cats dogs create custom dogs 5 setxy 2 3 show count dogs at 2 3 gt 5 228 Primitives Dictionary NetLogo 2 1 0 User Manual turtles from turtles from agentset reporter Reports a turtle agentset made by gathering together all the turtles reported by reporter for each agent in agentset For each agent the reporter must report a turtle agentset a single turtle or nobody turtles from patches random one
174. hey are not computed relative to the calling agent as with patch at pxcor and pycor must be integers ask patch 3 4 set pcolor green 7 patch with pxcor of 3 and pycor of 4 turns green See also_patch at patch ahead patch ahead distance Reports the single patch that is the given distance ahead of the calling turtle that is along the turtle s current heading set pcolor of patch ahead 1 green 7 turns the patch 1 in front of the calling turtle ns green note that this might be the same patch PH the turtle is standing on Primitives Dictionary 201 NetLogo 2 1 0 User Manual See also patch at patch left and ahead patch right and ahead patch at heading and distance patch at patch at dx dy Reports the single patch at dx dy from the caller that is dx patches east and dy patches north of the caller If the caller is the observer the given offsets are computed from the origin ask patch at 1 1 set pcolor green 7 if caller is the observer turn the patch ii at 1 1 green 7 if caller is a turtle or patch turns the E patch just southeast of the caller green See also patch patch ahead patch left and ahead patch right and ahead patch at heading and distance patch at heading and distance patch at heading and distance heading distance patch at heading and distance reports the single patch that is the given distance from the calling turtle or patch along the given absolute headin
175. hoped to write several NetLogo textbooks for quite some time These could be aimed at different audiences such as middle school high school undergraduate course in modeling or complexity practical guide for interested adults Unfortunately we have not yet been able to find the time to make these happen If people from the user community would like to collaborate on such a venture please let us know We would welcome FAQ Frequently Asked Questions 139 NetLogo 2 1 0 User Manual it Is NetLogo available in a Spanish version German version your language here version etc At present NetLogo is available only in English We plan to eventually make it possible for users to produce their own foreign language packs for NetLogo and share them with each other In order to do this we need to separate all of the English text from the rest of the source code so that is separately editable We re not sure when this will happen Is NetLogo compiled or interpreted Short answer interpreted but we are working on a compiler Long answer NetLogo does include a compiler but the compiler does not produce native code or even Java byte code It produces a custom intermediate representation that can be interpreted more efficiently than the original code However we are working on a new compiler that will generate Java byte code Once that is done NetLogo will qualify as compiled not interpreted Since Java virtual machines have just in
176. ht mouse button e From the popup menu that appears choose inspect turtle 0 A turtle monitor for that car will appear 36 Tutorial 2 Commands NetLogo 2 1 0 User Manual Taking a closer look at this turtle monitor we can see all of the variables that belong to the red car A variable is a place that holds a value that can be changed Remember when it was mentioned that all colors are represented in the computer as numbers The same is true for the agents For example turtles have an ID number we call their who number Let s take a closer look at the turtle monitor What is this turtle s who number What color is this turtle What shape is this turtle This turtle monitor is showing a turtle who that has a who number of 0 a color of 15 red see above chart and the shape of a car There are two other ways to open a turtle monitor besides right clicking or control clicking depending on your operating system One way is to choose Turtle Monitor from the Tools menu then type the who number of the turtle you want to inspect into the who field and press return The other way is to type inspect turtle 0 or other who number into the Command Center You close a turtle monitor by clicking the close box in the upper left hand corner Macintosh or upper right hand corner other operating systems Now that we know more about Agent Monitors we have three
177. i desce ns s o ceetas canecauasesnetuates fearesei sande vadatucassesvedeas adecbans sazincsaaeetee 119 Using EXTCNSIONS ica A a nantes 119 ADDICTS vv recite An ARS Gr fra a 120 Writing Extensions eee eeeeeeeeeeaaeeeeeeaseeaeeeeseeeseaeeeeseesaeeeaeaesennseesseeseeenes 120 SUD A RD Ra a A 120 TUTO is HERE Rato RR A A A RR RR ARG Pais o RR 120 Extension development tips ear aaa a ana aerea ana aanaaanaaanaranaaana 123 Al A ab aren Od tose ada EG E SS lands DUO E UE Pa RO E Sa O an ais 124 Controlling QUId E 125 Example Wih GUI ucraniana ia sE 125 Example headless eee eee rara rara rara nene rena eae nan eeaaeeaaeeaarenaeeaas 126 Oiher ODHONS isa zadesgan soraia casaria ia 127 GONCIUSION E ete sk E E Aa A o pa dO Eat DOS BD sda sade mate ace 127 Neil go Sound EXTENSO iii A aiii 129 Using the Sound EXPANSION is a dean rena 129 PRIMITIVES oi AA gado foeasd ate Ud pa Sauna 129 DLEE LAR VAEA TEIE A E E saad dle 129 M a eA TES 129 play drum EAEE E ira A E A E AE 130 PIANO iia A A ra 130 SAME A O o O atado 130 SOPA A A A tdi 130 Stop NSU OE e iia e 131 OPUS A e a ed vena a owe r rena a Te 131 SOUMG NAMES contrata ai aa NEE EEEE AEAT 131 DUNAS PA EEE A ENE E E E A E I E A EEN E A 131 MAESTRA E AE E E A EEE OIE E E E E T T 131 Conrad eet 135 DJe niLo F e lale EAEE E E 135 APIS a ENEE E A E E A E E ETTE 135 NetLogo 2 1 0 User Manual Table of Contents NetLogo Sound Extension E
178. ication reliability The update is available from Apple through Software Update Mac OS 8 and 9 These operating systems are no longer supported by the current version of NetLogo MacOS 8 and 9 users should download NetLogo 1 3 instead We plan to continue to support NetLogo 1 3 Other platforms NetLogo should work on any platform on which a Java Virtual Machine version 1 4 1 or later is available and installed Version 1 4 2 or later is preferred If you have trouble please contact us see above System Requirements 11 NetLogo 2 1 0 User Manual System Requirements Saved Applets NetLogo models saved as Java applets should work on any web browser and platform on which a Java Virtual Machine version 1 4 1 or later is available If you have trouble please contact us see above On Mac OS X the Internet Explorer browser does not make use of the 1 4 1 JVM so it cannot run saved applets We suggest using Apple s Safari browser instead or another web browser which uses the newer JVM 12 System Requirements Known Issues If NetLogo malfunctions please send us a bug report See the Contact Us section for instructions Known bugs all systems e Integers in NetLogo must lie in the range 2147483648 to 2147483647 if you exceed this range instead of a runtime error occurring you get incorrect results e Out of memory conditions are not handled gracefully e The run and runresult primitives do not work properly if their
179. icking on the tabs at the top of the window a q Interface Information Procedures Errors abc Button Slider EE Switch Bn Chooser BS Monitor f edit Dele i Po Plot Output IE Tex Right below the row of tabs is a toolbar containing a row of buttons The buttons available vary from tab to tab Interface Tab The Interface tab is where you watch your model run It also has tools you can use to inspect and alter what s going on inside the model When you first open NetLogo the Interface tab is empty except for the Graphics Window where the turtles and patches appear and the Command Center which allows you to issue NetLogo commands Interface Toolbar The toolbar contains buttons that let you edit delete and create items in the Interface tab such as buttons and sliders ab Button E Slider EE Switch E Chooser BS Monitor Y Plot ES Output E Tex The buttons in the toolbar are described below Interface Guide 59 NetLogo 2 1 0 User Manual Working With Interface Elements Selecting To select an interface element drag a rectangle around it with your mouse A gray border will appear around the element to indicate that it is selected Selecting Multiple Items You can select multiple interface elements at the same time by including them in the rectangle you drag If multiple elements are selected one of them is the key item which means th
180. iduals become uncomfortable and leave groups they move into new groups which may cause some people in that group to become uncomfortable in turn This chain reaction continues until everyone at the party is comfortable in their group Note that in the model tolerance is not fixed You the user can use the tolerance slider to try different tolerance percentages and see what the outcome is when you start the model over again How to start over 1 If the go button is pressed black then the model is still running Press the button again to stop it 2 Adjust the tolerance slider to a new value by dragging its red handle 3 Press the setup button to reset the model 4 Press the go button to start the model running again Challenge As the host of the party you would like to see both men and women mingling within the groups Adjust the tolerance slider on the side of the Graphics Window to get all groups to be mixed as an end result To make sure all groups of 10 have both sexes at what level should we set the tolerance Test your predictions on the model Can you see any other factors or variables that might affect the male to female ratio within each group Make predictions and test your ideas within this model Feel free to manipulate more than one variable at a time Sample Model Party 19 NetLogo 2 1 0 User Manual As you are testing your hypotheses you will notice that patterns are emerging from th
181. ii A A a E ra aa NEA ENAA Saudi EN 153 Patch related primitives rea ara aerea ara rena anna aaa aaaa anna anna Ennn 153 Ageniset priMitiVeS coooconcccnccciccnnccnnccnncnnnnnnnn narrar 153 Color PATINES a os 153 Control flow and logic PAIS casara ai 154 Display PrimILIVES ses cessar daa da ia sde 154 HubNet priMitiVeS ocooccccccccnccnnconnnonononnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnonenenineness 154 Input output primitives ease rear ren EE E e EA a AEE EEs 154 Eile primitiv S sinia rn A E AEA ER 154 LIST DEIMIIVOS sie o A eE e E A Aea e eE 154 SINO PRIMOS EEE E AS E AS 154 Mathematical priMitiVeS ccocccocccoccconcconcconnnnnnnnnnnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnninnnnss 154 Plotting primitives sect magenta ra ean da ford A 155 Movie pM VAS a a sets den e r E aE a e a a a a E ted rs 155 BUIIA Val na e AAS ea a aAA aid 155 vi NetLogo 2 1 0 User Manual Table of Contents Primitives Dictionary vii NetLogo 2 1 0 User Manual Table of Contents Primitives Dictionary vili o ejte LA 6 5 iret caved oc DRA A A A ai 167 distance NowraD ssegae rias areas cera geradas Created Manes e einen vga AA a Gerd deb rebate dadas 167 DISTANCEXV e srta nagar cate Cod na A GA a E GRE PENTE PAES E AS 167 distancexy NOWraD ci iii 168 down ri aia 168 COW AINA a alas nl ool eee a cod DAR ee ido 169 MARTA cd see ag Maries te ccc A DR E dA see Poaceae e Sr 169 O
182. ile Use the reporter file at end to determine if you are at the end of the file file open myfile txt print file read characters 8 7 Current line in file is Hello World gt Hello Wo See also file open file read line file read line Reads the next line in the file and reports it as a string It determines the end of the file by a carriage return an end of file character or both in a row It does not return the line terminator characters Also note that the file open command must be called before this reporter can be used and there must be data remaining in the file Use the reporter file at end to determine if you are at the end of the file file open myfile txt Primitives Dictionary 175 NetLogo 2 1 0 User Manual print file read line gt Hello World See also file open file show file show value Prints value to an opened file preceded by the calling agent and followed by a carriage return The calling agent is included to help you keep track of what agents are producing which lines of output Also all strings have their quotes included similar to file write Note that this command is the file i o equivalent of show and file open needs to be called before this command can be used See also file print filetype and file write file type file type value Prints value to an opened file not followed by a carriage return unlike file print and file show The lack of a carriage return allows
183. ime increment So fd 0 5 and fd 1 both take one unit of time but fd 3 takes three See also_jump fput fput item list Adds item to the beginning of a list and reports the new list 7 suppose mylist is 5 7 10 set mylist fput 2 mylist 7 mylist is now 2 5 7 10 G get date and time get date and time Reports a string containing the current date and time The format is shown below All fields are fixed width so they are always at the same locations in the string The potential resolution of the clock is milliseconds Whether you get resolution that high in practice may vary from system to system depending on the capabilities of the underlying Java Virtual Machine 178 Primitives Dictionary NetLogo 2 1 0 User Manual show get date and tim gt 01 19 36 685 PM 19 Sep 2002 globals globals var1 var2 This keyword like the breeds lt BREED gt own patches own and turtles own keywords can only be used at the beginning of a program before any function definitions It defines new global variables Global variables are global because they are accessible by all agents and can be used anywhere in a model Most often globals is used to define variables or constants that need to be used in many parts of the program H hatch hatch lt BREED gt hatch number commands hatch lt BREED gt number commands This turtle creates number new turtles each identical to its parent and asks the new turtles
184. in the smallest angle by which heading2 could be rotated to produce heading1 A positive answer means a clockwise rotation a negative answer counterclockwise The result is always in the range 180 to 180 but is never exactly 180 Primitives Dictionary 225 NetLogo 2 1 0 User Manual Note that simply subtracting the two headings using the minus operator wouldn t work Just subtracting corresponds to always rotating clockwise from heading2 to heading1 but sometimes the counterclockwise rotation is shorter For example the difference between 5 degrees and 355 degrees is 10 degrees not 350 degrees how subtract headings 80 60 gt 20 how subtract headings 60 80 gt 20 how subtract headings 5 355 gt 10 how subtract headings 355 5 gt L0 how subtract headings 180 0 gt 180 how subtract headings 0 180 gt 180 o lo o o i wv i a sum sum list Reports the sum of the items in the list show sum values from turtles energy 7 prints the total of the variable energy 7 from all the turtles T tan tan number Reports the tangent of the given angle Assumes the angle is given in degrees timer timer Reports how many seconds have passed since the command reset timer was last run or since NetLogo started The potential resolution of the clock is milliseconds Whether you get resolution that high in practice may vary from system to system depending on the capabilities of the underlying Java
185. ing but last list but last string When used on a list but first reports all of the list items of list except the first and but last reports all of the list items of list except the last On strings but first and but last report a shorter string omitting the first or last character of the original string 7 mylist is 2 4 6 5 8 12 set mylist but first mylist 7 mylist is now 4 6 5 8 12 set mylist but last mylist 7 mylist is now 4 6 8 show but first string 7 prints tring show but last string 7 prints strin C carefully carefully commands1 commands2 Runs commands If a runtime error occurs inside commands1 NetLogo won t stop and alert the user that an error occurred It will suppress the error and run commands2 instead The error message reporter can be used in commands2 to find out what error was suppressed in commands 1 See error message Note both sets of commands run without interruption as with the without interruption command carefully show 1 1 print error message gt 1 carefully show 1 0 print error message gt division by zero Primitives Dictionary 161 NetLogo 2 1 0 User Manual ceiling ceiling number Reports the smallest integer greater than or equal to number show ceiling 4 5 gt 5 show ceiling 4 5 gt 4 clear all ca clear all Resets all global variables to zero and calls clear turtles clear patches clear all plots and clea
186. ing message is issued Tutorial Let s write an extension that provides a single reporter called first n integers first n integers will take a single numeric input n and report a list of the integers 1 through n Of course you could easily do this just in NetLogo it s only an example 120 Extensions Guide NetLogo 2 1 0 User Manual 1 Write primitives A command performs an action a reporter reports a value To create a new command or reporter create a class that implements the interface org nlogo api Command or org nlogo api Reporter which extend ord nlogo api Primitive In most cases you can extend the abstract class org nlogo api DefaultReporter or org nlogo api DefaultCommand DefaultReporter requires that we implement Object report Argument args Context context throws ExtensionException Since our reporter takes an argument we also implement Syntax getSyntax Here s the implementation of our reporter in a file called IntegerList java import org nlogo agent LogoList import org nlogo api Argument import org nlogo api ExtensionException import org nlogo api DefaultReporter import org nlogo api Syntax public class IntegerList extends DefaultReporter this reporter takes a number as an argument and returns a list public Syntax getSyntax return Syntax reporterSyntax new int Syntax TYPE_NUMBER Syntax TYPE_LIST public Object r
187. input contains any uses of the special variables 2 21 22 etc we are already working on fixing this e The stop command does not work properly if used inside without interruption we are already working on fixing this e If you use Export World to suspend a model run and then resume it later with Import World this may change the outcome of the model run if your model involves turtles dying and new turtles being born because the export import may change what who numbers get assigned to new turtles we are already working on fixing this e Extensions don t work from models saved as applets we are already working on fixing this Windows only bugs e The User Manual item on the Help menu does not work on every machine Windows 98 and ME are most likely to be affected newer Windows versions less so e On some laptops the Procedures and Info tabs may become garbled when you scroll them To avoid this bug reduce the size of the NetLogo window and or reduce the color depth of your monitor e g change from 32 bit to 16 or 8 bit color This is a bug in Java itself not in NetLogo per se For technical details on the bug see http developer java sun com developer bugParade bugs 4763448 html free registration required NetLogo users are encouraged to visit that site and vote for Sun to fix this bug e The sound extension is not compatible with Java VM version 1 4 2 06 which does not include the default soundbank file If you choose the
188. ion In NetLogo you have the choice of viewing models found in the Models Library adding to existing models or creating your own models The NetLogo interface was designed to meet all these needs The interface can be divided into two main parts NetLogo menus and the main NetLogo window The main window is divided into tabs e Menus e Main Window 4 Interface Tab 4 Interface Toolbar 0 Working With Interface Elements 0 Graphics Window 4 Command Center Procedures Tab Information Tab Errors Tab Menus On Macs if you are running the NetLogo application the menubar is located at the top of the screen On other platforms the menubar is found at the top of the NetLogo window File Edit Tools Zoom Tabs Help NetLogo new model The functions available from the menus in the menubar are listed in the following chart Chart NetLogo Menus Starts a new model pens any NetLogo model on your computer A collection of demonstration models ave the current model ave As Save the current model using a different name Save As Applet Used to save a web page in HTML format that has your model embedded in it as a Java applet Sends the contents of the currently showing tab to your printer Saves all variables and the current state of all turtles and patches to a file Export Plot Saves the data in a plot to a file Export All Plots Saves the data in all the plots to a file Export Graphics Save a picture of the graphics window t
189. is a built in turtle variable It holds a number that is the turtle s apparent size in the graphics window The default size for a turtle is 1 0 which means that the turtle is the same size as a patch You can set this variable to change a turtle s size All turtles appear the same size in the graphics window unless the Turtle Sizes checkbox in the graphics window edit dialog is checked If that checkbox is not checked you can still use this variable but it will not have any visible effect Note the Turtle Sizes feature is currently considered experimental It may cause your model to run much more slowly and it may cause display anomalies sort sort list Reports a new list containing the same items as the input list but in ascending order If there is at least one number in the list the list is sorted in numerically ascending order and any non numeric items of the input list are discarded If there are no numbers but at least one string in the list the list is sorted in alphabetically ascending order and any non string items are discarded sort by sort by reporter list Reports a new list containing the same items as the input list in a sorted order defined by the boolean true or false reporter In reporter use 21 and 2 to refer to the two objects being compared reporter should be true if 21 comes strictly before 22 in the desired sort order and false otherwise show sort by 21 lt 2 3 1 4 2 gt 1 2 3 4 sh
190. is should only happen on Linux kernel versions 2 4 19 and earlier We assume the problem is Linux specific and does not happen on other Unix flavors We are not sure if the problem ever occurs in practice during actual NetLogo model runs or only occurs in the context of our testing regimen The bug in the Sun s Java VM and not in NetLogo itself We hope that only the exp reporter is affected but we can t be entirely certain of this NetLogo users are encouraged to visit http developer java sun com developer bugParade bugs 5023712 html free registration required and vote for Sun to fix this bug Known issues with computer HubNet See the_HubNet Guide for a list of known issues with computer HubNet Unimplemented StarLogoT primitives The following StarLogoT primitives are not available in NetLogo Note that many StarLogoT primitives such as count turtles with are intentionally not included in this list because NetLogo allows for the same functionality with the new agentset syntax e maxint minint maxnum minnum e readlist e import turtles import patches import turtles and patches note that NetLogo adds import world though e miscellaneous seldom used plotting reporters such as plot pencolor pp plotlist pp plotpointlist ppinterval ppxcor ppycor etc ebit bitand bitneg bitor bitset bitstring bitxor make bitarray rotate left rotate right shift left shift right e load pi
191. ists on the clients a message with that change is sent to the clients causing the client s plot to make the same change For example let s pretend there is a HubNet model that has a plot called Milk Supply in NetLogo and the clients Milk Supply is the current plot in NetLogo and in the command center you type plot 5 This will cause a message to be sent to all the clients telling them that they need to plot a point with a y value of 5 in the next position of the plot Notice if you are doing a lot of plotting all at once this can generate a lot of plotting messages to be sent to the clients It should be mentioned that if there is no plot with the exact same name in the clients or if the Mirror Plots on Clients checkbox in the HubNet Control Center is not checked then no plot updates are sent to the clients Clicking in the Graphics Window on Clients If the Graphics Window is included in the client it is possible for the client to send locations in the Graphics Window to NetLogo by clicking in the client s Graphics Window The tag reported by hubnet message tag for client clicks is the same as what is needed to send the Graphics Window to a client the string Graphics Window hubnet message reports a two item list with the x coordinate being the first item and the y coordinate being the second item So for example to turn any patch that was clicked on by the client red you would use the following NetLogo code if hubnet message tag
192. it is a reporter It takes an input list and another reporter Note that unlike foreach the reporter comes first like this show map round 1 2 2 2 2 7 7 prints 1 2 3 map reports a list containing the results of applying the reporter to each item in the input list Again use to refer to the current item in the list 80 Programming Guide NetLogo 2 1 0 User Manual Here is another example of map show map lt 0 1 1 3 4 2 10 7 prints false true false false true true foreach and map won t necessarily be useful in every situation in which you want to operate on an entire list In some situations you may need to use some other technique such as a loop using repeat or while or a recursive procedure The_sort by primitive uses a similar syntax to map and foreach except that since the reporter needs to compare two objects the two special variables 1 and 2 are used in place of Here is an example of sort by show sort by 1 lt 2 4 1 3 2 pp prints 1 23 4 Varying Numbers of Inputs Some commands and reporters involving lists and strings may take a varying number of inputs In these cases in order to pass them a number of inputs other than their default the primitive and its inputs must be surrounded by parentheses Here are some examples show list 12 gt 1 2 show list 1234 gt 1 2 3 4 show list gt Note that each of these special commands has a default number o
193. itches choosers or any global variable in your model You may specify values either by listing the values you want used or by specifying that you want to try every value within a given range For example to give a slider named number every value from 100 to 1000 in steps of 50 you would enter number 100 50 1000 Or to give it only the values of 100 200 400 and 800 you would enter 98 BehaviorSpace Guide NetLogo 2 1 0 User Manual number 100 200 400 800 Be careful with the brackets here Note that there fewer square brackets in the second example Including or not including this extra set of brackets is how you tell BehaviorSpace whether you are listing individual values or specifying a range You can vary as many settings as you want but you must vary at least one Measure runs using this reporter This is where you specify what data you want to collect from each run You must enter a NetLogo reporter that reports the value you want For example if you wanted to record how the population of turtles rose and fell during each run you would enter count CUES You may only enter one reporter but it is still possible to collect multiple measurements by storing the measurements in a list For example if you wanted to record the populations of three different breeds of turtles you could enter list count frogs count mice count birds Set up model with these commands This is where you enter the commands tha
194. ity of the language and support other input formats besides PGM Can import GIS data into NetLogo We do not have built in support for reading common GIS formats However a number of our users are working with GIS data succesfully using NetLogo code that reads GIS data using our file I O primitives such as file open Image Import Example in the Code Examples section of the Models Library demonstrates this technique it handles only the simple PGM Portable GrayMap image format but the same techniques could be used to handle more complex data formats including GIS formats It is also possible to use external software to convert GIS data into a format that is easier to read from NetLogo than the original format This has been discussed on the NetLogo Users Group several times We encourage users interested in using NetLogo for GIS applications to share their questions and experiences with the group My model runs slowly How can speed it up Here s some ways to make it run faster without changing the code e Edit the forever buttons in your model and turn off the Force display update after each run checkbox This allows the graphics window to skip frames which may speed up models which are display intensive See the Buttons section of the Programming Guide for a discussion of this e Use the display switch in the graphics control strip or the no display command to turn graphics off temporarily For example to go no display
195. ks correctly There s a simple procedure you can make to test it write a procedure recolor patches so that it says to recolor patches ask patches set elevation pycor set pcolor scale color green elevation 0 screen edge y screen edge y end Press setup The model looks the same as it did before because recolor patches hasn t been run yet Instead of making a button that calls your testing procedure let s do something different Type O gt recolor patches into the command center the procedure gets called Now when you press go see that the turtles all head for the highest elevation the top of the screen Another common tool to see what s going on is to write T gt pd in the Command Center Then each turtle traces its path with its color This will show you where the turile has been Our turtles rapidly arrive at local maxima in our landscape Local maxima and minima abound in a randomly generated landscape like this one Our goal is to still get the turtles to find an optimal maximum which is one of the white patches Tutorial 43 Procedures 49 NetLogo 2 1 0 User Manual Part of the problem is that our terrain is terribly lumpy Every patch picked a random elevation and then we diffused these values one time This really doesn t give us a continuous spread of elevation across the graphics window as you might have noticed We can correct this problem to an arbitrary degree by diffusing more times Replace
196. lient type is COMPUTER client info is a list containing a string with the file name and path relative to the model to the file which will serve as the client s interface This interface will be sent to any clients that log in hubnet set client interface TI 83 AAA Gridlock 1 3 L1 LOCS 7 notifies the user to enable the activity AAA Gridlock 1 3 and looks for the Calculator lists Ll and LOCS on the Navigator server hubnet set client interface COMPUTER clients Disease client nlogo 7 When clients log in they will will get the interface described in the file 7 Disease client nlogo in the clients subdirectory of the model directory This primitive must be called before you try to use HubNet calling the hubnet reset reporter so NetLogo can know which type of HubNet you are going to be using These primitives are usually best called from the startup procedure of the NetLogo model since they should only be called once in a model Data extraction The data extraction primitives are hubnet message waiting This looks for new information sent by the clients It reports TRUE if there is new data and FALSE if there is not hubnet fetch message If there is any new data sent by the clients this retrieves the next piece of data so that it can be accessed by hubnet message This will cause an error if there is no new data from the clients So be sure to check for data with hubnet message
197. ll turtles with xcor greater than 20 die See also ct diffuse diffuse patch variable number gt Tells each patch to share number 100 percent of the value of patch variable with its eight neighboring patches number should be between 0 and 1 Note that this is an observer command only even though you might expect it to be a patch command The reason is that it acts on all the patches at once patch commands act on individual patches diffuse chemical 0 5 each patch diffuses 50 of its variable 7 Chemical to its neighboring 8 patches Thus 77 each patch gets 1 8 of 50 of the chemical 7 from each neighboring patch diffuse4 diffuse4 patch variable number ig Like diffuse but only diffuses to the four neighboring patches to the north south east and west not to the diagonal neighbors diffuse4 chemical 0 5 7 each patch diffuses 50 of its variable 77 chemical to its neighboring 4 patches Thus each patch gets 1 4 of 50 of the chemical from each neighboring patch display display Causes the graphics window to be updated immediately Also undoes the effect of the no display command so that if display updates were suspended by that command they will resume no display ask turtles jump 10 set color blue set size 5 display turtles move change color and grow with none of their intermediate states visible to the user only their final state 166 Primitives
198. lps learners explore it see Modeling Nature s Emergent Patterns with Multi agent Languages Wilensky 2001 What s Next The section of the User Manual called Tutorial 1 Running Models goes into more detail about how to use the other models in the Models Library If you want to learn how to explore the models at a deeper level Tutorial 2 Commands will introduce you to the NetLogo modeling language Eventually you ll be ready for_Tutorial 3 Procedures where you can learn how to alter and extend existing models to give them new behaviors and build your own models 20 Sample Model Party Tutorial 1 Models If you read the Sample Model Party section you got a brief introduction to what it s like to interact with a NetLogo model This section will go into more depth about the features that are available while you re exploring the models in the Models Library Throughout all of the tutorials we ll be asking you to make predictions about what the effects of making changes to the models will be Keep in mind that the effects are often surprising We think these surprises are exciting and provide excellent opportunities for learning Some people have found it helpful to print out the tutorials in order to work through them When the tutorials are printed out there s more room on your computer screen for the NetLogo model you re looking at Sample Model Wolf Sheep Predation We ll open one of the Sample Models and explore it
199. lso use the plus operator like this TEUGE k ELE gt teuntle If you need to embed a special character in a string use the following escape sequences e n newline carriage return e t tab e double quote e backslash Output This section is about output to the screen Output to the screen can also be later saved to a file using the export output command If you need a more flexible method of writing data to external files see the next section File I O The basic commands for generating output to the screen in NetLogo are print show type and write These commands send their output to the Command Center For full details on these four commands see their entries in the Primitives Dictionary Here is how they are typically used e print is useful in most situations e show lets you see which agent is printing what e type lets you print several things on the same line 88 Programming Guide NetLogo 2 1 0 User Manual e write lets you print values in a format which can be read back in using file read A NetLogo model may optionally have an output area in its Interface tab separate from the Command Center To send output there instead of the Command Center use the output print output show output type and output write commands The output area can be cleared with the clear output command and saved to a file with export output If you use output print output show output type output write
200. m patches from histogram from with min one of and max one of ask turtles ask patches in radius 3 set pcolor color of myself 7 each turtle makes a colored splotch around itself See the Myself Example code example for more examples See also self N n values n values size reporter Reports a list of length size containing values computed by repeatedly running reporter In reporter use_ to refer to the number of the item currently being computed starting from zero show n values 5 1 gt 1 1 1 1 1 show n values 5 2 gt 0 1 2 3 4 show n values 3 turtle gt turtle 0 turtle 1 turtle 2 show n values 5 gt 0 1 4 9 16 See also_reduce filter Primitives Dictionary 197 NetLogo 2 1 0 User Manual neighbors neighbors4 neighbors neighbors4 k E Reports an agentset containing the 8 surrounding patches neighbors or 4 surrounding patches neighbors4 show sum values from neighbors count turtles here 7 prints the total number of turtles on the eight 77 patches around the calling turtle or patch ask neighbors4 set pcolor red turns the four neighboring patches red no display no display Turns off all updating of the graphics window until the display command is issued This has two major uses One you can control when the user sees screen updates You might want to change lots of things on the screen behind the user s back so to speak
201. m one of and so on aren t the only ones that use pseudo random numbers Some other primitives also make random choices For example the sprout command creates turtles with random colors and headings and the downhi 11 reporter chooses a random patch when there s a tie These random choices are governed by the random seed as well so model runs can be reproducible Turtle shapes In StarLogoT turtle shapes were bitmaps They all had a single fixed size and could only rotate in 45 degree increments In NetLogo turtle shapes are vector shapes They are built up from basic geometric shapes squares circles and lines rather than a grid of pixels Vector shapes are fully scalable and rotatable A turtle s shape is stored in its shape variable and can be set using the set command New turtles have a shape of default The set default shape primitive is useful for changing the default turtle shape to a different shape or having a different default turtle shape for each breed of turtle The shapes primitive reports a list of currently available turtle shapes in the model This is useful if for example you want to assign a random shape to a turtle ask turtles set shape random one of shapes Use the Shapes Editor to create your own turtle shapes or to add shapes to your model from our shapes library or to transfer shapes between models For more information see the Shapes Editor section of this manual Code Examples Breeds and
202. max list Reports the maximum number value in the list It ignores other types of items show max values from turtles xcor 7 prints the x coordinate of the turtle which is farthest right on the screen 192 Primitives Dictionary NetLogo 2 1 0 User Manual max one of max one of agentset reporter Reports the agent in the agentset that has the highest value for the given reporter If there is a tie this command returns one random agent with the highest value If you want all such agents use with max instead show max one of patches count turtles here 7 prints the first patch with the most turtles on it See also with max mean mean list Reports the statistical mean of the numeric items in the given list Ignores non numeric items The mean is the average i e the sum of the items divided by the total number of items show mean values from turtles xcor 7 prints the average of all the turtles x coordinates median median list Reports the statistical median of the numeric items of the given list Ignores non numeric items The median is the item that would be in the middle if all the items were arranged in order If two items would be in the middle the median is the average of the two show median values from turtles xcor 7 prints the median of all the turtles x coordinates member member value list member string1 string2 For a list reports true if the given value appears in the given list o
203. mmand will blank out the screen initialize any variables you might have to 0 and remove all turtles Basically it wipes the slate clean for a new run of the project crt 100 will then create 100 turtles crt is short for create turtles If the turtles didn t move after this command is given each of these turtles would begin on the center patch at location 0 0 You would only see what looks like one turtle on the screen they d all be on top of each other lots of turtles can share the same patch Only the last turtle to arrive on the patch would be visible Each of these newly created turtles has its own color its own heading All of the turtles are evenly distributed around the circle ask turtles tells each turtle to execute independently the instructions inside the brackets Note that crt is not inside the brackets If the agent observer turtle or patch is not specified using ask the observer runs it Here the observer runs the ask but the turtles run the commands inside the ask fd random screen edge x is a command that also uses reporters Reporters as opposed to commands are instructions that report a result Each turtle will first run the reporter random screen edge x which will report a random integer at least O but less than screen edge x the dimension from the center to the edge of the screen along the x axis It then takes this number and goes fd short for forward that number of steps in the direction
204. model tries to plot a point which is outside the current displayed range the range of the plot will grow along one or both axes so that the new point is visible In the hope that the ranges won t have to change every time a new point is added when the ranges grow they leave some extra room 25 if growing horizontally 10 if growing vertically If you want to turn off this feature edit the plot and uncheck the Autoplot checkbox At present it is not possible to enable or disable this feature only on one axis it always applies to both axes Temporary plot pens Most plots can get along with a fixed number of pens But some plots have more complex needs they may need to have the number of pens vary depending on conditions In such cases you can make temporary plot pens from code and then plot with them These pens are called temporary because they vanish when the plot is cleared by the clear plot clear all plots or clear all commands To create a temporary plot pen use the create temporary plot pen command Once the pen has been created you can use it like any ordinary pen By default the new pen is down is black in color has an interval of 1 0 and plots in line mode Commands are available to change all of these settings see the Plotting section of the Primitives Dictionary Conclusion Not every aspect of NetLogo s plotting system has been explained here See the Plotting section of the Primitives Dictionary for information o
205. monitor opens for that patch inspect random one of sheep 77 an agent monitor opens for a random turtle from 7 the sheep breed int int number Reports the integer part of number any fractional part is discarded show int 4 7 Primitives Dictionary 187 NetLogo 2 1 0 User Manual gt 4 show int 3 5 gt 3 is agent is agentset is boolean is list is number is patch is patch agentset is string is turtle is turtle agentset is agent value is agentset value is boolean value is list value is number value is patch value is patch agentset value is string value is turtle value is turtle agentset value Reports true if value is of the given type false otherwise item item index list item index string On lists reports the value of the item in the given list with the given index On strings reports the character in the given string at the given index Note that the indices begin from 0 not 1 The first item is item 0 the second item is item 1 and so on 7 suppose mylist is 2 4 6 8 10 show item 2 mylist gt 6 show item 3 my shoe gt g 188 Primitives Dictionary NetLogo 2 1 0 User Manual jump jump number Turtles move forward by number units all at once without the amount of time passing depending on the distance This command is useful for synchronizing turtle movements The command forward 15 takes 15 times longer to run than forward 1 but jump 15
206. mpute the neighborhoods only once ahead of time and store them in agentsets See this URL for a discussion and example code http groups yahoo com group netlogo users message 377 Can connect turtles with lines to indicate connections between them Yes See Network Example in the Code Examples section of the Models Library We plan to support this more directly in a future version of NetLogo How can I convert an agentset to a list or vice versa Here s how to convert an agentset to a list of agents values from lt agentset gt self And here s how to convert a list of agents to an agentset turtles patches with member self lt list gt For a discussion of the whole issue of agentsets versus lists of agents see 150 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual e http groups yahoo com group netlogo users message 652 e http groups yahoo com group netlogo users message 655 e http groups yahoo com group netlogo users message 656 What if want to ask an agentset in random order This is possible but the code for it is a bit awkward foreach shuffle values from lt agentset gt self ask Pest dl 4 First values from converts the agentset into a list of agents Then shuffle randomizes the order of that list Finally foreach is used to walk through the list asking each agent in term The question mark is used with foreach to refer to the current item in the list We plan to
207. n run it without a GUI e Can I have more than one model open at a time e Can copy or save a picture of the graphics window e Can make a movie of my model e Does NetLogo support multiple processors e Can use screen edge x or screen edge y etc as the minimum or maximum of a slider e Can I change the choices in a chooser on the fly e Can divide the code for my model up into several files Programming e How is the NetLogo language different from the StarLogoT language How do convert my StarLogoT model to NetLogo e How does the NetLogo language differ from other Logos e The NetLogo world is a torus that is the edges of the screen are connected to each other so turtles and patches wrap around Can use a different world topology bounded infinite plane sphere etc e How do take the negative of a number e My turtle moved forward 1 but it s still on the same patch Why e patch ahead 1 is reporting the same patch my turtle is already standing on Why e How do give my turtles vision e Does NetLogo have a command like StarLogo s grab command e tried to put at after the name of a variable for example variable at 1 0 but NetLogo won t let me Why not e I m getting numbers like 0 10000000004 and 0 799999999999 instead of 0 1 and 0 8 Why e How can use different patch neighborhoods circular Von Neumann Moore etc e Can connect turtles with lines to indicate connections betw
208. n Cone Example in the Code Examples section of the Models Library You can also find out the next patch a turtle would cross into if it moved forward continuously See Next Patch Example in the Code Examples section of the Models Library Does NetLogo have a command like StarLogo s grab command We don t have such a command although we plan to add one or perhaps several In the meantime though you can use the without interruption primitive to arrange exclusive interaction between agents For example turtles own mate to setup ask turtles set mate nobody end to find mate turtle procedure without interruption if mate nobody let candidate random one of other turtles her with mate nobody 1f candidate nobody 148 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual set mate candidate set mate of candidate self end Using without interruption ensures that while a turtle is choosing a mate all other agents are frozen This makes it impossible for two turtles to choose the same mate I tried to put at after the name of a variable for example variable at 1 0 but NetLogo won t let me Why not This syntax was supported by StarLogoT and some beta versions of NetLogo but was removed from NetLogo 1 0 Instead for a patch variable write e g pcolor of patch at 1 0 andfora turtle variable write e g color of one of turtles at 1 0 I m getting numbers like 0 10000000004
209. n additional commands and reporters related to plotting Many of the Sample Models in the Models Library illustrate various advanced plotting techniques Also check out the following code examples Code Examples Plot Axis Example Plot Smoothing Example Strings To input a constant string in NetLogo surround it with double quotes The empty string is written by putting nothing between the quotes like this Most of the list primitives work on strings as well butfirst string gt tring Programming Guide 87 NetLogo 2 1 0 User Manual butlast string gt strin empty gt true empty string gt false first string gt s item 2 string gt r last string gt g length string gt 6 member s string gt true member rin string gt true member ron string gt false position s string gt 0 position rin string gt 2 position ron string gt false remove r string gt sting remove s strings gt tring replace item 3 String o gt strong reverse string gt gnirts A few primitives are specific to strings such as is string substring and word is string string gt true is string 37 gt false substring string 2 5 gt rin word tur tle gt turtle Strings can be compared using the lt gt lt and gt operators To concatenate strings that is combine them into a single string you can a
210. n of the Models Library Does NetLogo take advantage of multiple processors Not for a single model run no The NetLogo engine is single threaded and we expect it to remain so You can take advantage of multiple processors to do multiple model runs concurrently though in either of two ways e By having multiple copies of NetLogo open in separate Java virtual machines see this answer for instructions e By writing Java code that uses the Controlling API to do headless model runs from the command line This is currently the only possible way to do multiple concurrent model runs within a single Java virtual machine See the Controlling section of the User Manual In a future version of NetLogo we hope to improve the support for multiple processors as follows e Allow multiple models to be open simultaneously each running in a different thread and hence on a different processor e Modify the BehaviorSpace tool to optionally do multiple model runs in parallel in a configurable number of separate threads so the runs would be spread across available processors Can use screen edge x or screen edge y etc as the minimum or maximum of a slider At present no In a future version of NetLogo we plan to support this Can change the choices in a chooser on the fly At present no In a future version of NetLogo we plan to support this Can divide the code for my model up into several files At present no In a future ver
211. n tdi aiii 30 Tutorial 2 COMMANQS cccccoconancccnnnnnnccnnnanacononanarononanano conan rrona nana conan cono naar rnnnnnn rr nnanan rr nnna nnna 31 sample Model Traftie Basican anar 31 The Gommand Genter eve eo a dada 31 Working With COS aida A a o Spade Sica la Da 34 Agent Monitors and Agent COMMANETSS cccccccessssseeeeeeeeeeesceeeeeeeeeeeeeeesseenseeeeeeeeessesnnaaes 36 Whats INGE sas ce Gen oles lt duet otis Rae E e ela ices elos Di ata Fe 39 Tutorial 3 Procedure O 41 SOLIS AA AG cata cited aaa a a a r E EA E aa A SSD REA NS E AS tauiated 41 Patches and Vanabless merd tdt died ERA 45 An Uphill Algorithm O A O sue nenna 48 Some More Details site se a outs elec Tales o 52 Whats Next tai bathe eat Sala ND cade aa adi nti A Met rae tht Sept GUGA ihn dia 53 Appendix Complete Dodd dai 54 Interface GUI wicsecicices codes descizsucesensczvccaesacecanszscaccoassenceueseatactocaczaasctaadaiasseseaiwecsvaaneeesasancesusatbecbanteas 57 MENUS sagas nO AA co A ee A 57 Mai WING OW 2 22502 cere a os a 59 interage Ta ds oid A a is enel a ESTEE 59 Procedures Fair Asa 63 Informations FA it A A A A aot ele 64 NA O AA 65 Programmina GUNG rin A Cao 67 Agee a A A A 67 A AAA ae aaa da Ra a Ga ae CER a a 68 VanaDIesS amam aterro e Ano A bee ADO E A do A e ee o A dl A A MARA RO es 69 676 o pop ON RR RI DR AR DR ENE te aa ra ace len RAD RREO PRN RD RR RR RR 71 ASK oenn A AS A Soa Gta tino ua alo ds Ga Tai eee 72 AJENtSOIS a
212. naries snakes to setup ca create custom canaries 50 set color yellow create custom snakes 50 set color green end Note While the commands are running no other agents are allowed to run any code as with the without interruption command This ensures that the new turtles cannot interact with any other agents until they are fully initialized In addition no screen updates take place until the commands are done This ensures that the new turtles are never drawn on screen until they are fully initialized create tempora ry plot pen create temporary plot pen string A new temporary plot pen with the given name is created in the current plot and set to be the current pen Few models will want to use this primitive because all temporary pens disappear when clear plot or clear all plots are called The normal way to make a pen is to make a permanent pen in the plot s Edit dialog If a temporary pen with that name already exists in the current plot no new pen is created and the existing pen is set to the the current pen If a permanent pen with that name already exists in the current plot you get a runtime error The new temporary plot pen has the following initial settings e Pen down e Color black e Mode 0 line mode e Interval 1 0 See clear plot clear all plots and set current plot pen D die die The turtle dies if xcor gt 20 die Primitives Dictionary 165 NetLogo 2 1 0 User Manual a
213. nd patches When NetLogo starts up there are no turtles yet The observer can make new turtles Patches can make new turtles too Patches can t move but otherwise they re just as alive as turtles and the observer are Patches have coordinates The patch in the center of the world has coordinates 0 0 We call the patch s coordinates pxcor and pycor Just like in the standard mathematical coordinate plane pxcor increases as you move to the right and pycor increases as you move up The total number of patches is determined by the settings screen edge x and screen edge y When NetLogo starts up both screen edge x and screen edge y are 17 This means that Programming Guide 67 NetLogo 2 1 0 User Manual pxcor and pycor both range from 17 to 17 so there are 35 times 35 or 1225 patches total You can change the number of patches by editing NetLogo s Graphics window Turtles have coordinates too xcor and ycor A patch s coordinates are always integers but a turtle s coordinates can have decimals This means that a turtle can be positioned at any point within its patch it doesn t have to be in the center of the patch The world of patches isn t bounded but wraps so when a turtle moves past the edge of the world it disappears and reappears on the opposite edge Every patch has the same number of neighbor patches if you re a patch on the edge of the world some of your neighbors are on the opposite edge Procedu
214. ng tag name value When using Calculator HubNet this primitive acts in exactly the same manner as hubnet broadcast For Computer HubNet it has the following effects 0 When string is the first input this sends value from NetLogo to the tag tag name on the client that has string for a user name O When list of strings is the first input this sends value from NetLogo to the tag tag name on all the clients that have a user name that is in the list of strings 0 All the information for the current state of the Graphics Window is sent at this time HubNet Authoring Guide 111 NetLogo 2 1 0 User Manual regardless of whether the clients Graphics Windows were already up to date Note Sending a message to a non existent client using hubnet send generates a hubnet exit message hubnet send graphics string hubnet send graphics list of strings For Calculator HubNet does nothing For Computer HubNet it acts as follows 0 For a string this sends the current state of the Graphics Window in the NetLogo model to the Computer HubNet Client with string for its user name 0 For a list of strings this sends the current state of the Graphics Window in the NetLogo model to all the Computer HubNet Clients that have a user name that is in the list of strings 0 All the information for the current state of the Graphics Window is sent at this time regardless of whether the clients Graphics Windows were already up to date Note Sending the Graphics Window to a n
215. ng the inspect command There are a number of settings associated with the Graphics Window There are two ways of changing the settings by using the control strip along the top edge of the Graphics Window or by editing the Graphics Window as described in the Working With Interface Elements section above Or pressing the More button in the control strip is an alternate and quicker way AOS gt 994 Mor The controls in the control strip work as follows e The three sets of black arrows let you change the size of the world e The slider lets you control how fast the model runs this is valuable since some models run so fast that it s hard to see what s going on e The button with the arrowhead lets you turn turtle shapes on and off If shapes are off turtles appear as colored squares instead of having special shapes The squares are less work for the computer to draw so turning shapes off makes models run faster e The on off switch lets you temporarily freeze the display The model keeps running but the contents of the graphics window don t change until you unfreeze it by flipping the switch again Most models run much faster when the graphics window is frozen Interface Guide 61 NetLogo 2 1 0 User Manual Here are the settings for the Graphics Window accessible by editing the Graphics Window or by pressing the More button in the control strip 8000 Editing Graphics Screen Edge X 17 Screen
216. nnnrnnnnnnn nn nn nn n o nn nn nn nn nn nn nn nnnnnnnnos 217 ANA iss ici cce ecececeneracaneaaneaanaaaaaaanaaanaaanaaaanaannaaa 217 SA A O DO o Do e AA RA AAR A dO RR a RO 217 SSMICOLOMN PARRA DRE IDR RARO RARO RR ANPR BRR AONDE DIR ER RR 218 SCNIGNCE Biar A Ree eh and ade ddan Gan ad seeded ea DS do N o nai 218 SOT eee RE DR NPR ARENS AD PRE RP AR NR Mich NR RE ES dl 218 set current directory lll lili nnnnnnnnnnnrnnn nn nn nn nn nro nn nnn nn nn nnnnnnnnnnnnnnnnnnnnnnnnnnos 218 Setup di io 219 set rrent pl t per sefa a e a e e a e aa aa E 219 s t d fa lt shape ssar a RR RR RR OR sirios 219 set histogram num bars llllllil lil iii css secs nn nn nono rro rn nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnos 220 Set plotEDen cOlO iaa dad 220 Sset plot DEn Ite Valiant debeis 220 set pl tpen Mode ss ised bees ade wees eras HU aaa din RRA Dan steven UN Ta RUAS da Aaa andas anda 220 set plot x range set plot y range llllsisi sis cc cseeceeeaeneaanaaaanaaanananaaa 221 xi NetLogo 2 1 0 User Manual Table of Contents Primitives Dictionary xii Soi 221 BMAD C Olen toes ad ir dt talco 221 SADO ca OS AEE E SATA a SARA STR ASS 221 NN 222 SNOW tata ta A A Pee be a Ro 222 SHOWT Ss a A oe eh AA o ED a nd 222 SAUS o ek tie erect a send 222 MM in 223 A RSS O CAD OO ED RAR 223 SOM caetano edt Acts A O de o bo telnet 223 SONY A AA AN 223 sproutsproui lt BREED gt nro a dadas Tae baias
217. non blue turtles move forward 10 steps nsum nsum4 nsum patch variable nsum4 patch variable SS A For each patch reports the sum of the values of patch variable in the 8 surrounding patches nsum or 4 surrounding patches nsum4 Note that nsum nsum4 are equivalent to the combination of the sum values from and neighbors neighbors4 primitives sum values from neighbors var does the same thing as nsum var sum values from neighbors4 var does the same thing as nsum4 var Therefore nsum and nsum4 are included as separate primitives mainly for backwards compatibility with older versions of NetLogo which did not have the neighbors and neighbors4 primitives See also_neighbors neighbors4 O Primitives Dictionary 199 NetLogo 2 1 0 User Manual of VARIABLE of agent Reports the value of the VARIABLE of the given agent Can also be used to set the value of the variable show pxcor of random one of patches 7 prints the value of a random patch s pxcor variable set color of random one of turtles red 7 a randomly chosen turtle turns red ask turtles set pcolor of patch at 1 0 red 7 each turtle turns the patch on its left red one of one of ageniset If given a turtle agentset reports the turtle in the set with the lowest numbered ID If given a patch agentset reports the patch in the set with the highest pycor and if a tie breaker is needed with the lowest pxcor If the agentset is em
218. nores other types of items show standard deviation 1 2 3 4 5 6 gt 1 8708286933869707 show standard deviation values from turtles energy 224 Primitives Dictionary NetLogo 2 1 0 User Manual prints the standard deviation of the variable energy 7 from all the turtles startup startup User defined procedure which if it exists will be called when a model is first loaded to startup setup end stop stop The calling agent exits immediately from the enclosing procedure ask or ask like construct cct hatch sprout Only the current procedure stops not all execution for the agent Note stop can be used to stop a forever button If the forever button directly calls a procedure then when that procedure stops the button stops In a turtle or patch forever button the button won t stop until every turtle or patch stops a single turtle or patch doesn t have the power to stop the whole button sublist substring sublist list position position2 substring string position position2 Reports just a section of the given list or string ranging between the first position inclusive and the second position exclusive Note The positions are numbered beginning with 0 not with 1 show sublist 99 88 77 66 1 3 gt 88 77 show substring turtle 1 4 gt urt subtract headings subtract headings heading1 heading2 Computes the difference between the given headings that is the number of degrees
219. nteger This primitive mimics the old behavior as follows If number is positive reports a random number greater than or equal to 0 but strictly less than number If number is negative the number reported is less than or equal to O but strictly greater than number If number is zero the result is always zero as well If number is an integer reports a random integer Primitives Dictionary 209 NetLogo 2 1 0 User Manual If number is floating point has a decimal point reports a floating point number show random int or float 3 7 prints 0 1 or 2 show random int or float 5 0 7 prints a number at least 0 0 but less than 5 0 for example 4 686596634174661 random n of random n of size agentset From an agentset reports an agentset of size size randomly chosen from the input set From an list reports a list of size size randomly chosen from the input set The items in the result appear in the same order that they appeared in the input list If you want them in random order use shuffle on the result It is an error for size to be greater than the size of the input ask random n of 50 patches set pcolor green 7 50 randomly chosen patches turn green See also random one of random one of random one of agentset random one of list From an agentset reports a random agent If the agentset is empty reports_nobody From a list reports a random list item It is an error for the list to be empty
220. nterface Tab of the client interface you had a button called Move Left a slider called step size a switch called all in one step and a monitor called Location the tags for these interface elements will be as follows interface element tg Move Left Move Left step size step size all in one step all in one step Location Location Be aware that this causes the restriction that you can only have one interface element with a specific name Having more than one interface element with the same Display Name in the client interface will cause funny things to happen For instance if we had a monitor called Milk Supply and a plot named Milk Supply when we send data to the client using the tag Milk Supply the client will just pick either the plot or the monitor to give the data to Be aware that if you wish to have a Graphics Window in the client for a model the Graphics Window in the client and the one in the NetLogo model must have the same number of patches and the same patch size If they do not the Graphics Window on the client will not display information sent by the server If you wish to make a client without a Graphics Window in the client you will have to hand edit the file after you have finished adding all the other interface elements in NetLogo To do this open the client file in a text editor such as Notepad on Windows or TextEdit on Macs You should see a file that staris with something similar to this
221. number of turtles input by the user are created reduce reduce reporter list Reduces a list from left to right using reporter resulting in a single value This means for example that reduce 1 22 1 2 3 4 is equivalent to 1 2 3 4 If listhas a single item that item is reported It is an error to reduce an empty list In reporter use 1 and 2 to refer to the two objects being combined Since it can be difficult to develop an intuition about what reduce does here are some simple examples which while not useful in themselves may give you a better understanding of this primitive show reduce 1 2 1 2 3 gt 6 Primitives Dictionary 211 NetLogo 2 1 0 User Manual show reduce 21 22 1 2 3 gt 4 show reduce 2 1 1 2 3 gt 2 show reduce 1 1 2 3 gt 1 show reduce 2 1 2 3 gt 3 how reduc sentence 1 2 1 2 3 4 5 dto 3 TA 5 how reduce fput 2 21 Tout 1 2 340519 gt 5 4 3 2 1 u u Here are some more useful examples 7 find the longest string in a list to report longest string strings report reduce ifelse valu length 1 gt length 22 21 2 strings end show longest string hi there gt there count the number of occurrences of an item in a list to report occurrences x xs report reduce ifelse value 2 x 21 1 1 fput 0 xs end show occurrences 1 1 21312311451
222. o a file in PNG format D pen odels Librar dp rint Export World Interface Guide 57 NetLogo 2 1 0 User Manual Export Output Save the contents of the output area or the output section of he command center to a file Import World Load a file that was saved by Export World Quit Exits NetLogo On Macs this item is on the NetLogo menu instead Cut Cuts out or removes the selected text and temporarily saves it o the clipboard Paste Places the clipboard text where cursor is currently located uwo pre last text editing action you performed Redo Redo last undo action you performed Procedures or Errors tab used Find with Shift Left Used in the Procedures and Errors tabs to change the Shift Right indentation level of code Used in the Procedures and Errors tabs to add or remove semicolons from code semicolons are used in NetLogo code to indicate comments Comment Uncomment Halt Stops all running code including buttons and the command enter Warning since the code is interrupted in the middle of hatever it was doing you may get unexpected results if you ry to continue running the model without first pressing setup o start the model run over Globals Monitor Displays the values of all global variables urile Monitor Displays the values of all of the variables in a particular turtle ou can can also edit the values of the turtle s variables and issue commands to the turtle Yo
223. o that it does not depend on a particular scheduling mechanism We make no guarantees that the scheduling algorithm will remain the same in future versions FAQ Frequently Asked Questions 151 NetLogo 2 1 0 User Manual 152 FAQ Frequently Asked Questions Primitives Dictionary ABCDEFGHIJLMNOPRSTUVWXY Categories Turtle Patch Agentset Color Control Logic Display HubNet Input Output Files List String Math Plotting Movie Special Variables Keywords Constants Categories of Primitives This is an approximate grouping Remember that a turtle related primitive might still be called by patches or observers and vice versa To see which agent turtles patches observer can actually run each command consult each individual entry in the dictionary Turtle related back bk BREED at BREED here BREED on clear turtles ct create BREED create custom BREED create custom turtles cct create turtles crt die distance distance nowrap distancexy distancexy nowrap downhill downhill4 dx dy forward fd hatch hatch BREED hideturtle ht home inspect is turtle jump left It myself no label nobody of other turtles here other BREED here patch ahead patch at heading and distance patch here patch left and ahead patch right and ahead pen down pd pen up pu right rt self set default shape setxy shapes showturtle st sprout sorout BREED stamp subtract headings towards towards
224. oconooncnonnnonnnonnnnnnnononononnnnos 201 Pose AE Sood E aah Sarna E al E E Mokena tails eae Sa ay aa eds ees Dust ae i 201 NATE iLE A PEPESE A ali eita DI TA S A CTA ard es ad TUAS pra 201 O eme tacada a Petvnns A stan leeta SUA CURA cata CC EN ATA NRS A aa Do Pa Ca Ca IS AUG Ed 201 Pata id 202 patch at heading and diStanCe cccccccccccnccnncnnnenenenenenenennnnnnnennnnnnnrnnn rre 202 palch here A EA 202 patch left and ahead patch right and ahlead cccccccononococcnoncconnnnononnnnnnnnnnnnnnnanononnos 202 EAEL O NN 203 pat hes fronMi inise ohn a a 203 palchesS OW a a RL det ee ae eis ho eels a eles 203 COOK A O te CO RO E AA NRO RUDE 204 pen down pd pen up pu aeee erarenar eras eras rre rre 204 9 5 mi8 60 PRIOR APR DR RS ROD AND MENTIR MR Pr RR RED SO PRE a ka 204 Dl lianas aro A A Haase aac creo SER dois a da 204 plabeISCO OLA O Eae 205 o 6 PERES a ie 205 plol name sines paia as aliado A AN TU ad 205 plot pen down ppd plot pen up ppu eee ease eereeeaaeeaaeesaeesaeeano 205 A ie nar GEC E ASS ca CU CUCA ETR TENTO PR ENC GDI AO Enade 206 NetLogo 2 1 0 User Manual Table of Contents Primitives Dictionary DIO se E e a DD gine E 206 plot x min plot x max plot y Min plot y max estereo 206 POSTO ata eects va ce NADA dir cea einen te teas Chee GEC EE A a A SED a a a 206 POIS italia aii TRT RD DST TCA Rita ada ls ad eta ea Era 207 Ptas aan pd SS a 207 PXCOPDYCOE oct et
225. of the turtle s pen and the color of the turtle itself use set color Note When a turtle s pen is down only the commands forward and back cause drawing Note Theses commands are equivalent to setting the turtle variable pen down to true or false See also pen down pen down pen down This is a built in turtle variable It holds a boolean true or false value indicating whether the turtle s pen is currently down You can set this variable to put a turtle s pen down or pick it back up again See also pen down pen up plabel plabel k This is a built in patch variable It may hold a value of any type The patch appears in the graphics 204 Primitives Dictionary NetLogo 2 1 0 User Manual window with the given value attached to it as text You can set this variable to add change or remove a patch s label All patch variables can be directly accessed by any turtle standing on the patch See also no label plabel color label label color plabel color plabel color This is a built in patch variable It holds a number greater than or equal to O and less than 140 This number determines what color the patch s label appears in if it has a label You can set this variable to change the color of a patch s label All patch variables can be directly accessed by any turtle standing on the patch See also no label plabel label label color plot plot number Increments the x value of the plot pen by
226. ogramming Guide NetLogo 2 1 0 User Manual turtles reports the agentset consisting of all the turtles We ll explain about agentsets later setup and go can be called by other procedures or by buttons Many NetLogo models have a once button that calls a procedure called set up and a forever button that calls a procedure called go In NetLogo you must specify which agents turtles patches or the observer are to run each command If you don t specify the code is run by the observer In the code above the observer uses ask to make the set of all turtles run the commands between the square brackets ca and crt can only be run by the observer fd on the other hand can only be run by turtles Some other commands and reporters such as set can be run by different agent types Here are some more advanced features you can take advantage of when defining your own procedures Procedures with inputs Your own procedures can take inputs just like primitives do To create a procedure that accepts inputs include a list of input names in square brackets after the procedure name For example to draw polygon num sides size pd repeat num sides fd size rt 360 num sides end Elsewhere in the program you could ask turtles to each draw an octagon with a side length equal to its ID number ask turtles draw polygon 8 who Reporter procedures Just like you can define your own commands you can define your own re
227. ol the flow of traffic through a city e People Molecules Using CBR s Calculator Based Range finders students use their bodies to represent gas molecules e Regression As students move on screen they see the best fit line of their positions 106 HubNet Guide NetLogo 2 1 0 User Manual Requirements To use Calculator HubNet you need e A computer with an attached projector This computer will run NetLogo and project the simulation for class viewing e A classroom set of Texas Instruments TI 83 graphing calculators e The Ti Navigator calculator network from Texas Instruments NOTE Calculator HubNet works with a prototype version of the Tl Navigator system and is not yet compatible with the commercially available version To learn more about the TI Navigator system please visit the Texas Instruments website We are actively working in partnership with Texas Instruments on integrating the new Tl Navigator with Calculator HubNet We expect to release a new version in the near future Starting an activity You ll find the HubNet activities in NetLogo s Models Library in the HubNet Calculator Activities folder We suggest doing a few practice runs of an activity before trying it in front of a class When you open the first Calculator HubNet activity for each session of NetLogo you will be prompted by the Tl Navigator Login dialog This prompts you to enter information such as User ld or Password that is necessary
228. olled by the Authors to make have made use and sell Utilize all or any portion of the source code or binary form of this software or related data but solely to the extent that any such patent is reasonably necessary to enable you to Utilize all or any portion of the source code or binary form of this software or related data and not to any greater extent that may be necessary to Utilize further modifications or combinations In return you agree to the following conditions If you redistribute all or any portion of the source code of this software or related data it must retain the above copyright notice and this license and disclaimer If you redistribute all or any portion of this code in binary form you must include the above copyright notice and this license and disclaimer in the documentation and or other materials provided with the distribution and must indicate the use of this software in a prominent publically accessible location of the larger work You must not use the Authors s names to endorse or promote products derived from this software without the specific prior written permission of the Authors THE SOFTWARE IS PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND EXPRESS OR IMPLIED INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS NOR THEIR EMPLOYERS NOR GEORGE MASON UNIVERSITY BE LIABLE FOR ANY CLAIM DAMAGES OR
229. olves initial number wolves create the wolves set color blcak set energy random 2 wolf gain from food setxy random float screen size x random float screen size y Switching tabs or pressing the Check button in the toolbar causes your code to be checked for errors Interface Guide 65 66 NetLogo 2 1 0 User Manual Interface Guide Programming Guide The following material explains some important features of programming in NetLogo Note If you are already familiar with StarLogo or StarLogoT then the material in the first four sections may already be familiar to you The Code Example models mentioned throughout can be found in the Code Examples section of the Models Library e Agents e Procedures e Variables e Colors e Ask e Agentsets e Breeds e Synchronization e Buttons e Lists e Math e Random Numbers e Turtle Shapes e Plotting e Strings e Output Agents The NetLogo world is made up of agents Agents are beings that can follow instructions Each agent can carry out its own activity all simultaneously In NetLogo there are three types of agents turtles patches and the observer Turtles are agents that move around in the world The world is two dimensional and is divided up into a grid of patches Each patch is a square piece of ground over which turtles can move The observer doesn t have a location you can imagine it as looking out over the world of turtles a
230. on tool to analyze your results However the new version already has the following advantages over the old one e you can vary any global variables not just sliders but also switches and choosers and any variable declared in the procedures tab and the values they range over can be any values not just numbers anymore e you can enter arbitrary code for setup and go now you re not tied to using buttons that exist in your model e you can vary variables in any order you want rather than BehaviorSpace choosing the order for you e doing multiple trials of each combination of settings is now supported e you can collect any result type you want not just numbers anymore The documentation for the the new version is still sketchy if you have questions please write feedback ccl northwestern edu What is BehaviorSpace BehaviorSpace is a software tool integrated with NetLogo that allows you to perform experiments with models It runs a model many times systematically varying the model s settings and recording the results of each model run This process is sometimes called parameter sweeping It lets you explore the model s space of possible behaviors and determine which combinations of settings cause the behaviors of interest The need for this type of experiment is revealed by the following observations Models often have many settings each of which can take a range of values Together they form what in mathematics is called a
231. on existent client using hubnet send graphics generates a hubnet exit messag Note This is an experimental privitive and its behavior may change in a future version For the hubnet send and the hubnet broadcast primitives when using Calculator HubNet value may be a number a string a list of numbers or a matrix a list of lists of numbers For Computer HubNet you may send any kind of information with the exceptions of patches turtles and agentsets Here are some examples of using the two primitives to send various types of data that you can send data type hubnet broadcast example hubnet send example et broadcast A 3 14 t send Jimmy A 3 14 t broadcast STRI1 t send 12 15 STRI HERE I HERE t send t broadcast L2 t message source L2 t broadcast t send suzy 41 1 t broadcast ubnet send teacher user names jimmy user names Jimmy suzy suzy bob george bob george Examples Study the models in the HubNet Computer Activities and the HubNet Calculator Activities sections of the Models Library to see how these primitives are used in practice in the Procedures window Disease is a good one with which to start 112 HubNet Authoring Guide NetLogo 2 1 0 User Manual Calculator HubNet Information The calculators are able to send and receive the following data types from NetLogo e
232. ontrolled by that program For example you might want to call NetLogo from a small program that does something simple like automate a series of model runs This section of the User Manual introduces this facility for Java programmers We ll assume that you know the Java language and related tools and practices Note The controlling facility is considered experimental It is likely to continue to change and grow Code you write now that uses it may need changes in order to continue to work in future NetLogo versions e Example with GUI e Example headless e Other Options e Conclusion The NetLogo API Specification contains further details Example with GUI Here is a small but complete program that starts the full NetLogo application opens a model moves a slider sets the random seed runs the model for 50 ticks and then prints a result import org nlogo app App import org nlogo compiler CompilerException import java awt EventQueue public class Examplel public static void main String argv App main argv try EventQueue invokeAndWait new Runnable public void run App app open models Sample Models Earth Science Fire nlogo 13 App app command set density 62 APp app command random seed 0 App app command setup App app command repeat 50 go System out println App app report burned trees catch Exception ex ex printStackTrace
233. ophone L5 Tubular Bells L6 Dulcimer Organ 17 Drawbar Organ 18 Percussive Organ 9 Rock Organ 20 Church Organ 21 Reed Organ 22 Accordion 23 Harmonica 24 Tango Accordion Guitar 25 Nylon String Guitar 26 Steel Acoustic Guitar 27 Jazz Electric Guitar 28 Clean Electric Guitar 29 Muted Electric Guitar 30 Overdriven Guitar 31 Distortion Guitar 32 Guitar harmonics Bass 33 Acoustic Bass 34 Fingered Electric Bass 35 Picked Electric Bass 36 Fretless Bass 37 Slap Bass 1 38 Slap Bass 2 39 Synth Bass 1 40 Synth Bass 2 Strings 41 Violin 42 Viola 43 Cello 44 Contrabass 45 Tremolo Strings 47 Pizzicato Strings 47 Orchestral Harp 48 Timpani Ensemble 49 String Ensemble 1 50 String Ensemble 2 51 Synth Strings 1 52 Synth Strings 2 53 Choir Aahs 54 Voice Oohs 55 Synth Voice 56 Orchestra Hit Brass 57 Trumpet 132 NetLogo 2 1 0 User Manual Pipe 73 Piccolo 74 Flute 75 Recorder 76 Pan Flute 77 Blown Bottle 78 Shakuhachi 79 Whistle 80 Ocarina Synth Lead 81 Square Wave 82 Sawtooth Wave 83 Calliope 84 Chiff 85 Charang 86 Voice 87 Fifths 88 Bass and Lead Synth Pad 89 New Age 90 Warm 91 Polysynth 92 Choir 93 Bowed 94 Metal 95 Halo 96 Sweep Synth Effects 97 Rain 98 Soundtrack 99 Crystal 100 Atmosphere 101 Brightness 102 Goblins 103 Echoes 104 Sci fi Ethnic 10
234. opy FAQ Frequently Asked Questions 149 NetLogo 2 1 0 User Manual and altering the copy so replace item is linear time not constant time because the whole array is copied For most purposes the performance differences between lists and arrays doesn t matter it only matters if you re dealing with very long lists In a future version of NetLogo we plan to change our lists to be ordinary singly linked lists as in other Logo and Lisp implementations At the same time we will also provide real mutable arrays as a separate data type Does NetLogo have associative arrays or lookup tables No but you can use lists to accomplish the same thing See e htto groups yahoo com group netlogo users message 2344 e http groups yahoo com group netlogo users message 2346 e http groups yahoo com group netlogo users message 2354 How can use different patch neighborhoods circular Von Neumann Moore etc The in radius primitives lets you access circular neighborhoods of any radius The neighbors primitive gives you a Moore neighborhood of radius 1 and the neighbors4 primitive gives you a Von Neumann neighborhood of radius 1 If you want a Moore or Von Neumann neighborhood of a different radius or a different kind of neighborhood altogether you can define it yourself using the at points primitive and or other techniques If the neighborhoods do not change over time then the most efficient way to use them is to co
235. or a plot with multiple pens you have to specify which pen you want to plot with If you don t specify a pen plotting will take place with the first pen in the plot To plot with a different pen use the set current plot pen command with the name of the pen enclosed in double quotes like this set current plot pen distance Plotting points The two basic commands for actually plotting things are plot and plotxy With plot you need only specify the y value you want plotted The x value will automatically be O for the first point you plot 1 for the second and so on That s if the plot pen s interval is the default value of 1 0 you can change the interval The plot command is especially handy when you want your model to plot a new point at every time step Example to setup plot count turtles end to go plot count turtles end Note that in this example we plot from both the setup and go procedures That s because we want our plot to include the initial state of the system We plot at the end of the go procedure not the beginning because we want the plot always to be up to date after the go button stops If you need to specify both the x and y values of the point you want plotted then use plot xy instead Code Example Plotting Example Other kinds of plots Programming Guide 85 NetLogo 2 1 0 User Manual By default NetLogo plot pens plot in line mode so that the points you plot are connected by a line
236. or float random normal random poisson random seed remainder 154 Primitives Dictionary NetLogo 2 1 0 User Manual round sin sqrt standard deviation subtract headings sum tan variance Plotting primitives autoplot auto plot off auto plot on clear all plots clear plot create temporary plot pen export plot export all plots histogram from histogram list plot plot name plot pen down ppd plot pen reset plot pen up ppu plot x max plot x min plot y max plot y min plotxy ppd ppu set current plot set current plot pen set histogram num bars set plot pen color set plot pen interval set plot pen mode set plot x range set plot y range Movie primitives movie cancel movie close movie grab graphics movie grab interface movie set frame rate movie start movie status Built In Variables Turtles breed color heading hidden label label color pen down shape size who xcor ycor Patches pcolor plabel plabel color pxcor pycor Other 2 Keywords breeds end globals patches own to to report turtles own Constants Mathematical Constants e 2 718281828459045 pi 3 141592653589793 Boolean Constants false true Primitives Dictionary 155 NetLogo 2 1 0 User Manual Color Constants The allowable range of values for colors is O up to but not including 140 Each color ranges from black to white over a scale of ten Thus the color red goes from black 10 to dark red 11 to red 15 to light red 19 to white
237. othness diffuse elevation 1 Experiment with the turtles performance in different terrains 50 Tutorial 3 Procedures NetLogo 2 1 0 User Manual We still haven t even begun to solve the problem of getting all the turtles to the highest elevation though So far we ve just been getting the turtles to the highest point that s near them If a turtle starts off in one corner of the world on a hill and there s a mountain in a different corner the turtle will never find the mountain To find the mountain the turtle would have to go down off the hill first but in our model turtles only move up Notice that the individual turtles don t use highest anywhere The turtles just look at elevations close to them and go the highest point they can see Before trying something else it d be nice if we could have some other more precise method for evaluating the turtles performance Fortunately NetLogo allows us to plot data as we go along To make plotting work we ll need to create a plot in the Interface tab and set some settings in it Then we ll add one more procedure to the Procedures tab which will update the plot for us Let s do the Procedures tab part first Change go to call the new procedure we re about to add to go move to local max do plots end Now add the new procedure What we re plotting is the number of turtles who ve reached our peak zone within 1 of the highest elevation at some given time to do plots set curr
238. ou can now watch the plot be created as the model is running If you notice that your plot doesn t look exactly like the picture below try to think about why it doesn t look the same If you think it s because go remains pressed until you manually unpress it we ll fix that problem by the end of the tutorial Remember that we kept Autoplot on This allows the plot to readjust itself when it runs out of room Tutorial 3 Procedures 51 NetLogo 2 1 0 User Manual Turtles at Peaks Pens You might try running the model several times under different settings i e different values of smoothness and watch how fast the plot converges to some value and what fraction of the turtles make it to the top You may want to even try the same settings several times Some More Details There are a few quirks you may already have noticed Here are some quick changes you can make First we have a green landscape a naturally green turtle is going to be hard to see In the ask turtles block in setup turtles you can say if shade of green color set color red Second instead of always using 100 turtles you can have a variable number of turtles Make a slider variable say number A e AA f Editing Slider Global Variable Ram Minimum 0 Increment 1 Maximum 99 Value 55 Units optional a Then inside of setup turtles instead of crt 100 you can type crt number How does using more or few
239. ow 0 1 0 1 0 1 observer 0 30000000000000004 O gt show cos 90 observer 6 123233995736766E 17 82 Programming Guide NetLogo 2 1 0 User Manual This is an inherent issue with floating point arithmetic it occurs in all programming languages that support floating point If you are dealing with fixed precision quantities for example dollars and cents a common technique is to use only integers cents internally then divide by 100 to get a result in dollars for display If you must use floating point numbers then in some situations you may need to replace a straightforward equality test suchas if x 1 with a test that tolerates slight imprecision for example if abs x 1 lt 0 0001 Also the precision primitive is handy for rounding off numbers for display purposes NetLogo monitors round the numbers they display to a configurable number of decimal places too Random Numbers The random numbers used by NetLogo are what is called pseudo random This is typical in computer programming That means they appear random but are in fact generated by a deterministic process Deterministic means that you get the same results every time if you start with the same random seed We ll explain in a minute what we mean by seed In the context of scientific modeling pseudo random numbers are actually desirable That s because it s important that a scientific experiment be reproducible so anyone can try it
240. ow sort by 1 gt 2 3 1 4 2 Primitives Dictionary 223 NetLogo 2 1 0 User Manual gt 4 3 2 1 show sort by length 1 lt length 22 zzz z zz gt tam agn taz Al sprout sprout lt BREED gt sprout number commands sprout lt BREED gt number commands Creates number new turtles on the current patch The new turtles have random colors and orientations and they immediately run commands This is useful for giving the new turtles different colors headings or whatever If the sprout lt BREED gt form is used the new turtles are created as members of the given breed sprout 1 set color red sprout sheep 1 set color black Note While the commands are running no other agents are allowed to run any code as with the without interruption command This ensures that the new turtles cannot interact with any other agents until they are fully initialized In addition no screen updates take place until the commands are done This ensures that the new turtles are never drawn on screen until they are fully initialized sqrt sqrt number Reports the square root of number stamp stamp color Sets the color of the patch under the turtle to the given color repeat 30 stamp yellow fd 3 rt 6 the turtle records its arched path contrast to the 5 effect of pen down standard deviation standard deviation list Reports the unbiased statistical standard deviation of a list of numbers Ig
241. parameter space for the model whose dimensions are the number of settings and in which every point is a particular combination of values Running a model with different settings and sometimes even the same ones can lead to drastically different behavior in the system being BehaviorSpace Guide 97 NetLogo 2 1 0 User Manual modeled So how are you to know which particular configuration of values or types of configurations will yield the kind of behavior you are interested in This amounts to the question of where in its huge multi dimension parameter space does your model perform best For example suppose you want speedy synchronization from the agents in the Fireflies model The model has four sliders number cycle length flash length and number flashes that have approximately 2000 100 10 and 3 possible values respectively That means there are 2000 100 10 3 600 000 possible combinations of slider values Trying combinations one at a time is hardly an efficient way to learn which one will evoke the speediest synchronization BehaviorSpace offers you a much better way to solve this problem If you specify a subset of values from the ranges of each slider it will run the model with each possible combination of those values and during each model run record the results In doing so it samples the model s parameter space not exhaustively but enough so that you will be able to see relationships form between different sliders and
242. participatory simulation tool called HubNet Through the use of networked computers or handheld devices such as Texas Instruments TI 83 calculators each student can control an agent in a simulation Follow_this link for more information NetLogo is the next generation of the series of multi agent modeling languages that started with StarLogo It builds off the functionality of our product_StarLogoT and adds significant new features and a redesigned language and user interface NetLogo is written in Java so it can run on all major platforms Mac Windows Linux et al It is run as a standalone application Individual models can be run as Java applets inside a web browser Features You can use the list below to help familiarize yourself with the features NetLogo has to offer e System Cross platform runs on MacOS Windows Linux et al Models can be saved as applets to be embedded in web pages e Language Fully programmable Simple language structure Language is Logo dialect extended to support agents and concurrency Unlimited numbers of agents and variables Many built in primitives Integer and double precision floating point math Runs are exactly reproducible cross platform e Environment Graphics display supports turtle shapes and sizes exact turile positions and turtle and patch labels 4 Interface builder w buttons sliders switches choosers monitors text boxes What is NetLogo 1 NetLogo 2 1 0 User Man
243. pasar isi artos 207 a REA ER ec et ata DOR E RE MOR A E CE PRENDE IDR alee ot aN ek tee ee AGR RREO 207 s Tao o A ASAS RU RP NARRA ADS PRATO DO ES E a REED RR RR Na 208 ca O 208 random exponential random gamma random normal random poisson 208 random int Or Tl di dd 209 A TN 210 random 0n8 0L 2828 net A A A a SE Ud ga a et Deda 210 FANGO MAS GCG ssa sen esa DES luana RS DE rd aa dede Da alo fadas Gels acusa nda Do Dina a Cao SER eh A 211 93d TOMS EO tias re E ia e ON RT AU ED 211 OQUE cs ied lethal Med ad 211 remanda cite AS ERR PDD NINE RDNS ae ant DEDE O esteem NR RENAS eee 212 FOMONVG fuer aden ccac Les iaidssL ea saca Aaea a ae aa eos aii LS LR ceed dante 213 remove QUpliCates ococcccccconcconoconcconononcnononnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnninnninnniss 213 TOMOVO AMA RE Sale NO RD E AR PO NR aii 213 A suado gro iad aeta chat E go a eA aU dE alate 213 replaced Mies ieee ec RFO E ar 214 ODOM orice RR RDNS REP NNE ER DER taeda RD ACD CD RD JE ER NEI tea 214 EE el NE 214 FOVEISO su ete cadet a A a oe dept a A eee A ae Es sos d 214 TED AR REA RD E ONE A A A Aira 215 PIQUE de E E E RS ER SER NR DEPRESSA E EE 215 fo JU 1 1 EEEE RR A RAE RR RES E SR RR RR ERR 215 RA 216 A sado e ala Sha a Gra da Mo DE god Gba a Di aa fe a Ca a 216 O och ca oia Se sa EEEE e era 216 SCAlE COlO Reiss RAS PR RR i a SS ae ON at a a DR 216 screen edge x SOTO el Veccccccocococooocono cnn nono nono nnnonnnnn
244. pecify colors the conventional way by specifying HSB hue saturation brightness or RGB red green blue values The hsb and rgb primitives let you do this extract hsb and extract hsb let you convert colors in the other direction Since the NetLogo color space doesn t include all hues hsb and rgb can t always give you the exact color you ask for but they try to come as close as possible Code Example You can use the HSB and RGB Example model to experiment with the HSB and RGB color systems Ask NetLogo uses the ask command to specify commands that are to be run by turtles or patches All code to be run by turtles must be located in a turtle context You can establish a turtle context in any of three ways e In a button by choosing Turtles from the popup menu Any code you put in the button will be run by all turtles e In the Command Center by choosing Turtles from the popup menu Any commands you enter will be run by all the turtles e By using ask turtles The same goes for patches and the observer except that code to be run by the observer must not be inside any ask Here s an example of the use of ask syntax in a NetLogo procedure to setup ca 72 Programming Guide NetLogo 2 1 0 User Manual crt 100 create 100 turtles ask turtles set color red turn them red rt random float 360 77 give them random headings fd 50 7 spread them around ask patches if pxcor gt 0 patches on the right side
245. points together e 1 bar mode the plot pen draws a bar of width plot pen interval with the point plotted as the upper or lower if you are plotting a negative number left corner of the bar e 2 point mode the plot pen draws a point at the point plotted Points are not connected The default mode for new pens is 0 line mode 220 Primitives Dictionary NetLogo 2 1 0 User Manual set plot x range set plot y range set plot x range min max set plot y range min max Sets the minimum and maximum values of the x or y axis of the current plot The change is temporary and is not saved with the model When the plot is cleared the ranges will revert to their default values as set in the plot s Edit dialog setxy setxy xy The turtle sets its x coordinate to x and its y coordinate to y Equivalent to set xcor x set ycor y except it happens in one time step instead of two setxy 0 0 7 turtle moves to the middle of the center patch shade of shade of color color2 Reports true if both colors are shades of one another false otherwise show shade of blue red gt false show shade of blue blue 1 gt true show shade of gray white gt true shape shape This is a built in turtle variable It holds a string that is the name of the turtle s current shape You can set this variable to change a turtle s shape New turtles have the shape default unless the a different shape has been specified using set
246. porters You must do two special things First use to report instead of to to begin your procedure Then in the body of the procedure use report to report the value you want to report to report absolute value number ifelse number gt 0 report number report 0 number end Variables Variables are places to store values such as numbers A variable can be a global variable a turtle variable or a patch variable If a variable is a global variable there is only one value for the variable and every agent can access Programming Guide 69 NetLogo 2 1 0 User Manual it But each turtle has its own value for every turtle variable and each patch has its own value for every patch variable Some variables are built into NetLogo For example all turtles have a color variable and all patches have a pcolor variable The patch variable begins with p so it doesn t get confused with the turtle variable If you set the variable the turtle or patch changes color See next section for details Other built in turtle variables including xcor ycor and heading Other built in patch variables include pxcor and pycor There is a complete list here You can also define your own variables You can make a global variable by adding a switch or a slider to your model or by using the globals keyword at the beginning of your code like this globals clock You can also define new turtle and patch variables using the
247. pty reports_nobody See also random one of or boolean or boolean2 Reports true if either boolean or boolean2 or both is true Note that if condition is true then condition will not be run since it can t affect the result 1f pxcor gt 0 or pycor gt 0 set pcolor red 7 patches turn red except in lower left quadrant other turtles here other BREED here other turtles here other BREED here k Reports an agentset consisting of all turtles on the calling turtle s patch not including the caller itself If a breed is specified only turtles with the given breed are included 7 suppose I am one of 10 turtles on the same patch show count other turtles her gt 9 200 Primitives Dictionary NetLogo 2 1 0 User Manual Example using breeds breeds cats dogs show count other dogs here 7 prints the number of dogs that are not me on my patch See also turtles here output print output show output type output write output print value output show value output type value output write value These commands are the same as the print show type and write commands except that value is printed in the model s output area instead of in the Command Center If the model does not have a separate output area then the Command Center is used P patch patch pxcor pycor Given two integers reports the single patch with the given pxcor and pycor The coordinates are the actual coordinates t
248. r output clear all plots clear all plots io Clears every plot in the model See_clear plot for more information clear graphics cg clear graphics ig Kills all turtles and clears all patches Combines the effect of clear turtles and clear patches clear output clear output Clears all text from the model s output area if it has one Otherwise does nothing clear patches cp 162 Primitives Dictionary NetLogo 2 1 0 User Manual clear patches is Clears the patches by resetting all patch variables to their default initial values including setting their color to black clear plot clear plot In the current plot only resets all plot pens deletes all temporary plot pens resets the plot to its default values for x range y range etc and resets all permanent plot pens to their default values The default values for the plot and for the permanent plot pens are set in the plot Edit dialog which is displayed when you edit the plot If there are no plot pens after deleting all temporary pens that is to say if there are no permanent plot pens a default plot pen will be created with the following initial settings e Pen down e Color black e Mode 0 line mode e Name default e Interval 1 0 See also_clear all plots clear turtles ct clear turtles w Kills all turtles See also_die color color This is a built in turtle variable It holds the color of the turtle You can set
249. rators 4 lt gt ls lt gt All of these operators take two inputs and all act as infix operators going between the two inputs as in standard mathematical use NetLogo correctly supports order of operations for infix operators The operators work as follows is addition is multiplication is subtraction is division is exponentiation lt is less than gt is greater than is equal to is not equal to lt is less than or equal gt is greater than or equal Note that the subtraction operator always takes two inputs unless you put parentheses around it in which case it can take one input For example to take the negative of x write x with the parentheses All of the comparison operators also work on strings and the addition operator also functions as a string concatenation operator see example below If you are not sure how NetLogo will interpret your code you should insert parentheses show 5 6 6 3 gt 32 show 5 6 6 3 gt 20 show tur tle gt turtle Primitives Dictionary 157 NetLogo 2 1 0 User Manual asin asin number Reports the arc sine inverse sine of the given number The input must be in the range 1 0 to 1 0 The result is in degrees and lies in the range 90 0 to 90 0 ask ask agentset commands ask agent commands Takes a list of commands that will be run by the specified agent or agentset ask t
250. re enabling you to see a landscape of colors denoting regions of high and low fitness that is sets of neighboring near black and near blue squares The landscape represents a 2 dimensional plane in the multi dimensional parameter space of the model since it accounts for all possible values of two sliders while the rest are held constant By changing the values of any constant sliders you are shifting that 2 D plane through the parameter space and by selecting new sliders to be the axes you are selecting a new plane entirely that is a plane through different dimensions e As you move your mouse over different squares in the grid the data from those runs will appear in the behavior plot to the left in addition to the line or curve that best fits the data if the add best fit line checkbox is selected e As your mouse passes over a square in the landscape information about the model run that square represents appears above the landscape This information consists of the value that each of the two selected sliders had during that run and the overall fitness of that run e The fitness of a run is an estimation of how good the run was according to the criteria you select in the menus listed above When the slope checkbox is selected fitness derives from the slope of the data as well as how well it fits a linear or exponential curve You can control the relative importance of these factors with the relative weight menu When the point statistic
251. re the new patch ahead primitive is now more appropriate E empty empty list empty string Reports true if the given list or string is empty false otherwise Note the empty list is written The empty string is written end end Used to conclude a procedure See to and to report Primitives Dictionary 169 NetLogo 2 1 0 User Manual error message error message Reports a string describing the error that was suppressed by carefully This reporter can only be used in the second block of a carefully command If this reporter is used anywhere else you get a runtime error See also carefully every every number commands Runs the given commands at most every number seconds By itself every doesn t make commands run over and over again You need to use every inside a loop or inside a forever button if you want the commands run over and over again every only limits how often the commands run More technically its exact behavior is as follows When an agent reaches an every it checks a timer to see if the given amount of time has passed since the last time the same agent ran the commands in the every in the same context If so it runs the commands otherwise they are skipped and execution continues Here in the same context means during the same ask or button press or command typed in the Command Center So it doesn t make sense to write ask turtles every 0 5 because when the ask finishe
252. res In NetLogo commands and reporters tell agents what to do Commands are actions for the agents to carry out Reporters carry out some operation and report a result either to a command or another reporter Commands and reporters built into NetLogo are called primitives The Primitives Dictionary has a complete list of built in commands and reporters Commands and reporters you define yourself are called procedures Each procedure has a name preceded by the keyword to The keyword end marks the end of the commands in the procedure Once you define a procedure you can use it elsewhere in your program Many commands and reporters take inputs values that the command or reporter uses in carrying out its actions Examples Here are two command procedures to setup ca clear the screen crt 10 make 10 new turtles end to go ask turtles Eta 1 all turtles move forward one step rt random 10 jj and turn a random amount lt random 10 end Note the use of semicolons to add comments to the program Comments make your program easier to read and understand In this program e setup and go are user defined commands e ca Clear all crt create turtles ask 1t left turn and rt right turn are all primitive commands e random and turt les are primitive reporters random takes a single number as an input and reports a random integer that is less than the input in this case between 0 and 9 68 Pr
253. riment with the setup and go buttons in the Wolf Sheep Predation model 22 Tutorial 1 Models NetLogo 2 1 0 User Manual Do you ever get different results if you run the model several times with the same settings Adjusting Settings Sliders and Switches The settings within a model give you an opportunity to work out different scenarios or hypotheses Altering the settings and then running the model to see how it reacts to those changes can give you a deeper understanding of the phenomena being modeled Switches and sliders give you access to a model s settings Here are the switches and sliders in Wolf Sheep Predation setup go 7 su Grass settings Sheep settings Wolf settings Let s experiment with their effect on the behavior of the model e Open Wolf Sheep Predation if it s not open already e Press setup and go and let the model run for about a 100 time ticks Note there is a readout of the number of ticks right above the plot e Stop the model by pressing the go button What happened to the sheep over time Let s take a look and see what would happen to the sheep if we change one of the settings e Turn the grass switch on e Press setup and go and let the model run for a similar amount of time as before What did this switch do to the model Was the outcome the same as your previous run Just like buttons switches have information attached to them
254. ring2 or false if it does not appear Note The positions are numbered beginning with 0 not with 1 7 suppose mylist is 2 7 4 7 Bob show position 7 mylist gt 1 show position 10 mylist gt false show position rin string gt 2 See also_member 206 Primitives Dictionary NetLogo 2 1 0 User Manual precision precision number places Reports number rounded to places decimal places If places is negative the rounding takes place to the left of the decimal point show precision 1 23456789 3 gt 1 235 show precision 3834 3 gt 4000 print print value Prints value in the Command Center followed by a carriage return The calling agent is not printed before the value unlike_show See also_show type and_write See also output print pxcor pycor pxcor pycor El These are built in patch variables They hold the x and y coordinate of the patch They are always integers You cannot set these variables because patches don t move pxcor is greater than or equal to screen edge x and less than or equal to screen edge x similarly for pycor and screen edge y All patch variables can be directly accessed by any turtle standing on the patch See also xcor ycor R Primitives Dictionary 207 NetLogo 2 1 0 User Manual random random number If number is positive reports a random integer greater than or equal to 0 but strictly less than number If number is negativ
255. roduct For example NetLogo includes APIs so that NetLogo can be controlled from external Java code and users can write new commands and reporters in Java See Controlling and Extensions in the User Manual FAQ Frequently Asked Questions 137 NetLogo 2 1 0 User Manual Do you offer any workshops or other training opportunities for NetLogo We offer workshops from time to time If a workshop has been scheduled we will announce it on the NetLogo home page and on the netlogo users group If interested in this type of opportunity please contact us at_feedback ccl northwestern edu What s the difference between StarLogo MacStarLogo StarLogoT and NetLogo The original StarLogo was developed at the MIT Media Lab in 1989 1990 and ran on a massively parallel supercomputer called the Connection Machine A few years later 1994 a simulated parallel version was developed for the Macintosh computer That version eventually became MacStarLogo StarLogoT 1997 developed at the Center for Connected Learning and Computer Based Modeling CCL is essentially an extended version of MacStarLogo with many additional features and capabilities Since then two multi platform Java based multi agent Logos have been developed NetLogo from the CCL and a Java based version of StarLogo from MIT The NetLogo language and environment differ in many respects from MIT StarLogo s Both languages were inspired by the original StarLogo but were redesigned
256. rompting you to input the appropriate information to be able to log into the Navigator system Once you press the Login button NetLogo will attempt to log you into the TI Navigator system and start HubNet If you successfully log into the Navigator system you will not be prompted by this dialog again as long as this session of NetLogo remains open HubNet Authoring Guide 109 NetLogo 2 1 0 User Manual If you are using Computer HubNet you will be prompted by a dialog asking for a unique name for your computer This is an optional identifier to help make servers discovered on the client more different and unique If you don t wish to enter a name just press the Cancel button hubnet set client interface client type client info If client type is TI 83 client info is a list containing two items The first item is a string containing the name of the activity to enable on the TI Navigator web site hubnet set client interface TI 83 notifies the user to enable this activity The second item is a list of the tags for which to check The tag list sets which variables NetLogo expects from the calculators NetLogo will only check for these variables and will ignore all others Currently the valid types that NetLogo will be able to receive from the calculator are the following 0 Valid calculator lists such as L1 or PLOTS 0 Valid calculator matrices such as A or B 0 Valid calculator strings such as Str1 or Str5 O Numbers such as A or B If c
257. ror messages that were displayed Contacting Us 15 16 NetLogo 2 1 0 User Manual Contacting Us Sample Model Party This activity is designed to get you thinking about computer modeling and how you can use it It also gives you some insight into the NetLogo software We encourage beginning users to start with this activity Ata Party Have you ever been at a party and noticed how people cluster in groups You may have also noticed that people do not stay within one group but move throughout the party As individuals move around the party the groups change If you watched these changes over time you would notice patterns forming For example in social settings people tend to exhibit different behavior than when they are at work or home Individuals who are confident within their work environment may become shy and timid at a social gathering And others who are quiet and reserved at work may be the party starter with friends The patterns may also depend on what kind of gathering it is In some settings people are trained to organize themselves into mixed groups for example party games or school like activities But in a non structured atmosphere people tend to group in a more random manner Is there any type of pattern to this kind of grouping Let s take a closer look at this question by using the computer to model human behavior at a party NetLogo s Party model looks specifically at the question of grouping by gen
258. rtle For turtles that do not have any particular breed this is the turtles agentset of all turtles You can set this variable to change a turtle s breed See also_breeds Example breeds cats dogs 7 turtle code if breed cats show meow set breed dogs show woof breeds breeds breed1 breed2 This keyword like the globals turtles own and patches own keywords can only be used at the beginning of a program before any function definitions It defines breeds and their associated agentsets Any turtle of the given breed e is part of the agentset named by the breed name e has its breed built in variable set to that agentset Most often the agentset is used in conjunction with ask to give commands to only the turtles of a particular breed The order in which breeds are declared is also the order in which they are drawn in the graphics window So breeds defined later will appear on top of breeds defined earlier breeds mice frogs to setup ca create mice 50 ask mice set color white create frogs 50 ask frogs set color green show breed of one of mic prints mice 160 Primitives Dictionary NetLogo 2 1 0 User Manual show breed of one of frogs 7 prints frogs end See also globals patches own turiles own lt BREED gt own create lt BREED gt create custom lt BREED gt lt BREED gt at lt BREED gt here but first bf but last bl but first list but first str
259. rtles are drawn as solid squares it takes less work for NetLogo to draw squares than special shapes so the model runs faster The display button freezes the display The model continues to run in the background and plots and monitors still update but if you want to see what s happening in the graphics window you need to unfreeze the display by turning the switch back on Most models run much faster when the display is frozen The size of the Graphics Window is determined by three separate settings Screen Edge X Screen Edge Y and Patch Size Let s take a look at what happens when we change the size of the Graphics Window in the Wolf Sheep Predation model e Experiment with the three sets of black arrows on the left of the control strip What happens the first time you press one of them What happens after that Try all three sets of arrows The arrows give you a convenient way of changing the number of patches in the world NetLogo can t change the number of patches without starting the model over from the beginning so that s why it warns you the first time you press an arrow 26 Tutorial 1 Models NetLogo 2 1 0 User Manual There are more graphics window settings than there s room for in the control strip The More button lets you get to the rest of the settings e Press the More button in the control strip A dialog box will open containing all the settings for the Graphics Window en Editing Graphics
260. run it once or twice each turtle goes to the highest elevation in a radius of one to move to local max ask turtles set heading uphill elevation if elevation of patch ahead 1 gt elevation fd 1 J end Now that you ve seen the uphill algorithm work in the model let s go through the new primitives involved If you haven t run the model yet since writing move to local max give it a try There are three new primitives here uphill of and patch ahead uphill elevation finds the heading to the patch with the highest value of elevation in the patches in a one patch radius of the turtle Then through the use of the command set heading the turtle sets its heading to that direction elevation of patch ahead 1 has each turtle look at the variable elevation in the patch on which the turtle would be if it went forward 1 If the test reports true the turtle moves itself forward 1 The test is necessary because if the turtle is already on the peak we don t want it to move off it Go ahead and type that in but before you test it out by pressing the go button ask yourself this question what do you think will happen Try and predict how a turtle will move where it will go and how long it ll take to get there When you re all set press the button and see for yourself Surprised Try to understand why the turtles converge to their peaks so quickly Maybe you don t believe the algorithm we ve chosen wor
261. runs in the same amount of time as forward 1 Note When turtles jump they do not step on any of the patches along their path L label label This is a built in turtle variable It may hold a value of any type The turtle appears in the graphics window with the given value attached to it as text You can set this variable to add change or remove a turile s label See also no label label color plabel plabel color Example ask turtles set label who all the turtles now are labeled with their id numbers ask turtles set label no label all turtles now are not labeled label color label color This is a built in turtle variable It holds a number greater than or equal to O and less than 140 This number determines what color the turtle s label appears in if it has a label You can set this variable to change the color of a turtle s label See also no label label plabel plabel color Example ask turtles set label color red Primitives Dictionary 189 NetLogo 2 1 0 User Manual all the turtles now have red labels last last list last string On a list reports the last item in the list On a string reports a one character string containing only the last character of the original string left It left number The turtle turns left by number degrees If number is negative it turns right length length list length string Reports the number of items in the
262. ry c foo fish show word directory bar txt gt c foo fish bar txt show word 1 54 8 fishy gt 1 54 8 fishy show word a b c 1 23 gt abcl23 wrap color wrap color number wrap color checks whether number is in the NetLogo color range of O to 140 not including 140 itself If it is not wrap color wraps the numeric input to the O to 140 range The wrapping is done by repeatedly adding or subtracting 140 from the given number until it is in the 0 to 140 range This is the same wrapping that is done automatically if you assign an out of range number to the color turtle variable or pcolor patch variable show wrap color 150 gt 10 236 Primitives Dictionary NetLogo 2 1 0 User Manual show wrap color 10 gt 130 write write value This command will output value which can be a number string list boolean or nobody to the Command Center not followed by a carriage return unlike print and show The calling agent is not printed before the value unlike show Its output will also includes quotes around strings and is prepended with a space write hello world gt hello world See also print show and type See also output write X xcor xcor This is a built in turtle variable It holds the current x coordinate of the turtle This is a floating point number not an integer You can set this variable to change the turtle s location This variable is always greater
263. s NetLogo extensions have names that end in jar short for Java Archive To use an extension in a model add the __ extensions keyword at the beginning of the Procedures tab before declaring any breeds or variables The keyword begins with two underscores to indicate that it is experimental In a future NetLogo version it may have a different name and syntax __ extensions takes one input a list of strings Each string contains the name of a NetLogo extension For example extensions sound jar NetLogo will look for extensions in two places the directory that holds the model and the NetLogo extensions folder So to install a NetLogo extension for use by any model put the extension file for example sound jar in the extensions directory inside the NetLogo directory Or you can just keep the extension in the same folder as the model that uses it You can also use extensions that are not installed in your NetLogo extensions folder by providing a path relative to the directory that contains the model or an absolute path __ extensions lib sound jar 7 relative path _ extensions jars sound jar relative path extensions c myfiles sound jar absolute Windows path extensions Users me sound jar absolute Mac Unix path You may also use an extension which is stored on an Internet server instead of your local computer Extensions Guide 119 NetLogo 2 1 0 User Manual Just
264. s ask turtlesor ask patches An ask doesn t complete until all of the agents have finished running all of the commands in the ask So the agents as they all run the commands concurrently can be out of sync with each other but they all sync up again at the end of the ask The same isn t true of turtle and patch forever buttons Since ask was not used each turtle or patch runs the given code over and over again so they can become and remain out of sync with each other At present this capability is very rarely used in the models in our Models Library A model that does use the capability is the Termites model in the Biology section of Sample Models The go button is a turtle forever button so each termite proceeds independently of every other termite and the observer is not involved at all This means that if for example you wanted to add a plot to the model you would need to add a second forever button an observer forever button and run both forever buttons at the same time At present NetLogo has no way for one forever button to start another Buttons are only started when you press them Programming Guide 77 NetLogo 2 1 0 User Manual Synchronization In both StarLogoT and NetLogo commands are executed asynchronously each turtle or patch does its list of commands as fast as it can In StarLogoT one could make the turtles line up by putting in a comma At that point the turtles would wait until all were finished b
265. s can be selected moved reordered reshaped flipped rotated and deleted new snap to grid feature you can now copy an image of the graphics window a plot or the whole interface tab o gt What s New 7 NetLogo 2 1 0 User Manual to the clipboard by right clicking control clicking on Macs on the item and choosing Copy BehaviorSpace now supports doing multiple trials of each combination of settings e language changes the order you declare breeds in the Procedures tab now determines their layering order in the graphics window added new movie primitives movie start movie grab graphics movie grab interface movie set framerate movie status movie cancel export movie added new let command which you should use instead of locals it is better than locals because you can use it anywhere even inside an ask not only at the top of a procedure added new output print output show output type and output write commands for directing output to an output area instead of the command center added new hat ch BREED and sprout BREED commands for making new turtles of a desired breed added new carefully command and error message reporter so you can trap and handle runtime errors added new shapes reporter added new subtract headings reporter added new sublist reporter added new beep command added new with min and with max reporters which are like min one of and max one of but permit ties 4 min one of and max one of
266. s connected by a regular computer network In_Calculator HubNet created in conjunction with Texas Instruments participants use Tl 83 graphing calculators as clients which communicate via the Tl Navigator system We hope to add support for other types of clients such as cell phones and PDA s Personal Digital Assistants HubNet Guide 103 NetLogo 2 1 0 User Manual Computer HubNet Activities The following activities are available in the Models Library in the Computer HubNet Activities folder For many models you will find a discussion of its educational goals and suggested ways to incorporate it into your classroom in the Participatory Simulations Guide on the Participatory Simulations Project web site More information can also be found in the Information Tab in each model e Disease A disease spreads through the simulated population of students e Gridlock Students use traffic lights to control the flow of traffic through a city e Polling Ask students questions and plot their answers e Tragedy of the Commons Students work as farmers sharing a common resource Requirements To use Computer HubNet you need a networked computer with NetLogo installed for the activity leader and a networked computer with NetLogo installed for each participant We also suggest an attached projector for the leader to project the entire simulation to the participants Starting an activity You ll find the HubNet activitie
267. s does not affect the value of the sliders on the main interface e The only values the sliders can take are those that they actually had in the experiment Behavior plot Displays the data from individual runs as you move the mouse over their corresponding squares on the fitness landscape It s x axis is time clicks and its y axis is behavior that is the value reported by the behavior reporter entered in the setup window e The best fit line or curve can be added along with the data if the add best fit line checkbox is selected e Run data can be continually collected in the plot and superimposed on each other by selecting the superimpose plots checkbox e Only 14 plot pen colors are used so if more than 14 data sets are superimposed at a single time the system will begin reusing colors for the new pens e Automatically scales to show all data Add best fit line checkbox Adds the line or exponential curve that best fits the data to the behavior plot depending on whether linear or exponential was selected in the slope type menu Superimpose plots checkbox Stops old data from being removed from the behavior plot when new data is added resulting in increasing sets of data being superimposed on each other Unselected the checkbox causes all data to be removed Export Plot button Saves the data currently being displayed in the behavior plot to a file Export Behavior Data button Saves the behavior data gathered during all of
268. s in NetLogo s Models Library in the OO Start HubNet Activity HubNet Computer Activities folder We suggest doing a few practice oo CE runs of an activity before trying it in front of a class Y Broadcast server location experimental Esa Open a Computer HubNet model NetLogo will prompt you to enter the name of your new HubNet session This is the name that participants will use to identify this activity Enter a name and press Start NetLogo will open the HubNet Control Center which lets you interact with the HubNet server In each activity you ll see a box on the screen labeled QuickStart Instructions This contains step by step instructions to run the activity Click the Next gt gt gt button to advance to the next instruction You as the leader should then notify everyone that they may join To join the activity participants launch the HubNet Client application and enter their name They should see your activity listed and can join your activity by selecting it and pressing Enter HubNet Control Center 104 HubNet Guide NetLogo 2 1 0 User Manual see Habet Conto Center The HubNet Control Center lets you interact with the HubNet server A Ne It displays the name activity address and port number of your server The Mirror graphics checkbox control whether the HubNet Sn os participants can see the graphics window on their clients The Mirror plots checkbox control whether participants will receive plot inform
269. s the turtles will all discard their timers for the every The correct usage is shown below every 0 5 ask turtles fd 1 7 twice a second the turtles will move forward 1 every 2 set index index 1 7 every 2 seconds index is incremented See also_wait exp exp number Reports the value of e raised to the number power Note This is the same as e number 170 Primitives Dictionary NetLogo 2 1 0 User Manual export graphics export interface export output export plot export all plots export world export graphics filename export interface filename export output filename export plot plotname filename export all plots filename export world filename export graphics writes the current contents of the graphics window to an external file given by the string filename The file is saved in PNG Portable Network Graphics format so it is recommended to supply a filename ending in png export interface is similar but for the whole interface tab not just the graphics window export output writes the contents of the model s output area to an external file given by the string filename If the model does not have a separate output area the output portion of the Command Center is used export output writes the contents of the output portion of the Command Center to an external file given by the string filename export plot writes the x and y values of all points plotted by all the plot pens in the plot given
270. sas ima cair A A RSS Na aaa 73 BreeaS A mos ek eke cede EE De Ade ni it LDO et Ak E oot a oad ED A anda aa 75 BUONS NR 76 SIMCO ZO ae 78 EA ROA 78 Mai A A A e O DA SA dl no A A A 81 Random NuMberS lt a is 83 TUE SHADES ia A A 84 PO AAA A AA E DU a a 84 TEO OPT 87 NetLogo 2 1 0 User Manual Table of Contents Programming Guide Output ace O 88 PISO surfe dp a piada Gp Ta ada cod a aa 89 MOVIES Aa ema A A E E T AS DA AREA A A O da 90 Shapes Editor Guide ia 93 CAB TE ICES A SN hte uiy 93 Creating and Editing ShApes cccccoooooconnccnccononanonnncnnnnnnnnnnnnonnnnnnnnncnnnnnnn nn nnnnnncrinnnarnnrrnnnnnnn 93 E E A TREN RAS 93 PLOMO WS A et A ee 93 Overlapping NAPO etarra 94 Lindos aro A A AA dl do o IA a A A pi 94 Co a E a AS 94 Shape DOS oda 94 SAM NAO a A DD ETTR 94 IMPORTO NADOS ad aia od 94 Using shapes in a Model coi 94 Behavior Space Guide iii A li AR alle UE 97 BehaviorSpace Old and NOW ccooocoocccccccccnonoooonncnnnnncccnnnnnnnonnnnnnncnnnnnnnnrnrrnnnnnnnnnnnnnnnnnnnnncnnnnnns 97 Whatis BehaviorSpacs aran dada 97 HOWIE WORS enea aa A ed A ae Tendo Ta catia 98 Setting upan OPONEN a AS ed neers 98 NAS A 99 CONCIUSION 2 Loli Me 100 Hubb Net Gide ui vce ti abe tcacdatavectues eaacedeh sydiacae ta cucetuleeshudisc sdssudaatetubeeostesvetousseligeces 103 Understanding HubNet eee 103 N th OOO votando ai de 103 HubNet Architecture ss ore o E A A kes 103 Computer HUNT A a 104 ACUM tene do 104 Required
271. sion of NetLogo we plan to support this Programming How is the NetLogo language different from the StarLogoT language How do convert my StarLogoT model to NetLogo FAQ Frequently Asked Questions 145 NetLogo 2 1 0 User Manual We don t have a document that specifically summarizes the differences between these two programs If you have built models in StarLogoT before then we suggest reading the Programming Guide section of this manual to learn about NetLogo particularly the sections on Ask and Agentsets Looking at some of the sample models and code examples in the Models Library may help as well NetLogo 1 3 1 includes a StarLogoT model converter you just open the model from the File menu and NetLogo will attempt to convert it The converter doesn t do all that great a job though so the result will very likely require additional changes before it will work Note also that the model converter is no longer included in current versions of NetLogo so if you have models you want to use it on you will have to use NetLogo 1 3 1 to do the converting then open the model in a current version If you need any help converting your StarLogo or StarLogoT model to NetLogo please feel free to get in touch with us at feedback ccl northwestern edu The NetLogo Users Group is also a good resource for getting help from other users How does the NetLogo language differ from other Logos There is no standard definition of Logo it is a loose
272. sky U year Name of Model URL of model Center for Connected Learning and Computer Based Modeling Northwestern University Evanston IL To determine the URL for a model visit our web based version of the Models Library and click on the name of the model An example model URL is http ccl northwestern edu netlogo models PepperedMoths To determine the year open the model from the NetLogo application and look in the copyright information at the bottom of the Procedures tab What license is NetLogo released under Are there are any legal restrictions on use redistribution etc The license is given in the Copyright section of the NetLogo User Manual as well as in the application s about box and the README file accompanying the download A quick summary of the license is that use is unrestricted including commercial use but there are some restrictions on redistribution and or modification unless you contact Uri Wilensky to arrange different terms We are in the process of reevaluating the language of the license in response to user feedback In the future we intend to send out a revised license Is the source code to NetLogo available At present no We are evaluating how best to distribute NetLogo when it is in a more mature state Making the source available is one possibility We do understand however that it is important that NetLogo not be a closed and non extensible platform That is not our intention for the p
273. st list first string On a list reports the first Oth item in the list On a string reports a one character string containing only the first character of the original string floor floor number Reports the largest integer less than or equal to number show floor 4 5 gt 4 show floor 4 5 gt 5 foreach foreach list commands foreach list listn commands With a single list runs commands for each item of list In commands use to refer to the current item of ist foreach 1 1 2 2 2 61 show gt round Selig Sell gt 2 2 gt 2 gt 2 6 gt 3 Primitives Dictionary 177 NetLogo 2 1 0 User Manual With multiple lists runs commands for each group of items from each list So they are run once for the first items once for the second items and so on All the lists must be the same length In commands use 1 through 2n to refer to the current item of each list Some examples make this clearer foreach 1 2 3 2 4 6 show the sum is 21 2 J gt the sum is 3 gt the sum is 6 gt the sum is 9 foreach list turtle 1 turtle 2 3 4 ask 1 fd 2 7 turtle 1 moves forward 3 patches 7 turtle 2 moves forward 4 patches See also_map _ forward fd forward number The turtle moves forward by number steps If number is negative the turtle moves backward Turtles using this primitive can move a maximum of one unit per t
274. support this more directly in a future version of NetLogo How does NetLogo decide when to switch from agent to agent when running code If you ask turtles or ask a whole breed the turtles are scheduled for execution in ascending order by ID number If you ask patches the patches are scheduled for execution by row left to right within each row and starting with the top row If you ask a different agentset besides the set of all turtles or patches or a breed then the execution order will vary according to how the agentset was constructed The execution order is chosen deterministically and reproducibly though and will remain the same if you ask the same agentset multiple times In a future version of NetLogo we plan to add an option for randomized scheduling Once scheduled an agent s turn ends only once it performs an action that affects the state of the world such as moving or creating a turtle or changing the value of a global turtle or patch variable Setting a local variable doesn t count To prolong an agent s turn use the without interruption command The command blocks inside some commands such as cct and hat ch have an implied without interruption around them NetLogo s scheduling mechanism is completely deterministic Given the same code and the same initial conditions the same thing will always happen if you are using the same version of NetLogo In general we suggest you write your NetLogo code s
275. t the plot pen to bar mode yourself As we said before you can change a pen s default mode by editing the plot in the Interface tab The width of the bars in a histogram is controlled by the plot pen s interval You can set a plot pen s default interval by editing the plot in the Interface tab You can also change the interval temporarily with the set plot pen interval command or the set histogram num bars If you use the latter command NetLogo will set the interval appropriately so as to fit the specified number of bars within the plot s current x range Code Example Histogram Example Clearing and resetting You can clear the current plot with the clear plot command or clear every plot in your model with clear all plots The clear a11 command also clears all plots in addition to clearing everything else in your model If you only want to remove only the points that the current plot pen has drawn use plot pen reset 86 Programming Guide NetLogo 2 1 0 User Manual When a whole plot is cleared or when a pen is reset that doesn t just remove the data that has been plotted It also restores the plot or pen to its default settings as they were specified in the Interface tab when the plot was created or last edited Therefore the effects of such commands as set plot x range and set plot pen color are only temporary Autoplotting By default all NetLogo plots have the autoplotting feature enabled This means that if the
276. t will be used to begin each model run Typically you will enter the name of a procedure that sets up the model typically setup But it is also possible to include other commands as well Step model with these commands This is where you enter the commands that will be run to advance to the model to the next step Typically this will be the name of a procedure such as go but you may include any commands you like Stop after this many steps This lets you set a maximum length for each run If you don t want to set any maximum but want the length of runs to be controlled by the next setting setting instead enter 0 Stop if this reporter becomes true This lets you do model runs of varying length ending each model run when a certain condition becomes true For example suppose you wanted each run to last until there were no more turtles Then you would enter not any turtles If you want the length of runs to all be of a fixed length enter false here Running an experiment When you re done setting up your experiment press the OK button followed by the Run BehaviorSpace Guide 99 NetLogo 2 1 0 User Manual Experiment button A window will appear titled Running Experiment In this window you ll see a progress report of how many runs have been completed so far and how much time has passed If the reporter you entered for Measure runs using this reporter reports a number then you ll see a plot of how that number v
277. than or equal to screen edge x and strictly less than screen edge x See also setxy ycor pxcor pycor xor boolean xor boolean2 Reports true if either boolean or boolean2 is true but not when both are true if pxcor gt 0 xor pycor gt 0 set pcolor blue 7 upper left and lower right quadrants turn blue Y Primitives Dictionary 237 NetLogo 2 1 0 User Manual ycor ycor This is a built in turtle variable It holds the current y coordinate of the turtle This is a floating point number not an integer You can set this variable to change the turtle s location This variable is always greater than or equal to screen edge y and strictly less than screen edge y See also_setxy xcor pxcor pycor 2 91 2 a These are special local variables They hold the current inputs to a reporter or command block for certain primitives for example the current item of a list being visited by foreach or map is always equivalent to 21 You may not set these variables and you may not use them except with certain primitives currently foreach map reduce filter sort by and n values See those entries for example usage 238 Primitives Dictionary
278. than other agents while any other turtles here fd 1 77 turtle moves until it finds a patch that has 7 no other turtles on it who who k This is a built in turtle variable It holds the turtle s id number an integer greater than or equal to zero You cannot set this variable a turtle s id number never changes When NetLogo starts or after you use the_clear all or_clear turtles commands new turtles are created with ids in order starting at 0 If a turtle dies though a new turtle may eventually be 234 Primitives Dictionary NetLogo 2 1 0 User Manual assigned the same id number that was used by the dead turile Example show values from turtles with color red who 7 prints a list of the id numbers of all red turtles in the Command Center ca cet 100 ifelse who lt 50 set color red set color blue turtles 0 through 49 are red turtles 50 through 99 are blue You can use the turtle reporter to retrieve a turtle with a given id number See also turtle with agentset with reporter Takes two inputs on the left an agentset usually turtles or patches On the right a boolean reporter Reports a new agentset containing only those agents that reported true in other words the agents satisfying the given condition show count patches with pcolor red 7 prints the number of red patches with max agentset with max reporter Takes two inputs on th
279. the NetLogo interface in order and explains its function For a detailed description and specifics about writing procedures refer to the NetLogo Programming Guide Also You can continue with this model if you d like experimenting with different variables and algorithms to see what works the best what makes the most turtles reach the peaks Alternatively you can look at other models including the many models in the Code Examples section of the Models Library or even go ahead and build your own model You don t even have to model anything It can be pleasant just to watch patches and turtles forming patterns or whatever Hopefully you will have learned a few things both in terms of syntax and general methodology for model building The entire code that was created above is shown below Tutorial 3 Procedures 53 NetLogo 2 1 0 User Manual Appendix Complete Code The complete model is also available in NetLogo s Models Library in the Code Examples section It s called Tutorial 3 patches own elevation 7 elevation of the patch globals highest 7 Maximum patch elevation lowest turtles moved 7 minimum patch elevation 77 so we know when to stop the model 7 We also have two slider variables number and 7 smoothness number determines the number of 7 turtles and smoothness determines how erratic terrain becomes during diffusion of elevation 7 resets everything to setup ca set
280. the behavior of the system After all the runs are over a dataset is generated which you can open in a different tool such as a spreadsheet or scientific visualization application and explore The idea behind BehaviorSpace is that the way to truly understand a model is to run it multiple times with different parameter slider settings in order to see the whole range of behaviors the system is capable of producing Only then is it possible to investigate when and why certain behaviors arise Isolated trials are insufficient for this purpose because you have no reason to assume that the model will always demonstrate the particular behaviors you see It s like eating in one restaurant in New York and then claiming you ve seen all that the city has to offer By enabling you to explore the entire parameter space of a model and thus its entire space of behaviors BehaviorSpace can be a powerful tool for model understanding How It Works To begin using BehaviorSpace open your model then choose the BehaviorSpace item on NetLogo s Tools menu A small window will appear containing Edit Experiment Setup and Run Experiment buttons Press Edit Experiment Setup to begin setting up your experiment Setting up an experiment In the dialog that appears you ll need to specify the following information Vary variables as follows This is where you specify which settings you want varied and what values you want them to take Settings can be sliders sw
281. the circle and atan would be defined accordingly show atan 1 1 gt 135 0 show atan 1 1 gt 315 0 autoplot autoplot Reports true if auto plotting is on for the current plot false otherwise auto plot off auto plot on auto plot off auto plot on This pair of commands is used to control the NetLogo feature of auto plotting in the current plot Auto plotting will automatically update the x and y axes of the plot whenever the current pen exceeds these boundaries It is useful when wanting to display all plotted values in the current plot regardless of the current plot ranges B back bk back number The turtle moves backward by number steps If number is negative the turtle moves forward Turtles using this primitive can move a maximum of one unit per time increment So bk 0 5 and bk 1 both take one unit of time but bk 3 takes three See also forward jump beep beep Emits a beep Note that the beep is emitted immediately so several beep commands in succession will only produce a single audible sound Example Primitives Dictionary 159 NetLogo 2 1 0 User Manual beep 77 emits one beep repeat 3 beep 77 emits 3 beeps at the exact same time 7 so you only hear one sound repeat 3 beep wait 0 1 produces 3 beeps in succession 7 seperated by 1 10th of a second breed breed k This is a built in turtle variable It holds the agentset of all turtles of the same breed as this tu
282. then make them visible to the user all at once Two your model will run faster when graphics updating is off so if you re in a hurry this command will let you get results faster Note that normally you don t need to use no display for this since you can also use the on off switch in graphics window control strip to freeze the display Note that display and no display operate independently of the switch in the graphics window control strip that freezes the display See also display no label no label This is a special value used to remove labels from turtles and patches When you set a turtle s label to no label or a patch s plabel to no label then a label will no longer be drawn on top of the turtle or patch See also label label color plabel plabel color 198 Primitives Dictionary NetLogo 2 1 0 User Manual nobody nobody This is a special value which some primitives such as turtle random one of max one of etc report to indicate that no agent was found Also when a turtle dies it becomes equal to nobody Note Empty agentsets are not equal to nobody If you want to test for an empty agentset use any You only get nobody back in situations where you were expecting a single agent not a whole agentset set other random one of other turtles her 1f other nobody set color of other red not not boolean Reports true if boolean is false otherwise reports false if not color blue fd 10 all
283. therwise reports false For a string reports true or false depending on whether string1 appears anywhere inside string2 as a substring show member 2 1 2 3 gt true show member 4 1 2 3 gt false show member rin string gt true Primitives Dictionary 193 NetLogo 2 1 0 User Manual See also position min min list Reports the minimum number value in the list It ignores other types of items show min values from turtles xcor 7 prints the lowest x coordinate of all the turtles min one of min one of agentset reporter Reports a random agent in the agentset that reports the lowest value for the given reporter If there is a tie this command returns on random agent that meets the condition If you want all such agents use with min instead show min one of turtles xcor ycor 7 reports the first turtle with the smallest sum of 7 coordinates See also with min mod number1 mod number2 Reports number modulo number2 that is the residue of number mod number2 mod is is equivalent to the following NetLogo code numberl floor numberl number2 number2 Note that mod is infix that is it comes between its two inputs show 62 mod 5 gt 2 show 8 mod 3 gt 1 See also remainder mod and remainder behave the same for positive numbers but differently for negative numbers modes modes list Reports a list of the most common item or items in list The input list may contain
284. tles patches and the observer Refer to the Interface Guide for details explaining the different parts of the Command Center Tutorial 2 Commands 31 NetLogo 2 1 0 User Manual In Traffic Basic e Press the setup button e Locate the Command Center e Click the mouse in the white box at the bottom of the Command Center e Type the text shown here Command Center Cleai o gt ask patches set pcolor yellow e Press the return key What happened to the Graphics Window You may have noticed the background of the Graphics Window has turned all yellow and the street has disappeared Why didn t the cars turn yellow too Looking back at the command that was written we asked only the patches to change their color In this model the cars are represented by a different kind of agent called turtles Therefore the cars did not received these instructions and thus did not change What happened in the Command Center You may have noticed that the command you just typed is now displayed in the white box in the middle of the Command Center as shown below Command Center Clear O gt ask patches set pcolor yellow e Type in the white box at the bottom of the Command Center the text shown below Command Center Clear O gt ask patches set pcolor yellow o gt ask turtles set color brown 32 Tutorial 2 Commands NetLogo 2 1 0 User Manual Was the result wh
285. to run commands You can use the commands to give the new turtles different colors headings or whatever If the hatch lt BREED gt form is used the new turtles are created as members of the given breed Otherwise the new turtles are the same breed as their parent Note While the commands are running no other agents are allowed to run any code as with the without interruption command This ensures that the new turtles cannot interact with any other agents until they are fully initialized In addition no screen updates take place until the commands are done This ensures that the new turtles are never drawn on screen in an only partly initialized state hatch 1 1t 45 fd 2 7 this turtle creates one new turtle 7 and the child turns and moves away hatch sheep 1 set color black 7 this turtle creates a new turtle 7 Of the sheep breed heading heading x Primitives Dictionary 179 NetLogo 2 1 0 User Manual This is a built in turtle variable It indicates the direction the turtle is facing This is a number greater than or equal to O and less than 360 0 is north 90 is east and so on You can set this variable to make a turtle turn See also right left dx dy Example set heading 45 5 turtle is now facing northeast set heading heading 10 same effect as rt 10 hidden hidden dk This is a built in turtle variable It holds a boolean true or false value indicating whether the turtle is
286. tor with Calculator HubNet which we expect to release in the near future For more information on HubNet see the HubNet Guide Can run a NetLogo model from the command line Can run it without a GUI Yes this is supported via a Java API Some light Java programming is required See the Controlling section of the User Manual for details Can I have more than one model open at a time One instance of NetLogo can only have one model open at a time We plan to change this ina future version You can have multiple models open by opening multiple instances of NetLogo though On Windows and Linux simply start the application again On Macs you ll need to duplicate the application in the Finder then open the copy This will use only a very small amount of additional disk space since most of NetLogo is actually in the NetLogo jar file which is stored outside the application bundle Can save the contents of the graphics window Of the interface tab Yes using Export Graphics on the File menu or by right clicking on Mac control clicking the graphics window or using the export graphics command 144 FAQ Frequently Asked Questions NetLogo 2 1 0 User Manual You can also use Export Interface or the export interface command to save an image of the entire interface tab Can make a movie of my model Yes See the Movie section of the Programming Guide Also see Movie Example in the Code Examples sectio
287. toy with the values being passed to it and see what happens We re now prepared to create some kind of dialog between the turtles and the patches In fact we even have an idea for a project here Notice that we called the patch variable elevation and that our landscape sort of looks topographical We re going to have our turtles do what is called hill climbing where every turtle seeks to find the highest elevation it can In order to do this we will learn how to write more complex instructions Go to the Command Center and type O gt show max values from patches elevation and show min values from patches elevation These two reporters will respectively search over all the patches to return to you the highest elevation and the lowest These commands work like this you can read about them in the NetLogo Primitives Dictionary Look up values from in the dictionary It shows values from AGENTSET expression and says it returns a list In this case it looks at the expression elevation for each agent in the agentset patches and returns all of these as a list of elevations Look up min in the dictionary It shows min list and says it s a reporter So it takes the list of elevations and reports the smallest value Show displays this value in the command center We will use these reporters max values from patches elevation and min values from patches elevation in our model Just in case we end
288. try for details and examples The_values from primitive lets you construct a list from an agentset It reports a list containing each agent s value for the given reporter The reporter could be a simple variable name or a more complex expression even a call to a procedure defined using to report A common idiom is max values from turtles sum values from turtles and so on You can combine two or more lists using the_sentence reporter which concatenates lists by combining their contents into a single larger list Like list sentence normally takes two inputs but can accept any number of inputs if the call is surrounded by parentheses Changing List Items Technically only one command changes a list set This is used in conjunction with reporters For example to change the third item of a list to 10 you could use the following code set mylist 2 7 5 Bob 3 0 2 mylist is now 2 7 5 Bob 3 0 2 set mylist replace item 2 mylist 10 mylist is now 2 7 10 Bob 3 0 2 The replace item reporter takes three inputs The first input specifies which item in the list is to be changed 0 means the first item 1 means the second item and so forth To add an item say 42 to the end of a list use the 1put reporter fput adds an item to the beginning of a list Programming Guide 79 NetLogo 2 1 0 User Manual set mylist lput 42 mylist mylist is now 2 7 10 Bob 3 0 2 42 But what if you chang
289. ts You can make a list by simply putting the values you want in the list between brackets like this set mylist 2 4 6 8 Note that the individual values are separated by spaces You can make lists that contains numbers and strings this way as well as lists within lists for example 2 4 3 51 1 The empty list is written by putting nothing between the brackets like this 78 Programming Guide NetLogo 2 1 0 User Manual Building Lists on the Fly If you want to make a list in which the values are determined by reporters as opposed to being a series of constants use the List reporter The 1i st reporter accepts two other reporters runs them and reports the results as a list If wanted a list to contain two random values might use the following code set random list list random 10 random 20 This will set random 1i st to a new list of two random integers each time it runs To make longer lists you can use the list reporter with more than two inputs but in order to do so you must enclose the entire call in parentheses like this list 1 2 3 4 5 For more information see_Varying Numbers of Inputs Some kinds of lists are most easily built using the n values reporter which allows you to construct a list of a specific length by repeatedly running a given reporter You can make a list of the same value repeated or all the numbers in a range or a lot of random numbers or many other possibilities See dictionary en
290. tup turtles to setup turtles crt 100 ask turtles fd random screen edge x end Setup turtles is exactly what we were doing in the old setup procedure After typing all of this in press the setup button back in the Interface tab Voila A lush NetLogo landscape complete with turtles and green patches appears After seeing the new setup work a few times you may find it helpful to read through the procedure definitions again Here s a way for you to see what diffuse does Return to the Procedures tab and use a semicolon to deactivate the diffuse command like this diffuse elevation 1 Semicolons are very useful in writing procedures They can be used as above to save you from having to delete code to try something else out and then having to rewrite them Also they can be used to add some explanatory text to your procedures A lot of people like to do this to make their procedures more readable to others Notice that all the text to the right of a semicolon becomes gray 46 Tutorial 3 Procedures NetLogo 2 1 0 User Manual Press setup again looks different doesn t it This is because as mentioned above diffuse has each patch share its value of elevation with all its neighbors by having every patch reset its value of elevation to a new value that depends on the value of elevation all around it For further explanation of how diffuse works go to the Primitives Dictionary if you d like Also it may help to
291. u can also open a turtle monitor via the Graphics Window see the Graphics Window section below Patch Monitor Displays the values of all of the variables in a particular patch ou can can also edit the values of the patch s variables and issue commands to the patch You can also open a patch monitor via the Graphics Window see the Graphics Window section below Hide Show Command Makes the command center visible or invisible Note that the Center ommand center can also be shown or hidden or resized with i turtle shapes See the Shapes Editor Guide for more information PRA ee the model over and over with different settings See the BehaviorSpace Guide for more information HubNet Control Center al 8 Interface Guide NetLogo 2 1 0 User Manual Disabled if no HubNet activity is open See the HubNet Guide or more information Increase the overall screen size of the model Useful on large monitors or when using a projector in front of a group Normal Size Reset the screen size of the model to the normal size Smaller Decrease the overall screen size of the model his menu offers keyboard shortcuts for each of the tabs On Macs it s Command 1 through Command 4 On Window it s Control 1 through Control 4 Main Window At the top of NetLogo s main window are four tabs labeled Interface Information Procedures and Errors Only one tab at a time can be visible but you can switch between them by cl
292. ual Control strip including speed slider Powerful and flexible plotting system Info area for annotating your model HubNet participatory simulations using networked devices Agent monitors for inspecting and controlling agents BehaviorSpace tool used to collect data from multiple runs of a model Export and import functions export data save and restore state of model What is NetLogo Copyright Information Copyright 1999 by Uri Wilensky All rights reserved The NetLogo software models and documentation are distributed free of charge for use by the public to explore and construct models Permission to copy or modify the NetLogo software models and documentation for educational and research purposes only and without fee is hereby granted provided that this copyright notice and the original author s name appears on all copies and supporting documentation For any other uses of this software in original or modified form including but not limited to distribution in whole or in part specific prior permission must be obtained from Uri Wilensky The software models and documentation shall not be used rewritten or adapted as the basis of a commercial software or hardware product without first obtaining appropriate licenses from Uri Wilensky We make no representations about the suitability of this software for any purpose Itis provided as is without express or implied warranty To reference this software in academic public
293. ubNet or interface element in the case of Computer HubNet with the name tag name to the clients See the_HubNet Authoring Guide for details and instructions hubnet broadcast graphics hubnet broadcast graphics This broadcasts the current state of the Graphics Window in the NetLogo model to all the Computer HubNet Clients It does nothing for Calculator HubNet Note This is an experimental primitive and its behavior may change in a future version See the_HubNet Authoring Guide for details and instructions hubnet enter message hubnet enter message Reports true if a new computer client just entered the simulation Reports false otherwise hubnet message source will contain the user name of the client that just logged on See the HubNet Authoring Guide for details and instructions hubnet exit message hubnet exit message Reports true if a computer client just exited the simulation Reports false otherwise hubnet message source will contain the user name of the client that just logged off See the_HubNet Authoring Guide for details and instructions hubnet fetch message hubnet fetch message If there is any new data sent by the clients this retrieves the next piece of data so that it can be accessed by hubnet message hubnet message source and hubnet message tag This will cause an error if there is no new data from the clients See the_HubNet Authoring Guide for details 182 Primitives Dictionary NetLogo 2 1
294. up needing the highest and lowest elevation in several places in our procedures let s make a shortcut We ll do a little extra work now so that if we need these values later we ll have a shortcut to use First at the top of your code right after the patches own declaration declare two global variables as such globals highest the highest patch elevation lowest the lowest patch elevation Notice the use of semicolons here Although the names of the global variables are descriptive the semicolons allow us to describe the variables even more Global variables can be used by all the agents in the model In particular patches can use highest and lowest in the setup patches procedure We need to store the highest and lowest elevations in these global variables once and then everyone will have quick access to them after that Write to setup patches ask patches set elevation random 10000 diffuse elevation 1 ask patches set pcolor scale color green elevation 1000 9000 set highest max values from patches elevation set lowest min values from patches elevation Tutorial 3 Procedures 47 NetLogo 2 1 0 User Manual ask patches if elevation gt highest 100 set pcolor white if elevation lt lowest 100 set pcolor black end Now we have saved the highest and lowest poinis in our terrain and displayed them graphically Look at the last two commands the if commands Each patch when it runs th
295. up patches setup turtles end 7 Creates a random landscape of patch elevations to setup patches ask patches set elevation random 10000 repeat smoothness diffuse elevation 1 ask patches set highest max set ask patches if elevation set pcolor if elevation set pcolor set pcolor scale color green elevation 1000 9000 values from patches elevation lowest min values from patches elevation gt highest 100 white lt lowest 100 black end initializes the turtles to setup turtles crt number ask turtles if shade of green color set color red fd random screen edge x end RUN TIME PROCEDURES 77 main program control to go set turtles moved false move to local max do plots 1f not turtles moved stop end 54 Tutorial 3 Procedures NetLogo 2 1 0 User Manual each turtle goes to the highest elevation in a radius of one to move to local max ask turtles set heading uphill elevation if elevation of patch ahead 1 gt elevation fa 1 set turtles moved tru end to do plots set current plot Turtles at Peaks plot count turtles with elevation gt highest 100 end Tutorial 3 Procedures 55 56 NetLogo 2 1 0 User Manual Tutorial 3 Procedures Interface Guide This section of the manual walks you through every element of the NetLogo interface in order and explains its funct
296. ur with more clients e Out of memory conditions are not handled gracefully e Sending large amounts of plotting messages to the clients can take a long time e NetLogo does not handle malicious clients in a robust manner in other words it is likely vulnerable to denial of service type attacks e Performance does not degrade gracefully over slow or unreliable network connections e If you are on a wireless network or sub LAN the IP address in the HubNet Control Center is not always the entire IP address of the server e Authoring new HubNet activities is more arcane and difficult than it should be e Computer HubNet has only been tested on LANs and not on dial up connections or WANs Calculator HubNet Activities The following activities are available in the Models Library in the Calculator HubNet Activities folder For many models you will find a discussion of its educational goals and suggested ways to incorporate it into your classroom in the Participatory Simulations Guide on the Participatory Simulations Project web site More information can also be found in the Information Tab in each model e Disease A disease spreads through the simulated population of students e Elevators Student controlled elevators demonstrate the relation of velocity and position e Function Activity Students experience the concept of a function by forming themselves into graphs e Gridlock Students use traffic lights to contr
297. urtle or patch The distance to or a from a patch is measured from the center of the patch Unlike distance this always reports the on screen distance never a distance that would require wrapping around the edges of the screen distancexy Primitives Dictionary 167 NetLogo 2 1 0 User Manual distancexy xcor ycor Reports the distance from this agent to the point xcor ycor The distance from a patch is measured from the center of the patch Unlike distancexy nowrap the wrapped distance around the edges of the screen is used if that distance is shorter than the on screen distance if distancexy 0 0 gt 10 set color green 7 all turtles more than 10 units from 7 the center of the screen turn green distancexy nowrap distancexy nowrap xcor ycor x Reports the distance from this agent to the point xcor ycor The distance from a patch is measured from the center of the patch Unlike distancexy this always reports the on screen distance never a distance that would require wrapping around the edges of the screen downhill downhill patch variable Reports the turtle heading between 0 and 359 degrees in the direction of the minimum value of the variable patch variable of the patches in a one patch radius of the turtle This could be as many as eight or as few as five patches depending on the position of the turtle within its patch If there are multiple patches that have the same smallest value
298. urtles fd 1 all turtles move forward one step ask patches set pcolor red all patches turn red ask turtle 4 rt 90 7 only the turtle with id 4 turns right at points agentset at points x1 y1 x2 y2 Reports a subset of the given agentset that includes only the agents on the patches the given distances away from the calling agent The distances are specified as a list of two item lists where the two items are the x and y offsets If the caller is the observer then the points are measured relative to the origin in other words the points are taken as absolute patch coordinates If the caller is a turtle the points are measured relative to the turtle s exact location and not from the center of the patch under the turtle ask turtles at points 2 4 1 2 10 15 Ea 7 only the turtles on the patches at the distances 2 4 1 2 and 10 15 7 relative to the caller mov atan atan xy Reports the arc tangent in degrees from 0 to 360 of x divided by y When y is 0 if x is positive it reports 90 if x is negative it reports 270 if x is zero you get an error Note that this version of atan is designed to conform to the geometry of the NetLogo world where a heading of O is straight up 90 is to the right and so on clockwise around the circle Normally in 158 Primitives Dictionary NetLogo 2 1 0 User Manual geometry an angle of O is right 90 is up and so on counterclockwise around
299. urtles and patches is to use the tab key on your keyboard The history popup menu lists all of the commands entered that can be accessed and used again The up and down arrow keys on your keyboard will retrieve that last command that was written Note that pressing the clear function clears only the large display box and not the history To clear the history section choose clear history found at the top of its popup menu Procedures Tab This tab is the workspace where the code for the model is stored Commands you only want to use immediately go in the Command Center commands you want to save and use later over and over again are found in the Procedures tab Interface Guide 63 NetLogo 2 1 0 User Manual Interface Information Procedures Errors Find Find Again E check globals ticks breeds sheep wolves turtles own energy sheep own grabbed used to prevent two wolves from eating the sa patches own countdown to setup ca set ticks 0 ask patches set pcolor green if grass 3 indicates whether the grass switch is on 3 if it is true then grass grows and the sheep eat it if it false then the sheep don t need to eat ask patches set countdown random grass regrowth time initialize grass grow clo if random 2 O half the patches start out with grass set pcolor brown To determine if the code has any errors you may press the Check
300. wait ing before calling this hubnet message source This reports the user name of the client that sent the data This will cause an error if no data has been fetched So be sure to fetch the data with hubnet fetch message before calling this hubnet message tag This reports the tag that is associated with the data that was sent For Calculator HubNet this will report one of the variable names set with the hubnet set client interfac primitive For Computer HubNet this will report one of the Display Names of the interface 110 HubNet Authoring Guide NetLogo 2 1 0 User Manual elements in the client interface See below for more information about the Computer HubNet tags For both types of HubNet this primitive will cause an error if no data has been fetched So be sure to fetch the data with hubnet fetch message before calling this hubnet message This reports the data collected by hubnet fetch message This will cause an error if no data has been fetched So be sure to fetch the data with hubnet fetch message before calling this There are two additional data extraction primitives that are only used in Computer HubNet models hubnet enter message Reports true if a new computer client just entered the simulation Reports false otherwise hubnet exit message Reports true if a new computer client just exited the simulation Reports false otherwise For both hubnet enter message and hubnet exit mess
301. will be the version that opens when you double click a model file in Windows Explorer On a Mac you can control what version opens via Get Info in the Finder I m on a UNIX system and can t untar the download Why Some of the files in the tarball have very long pathnames too long for the standard tar format You must use the GNU version of tar instead or another program which understands the GNU tar extensions On some systems the GNU version of tar is available under the name gnutar You can find out if you are already using the GNU version by typing tar version and seeing if the output says tar GNU tar Applets tried to run one of the applets on your site but it didn t work What should do Current versions of NetLogo require that your web browser support Java 1 4 1 or higher Here s how to get the right Java e If you re on Windows 98 or newer you need to download the Java browser plugin from http Awww java com en download windows_manual jsp e If you re on Mac OS X you need OS X 10 2 6 or higher If you re on OS X 10 2 you also need Java 1 4 1 Update 1 which is available through Software Update OS X 10 3 already has the right Java You must also use a web browser that supports Java 1 4 Internet Explorer does not work Safari does e If you re on Windows 95 MacOS 8 or MacOS 9 running models over the web is no longer supported you must download the NetLogo 1 3 1 application and run the models that way inste
302. xy file read file read file close Letting the user choose The user choose directory user choose file and user choose new file primitives are useful when you want the user to choose a file or directory for your code to operate on Movies This section describes how to capture a QuickTime movie of a NetLogo model First use the movie start command to start a new movie The filename you provide should end with mov the extension for QuickTime movies To add a frame to your movie use either movie grab graphics Of movie grab interface depending on whether you want the movie to show just the graphics window or the entire Interface tab In a single movie you must use only one movie grab primitive or the other you can t mix them When you re done adding frames use movie close 77 export a 30 frame movie of the graphics window setup movie start out mov movie grab graphics show the initial state repeat 30 go movie grab graphics movie close By default a movie will play back at 15 frames per second To make a movie with a different frame rate callmovie set frame rate after movie start but before grabbing any frames 90 Programming Guide NetLogo 2 1 0 User Manual To check the frame rate of your movie or to see how many frames you ve grabbed call movie status which reports a string that describes the state of the current movie To throw away a movie and delete the movie file call movie cancel
303. y flipping the switch mi Chooser mi Chooser Choosers let the user choose a value for a global variable from a list of choices _ presented in a drop down menu 5 Monitor Monitors display the value of any expression The expression could be a variable a complex expression or a call to a reporter Monitors automatically update several times per second Plots are real time Plots are real time graphs of data the model is generating of data the model is Plots are real time graphs of data the model is generating EE Output The output area is a scrolling area of text which can be used to create a log of activity in the model A model may only have one output area es Toye Text boxes lets you add informative text labels to the Interface tab The contents of text boxes do not change as the model runs Graphics Window The Graphics Window initially appears as a large black square on the Interface tab This is the graphical world of NetLogo s turtles and patches Some NetLogo models let you interact with the turtles and patches with your mouse by clicking and dragging in the Graphics Window The Graphics Window provides an easy way to open a turtle monitor or patch monitor Just control click Macintosh or right click other systems on the turtle or patch you want to inspect and choose inspect turtle or inspect patch from the popup menu Turtle and patch monitors can also be opened from the Tools menu or by usi
304. y for new models and is changed to the model s directory when a model is opened Note that in Windows file paths the backslash needs to be escaped within a string by using another backslash CN The change is temporary and is not saved with the model Note in applets this command has no effect since applets are only allowed to read files from the same directory on the server where the model is stored set current directory C NetLogo j Assume it is a Windows Machine file open myfile txt Opens file C NetLogo myfile txt set current plot set current plot plotname Sets the current plot to the plot with the given name a string Subsequent plotting commands will affect the current plot set current plot pen set current plot pen penname The current plot s current pen is set to the pen named penname a string If no such pen exists in the current plot a runtime error occurs set default shape set default shape turtles string set default shape breed string is Specifies a default initial shape for all turtles or for a particular breed When a turtle is created or it changes breeds it shape is set to the given shape The specified breed must be either turtles or a breed defined by the breeds keyword and the specified string must be the name of a currently defined shape In new models the default shape for all turtles is default Note that specifying a default shape does not prevent you from ch
305. y way to control the model Typically a model will have at least a setup button to set up the initial state of the world and a go button to make the model run continuously Some models will have additional buttons that perform other actions A button contains some NetLogo code That code is run when you press the button A button may be either a once button or a forever button You can control this by editing the button and checking or unchecking the Forever checkbox Once buttons run their code once then stop and pop back up Forever buttons keep running their code over and over again until either the code hits the stop command or you press the button again to stop it If you stop the button the code doesn t get interrupted The button waits until the code has finished then pops up Normally a button is labeled with the code that it runs For example a button that says go on it usually contains the code go which means run the go procedure Procedures are defined in the Procedures tab see below But you can also edit a button and enter a display name for the button which is a text that appears on the button instead of the code You might use this feature if you think the actual code would be confusing to your users When you put code in a button you must also specify which agents you want to run that code You can choose to have the observer run the code or all turtles or all patches If you want the code to b
306. you may enter new values for Screen Edge X and Screen Edge Y You can also right click Windows or control click Mac on the Graphics Window to edit it or select it then double click Can use the mouse to paint in the graphics window NetLogo does not have a built in set of painting tools for painting in the graphics window But with only a few lines of code you can add painting capability to your model To see how it s done look at Mouse Example in the Code Examples section of the Models Library The same techniques can be used to let the user interact with your model using the mouse in other ways too Another possibility is to use a special drawing model such as the Drawing Tool model by James Steiner which is available from_http ccl northwestern edu netlogo models community A third possibility is to create an image in another program and import it See the answer to_Can import a graphic into NetLogo How big can my model be How many turtles patches procedures buttons and so on can my model contain We have tested NetLogo with models that use hundreds of megabytes of RAM and they work fine We haven t tested models that use gigabytes of RAM though Theoretically it should work but you might hit some limits that are inherent in the underlying Java VM and or operating system either designed in limits or bugs The NetLogo engine has no fixed limits on size On Macintosh and Windows operating systems though
Download Pdf Manuals
Related Search
Related Contents
明和ランマ DeWalt DWE315 Sander User Manual Sony A3802LENSBDL How to Use Manual - Petri Konferenztechnik NET1039 - 株式会社パーキンエルマージャパン Users Manual - About Projectors Sentinel XL Full Hood Brochure - multi-page Copyright © All rights reserved.
Failed to retrieve file