This page was automatically generated by NetLogo 4.0.4. Questions, problems? Contact

The applet requires Java 1.4.1 or higher. It will not run on Windows 95 or Mac OS 8 or 9. Mac users must have OS X 10.2.6 or higher and use a browser that supports Java 1.4. (Safari works, IE does not. Mac OS X comes with Safari. Open Safari and set it as your default web browser under Safari/Preferences/General.) On other operating systems, you may obtain the latest Java plugin from Sun's Java site.

In order for this to work, this file, your model file (neutral speciation model.nlogo), and the file NetLogoLite.jar must all be in the same directory. (You can copy NetLogoLite.jar from the directory where you installed NetLogo.)

On some systems, you can test the applet locally on your computer before uploading it to a web server. It doesn't work on all systems, though, so if it doesn't work from your hard drive, please try uploading it to a web server.

You don't need to include everything in this file in your page. If you want, you can just take the HTML code beginning with <applet> and ending with </applet>, and paste it into any HTML file you want. It's even OK to put multiple <applet> tags on a single page.

If NetLogoLite.jar and your model are in different directories, you must modify the archive= and value= lines in the HTML code to point to their actual locations. (For example, if you have multiple applets in different directories on the same web server, you may want to put a single copy of NetLogoLite.jar in one central place and change the archive= lines of all the HTML files to point to that one central copy. This will save disk space for you and download time for your users.)

powered by NetLogo

view/download model file: neutral speciation model.nlogo


This model is an attempted reimplementation of the model described in:

de Aguiar MA, Baranger M, Baptestini EM, Kaufman L, Bar-Yam Y. (2009) Global Patterns of speciation and diverity. Nature. Jul 16;460(7253):334-5



Press setup to initialise the model, then "step" for a single step, or "go" for continuous running.

You can turn on species colouring, but this slows the simulation up. I am not 100% sure about my colouring algorithm.

The "Recolour" button colurs the individuals as to species when the simulation has been paused.


It was not clear what happens in the "Q" case if there was not another in the spatial vicinity of an individual - I have caused a widening search until there is.

It was not clear if the update of individuals (their mating etc.) was in parallel or in a random sequence or what - I have used a random sequence here.


The main display shows the position of (topmost) individuals at each location. The colouring (when used) shows the different species, unless white dots remain, in which case there are not enough colours to complete this. Thus if there are white dots some of the individuals that are coloured differently might, in fact, be members of the same species. (species as defined in the paper).

"genespace1" etc. are projections of the positions of the genes of all individuals against (fixed) random genes.

The two graphs show the average spatial and genetic distances of all matings. Grey lines show average plus or minus a standard deviation (if greater than zero).


The simulation is very slow to start with, due to the need for inviduals to widen their search for suitable mates. This reduces quickly after a few generations. I would guess that if a random genetically suitable mate was chosen if there was not one within spatial range would have a similar effect, if slightly less plausible.

The simulation runs much faster if the continual colouring and genespace projections are turned off.

The purpose of P is not at all clear. If the mating distance limitation is there to be realistic then surely it should be fixed. The bit about widening the search until one finds a mate is surely just a fix due to the wish to keep the model simple and with a fixed population.

I also dont understand in the Q case why the individual ends up at the original individual's location rather than being dispersed from its location. This still satisfies the idea of a local fixed carrying capacity. There seems to be a slight conceptual confusion between taking the individual's place in the ecosystem (but places are not kept as many are left blank and multiple organisms can inhabit each location) and a localised carrying capacity (but its not local its global to the whole environment, although locally, in the short term numbers are roughly conserved - however in this case why distribute from the original individual).

The mate search widening seems a fudge. If the spatial and genetic differences are a preference then it should be implemented as such, if it is a limitation then there can be no search widening. It seems that the average mating distance hovers just *above* the spatial limit for some reason (if one adjusts S upwards the average then adjust to be just above the new limit). Maybe some other way of starting the process off could be introduced instead of the widening.


I have allowed alternate initialisations - random or uniform initial genes, and random or uniform initial position, so the other cases can be compared.

The P=0 case is now included, in this case the search for mates is not widened beyond the original S and G restrictions (since >0 mates satisfies the search). Despite the contradictions, in order to keep as far as possible within the spirit of the original model, the following happnes: in the case where P=0 and there is no possible mate then if there is a local other that can mate it does with the individual ending up at the original position, if there is none at all a random new individual is placed into the environment.