Table of contents
StarLogo is a powerful, yet simple, language aimed at providing people with the simplest way for designing self-organized collective systems. It is based on Logo, but provides the programmer with three different entities: turtles (which can then belong to different species), patches (the environment) and the observer (the global procedures and variables). Unfortunately, it does not adopt an object-oriented style for programming these entities and this can confuse some people. We are currently working on a port from StarLogo to Java in order to (1) make it widely available (it only runs on Macintoshes); (2) clarify the object-oriented aspects of the language; (3) allow people to quickly build applets that can be demonstrated over the Web.
I have coded a lot of different applications in StarLogo: foraging collective behaviors inspired by those of the species of ants used in the Manta project, many collective sorting algorithms, etc. It is a very simple environment for quickly testing ideas, algorithms, etc.
The official software(s)
StarLogo comes in three distributions. The original one has been developped in CommonLisp at the MIT MediaLab by Mitchell Resnick. An alternate distribution (based on the same kernel), named StarLogoT, provided a more cumfortable development environment, although there were no big differences between the two. These two distributions have since evolved as StarLogo (rewritten in Java) and NetLogo (in Java too, with the ability to run simulation projects as applets). The links for downloading each of these distributions can be found at the bottom of this page.
StarJava (downloadable, but discontinued in 2000)
It basically consisted in compiling StarLogo source files into Java. Instead of writing an interpreter in Java for running StarLogo code, which could affect the performances of the system (this is the way taken by the MIT people), we have chosen to compile the StarLogo code into Java code, to be linked with a set of core classes providing all the low-level primitives, functions and tools found in StarLogo (graphics included). By doing this, however, we lose the ability to use the interpreter on-line (the "Command Center"). Depending on the demand from users, we might include an interpreter later for this special purpose. Moreover, the resulting Java code can be reworked before being compiled, allowing people to add functions not found in StarLogo (datasets in turtles, etc.).
Here is a global overview of the StarJava framework. A first beta release is expected in July 1999, which will likely include a graphical tool for programming turtles, since the compiler is still not finished. The official announcement will be made on this page.
Update (01/15/2000) : the software is almost finished and you should contact Jean-Louis Tandé for more information.
Update (04/10/2000) : the software has been unfortunately discontinued (lask of people, lack of time, progresses of the two "official" distributions towards Java-based implementations). You can download its latest incarnation (which, at least, compiles fine, and includes some demonstration simulations in an applet) here.
You can run the above applet (automatically generated by NetLogo) from here. It corresponds to an ant-sorting algorithm.
Some of my work on StarLogo can be downloaded from this site. These files are only text files which can be directly saved and then used as "project files" in NetLogo (I usually use this distribution since it appears to be more reliable). These text files only contain a data fork (and no resource fork).
- Foraging ants (species Neoponera Apicalis - a kind of self-interested foraging algorithm) : ants_neoponera.txt
- Collective sorting (see ants classify up to twenty different kinds of objects - a very simple code): ant-sorting.nlogo
List of the people that have worked or still work on StarLogo :
- Alexis Drogoul - 1998/.. - Collective Sorting, Foraging, Head of the StarJava project.
- Paulo Urbano - 1994/.. - Various simulations (foraging, colonial identity in ants)
- The team of students working on the StarJava project in 1999 : Cedric Vaniez, Renaud Houdinet, Clémence Davy de Visville, Olivier Vigneron, Suthiya Yun, Jean-Louis Tande
You might be interested to take a look at these papers for further information :
- Mitchell Resnick's "Learning about Life"
- Mitchell Resnick's "New Paradigms for Computing, New Paradigms for Thinking"
You might be interested to take a look at these links for further information :