|Paradigm||multi-paradigm: educational, procedural, agent-based, simulation|
|Developer||MIT Media Lab and
MIT Teacher Education Program
|StarLogo TNG 1.5.1/January 18, 2011|
|duck, dynamic, strong|
|OS||Java Virtual Machine|
StarLogo is an agent-based simulation language developed by Mitchel Resnick, Eric Klopfer, and others at MIT Media Lab and MIT Scheller Teacher Education Program in Massachusetts. It is an extension of the Logo programming language, a dialect of Lisp. Designed for education, StarLogo can be used by students to model the behavior of decentralized systems.
The first StarLogo ran on a Connection Machine 2 parallel computer. A subsequent version ran on Macintosh computers; this version became known later as MacStarLogo (and now is called MacStarLogo Classic). The current StarLogo is written in Java and works on most computers.
StarLogo is also available in a version called OpenStarLogo. The source code for OpenStarLogo is available online, although the license under which it is released is not an open source license according to the Open Source Definition, because of restrictions on the commercial use of the code.
StarLogo TNG (The Next Generation) version 1.0 was released in July 2008. It provides a 3D world using OpenGL graphics and a block-based graphical language to increase ease of use and learnability. It is written in C and Java. StarLogo TNG uses "blocks" to put together like puzzle pieces. StarLogo TNG reads the blocks in the order you fit them together, and sets the program in the Spaceland view.
StarLogo is a primary influence for the Kedama particle system, programmed by Yoshiki Oshima, found in the Etoys educational programming environment and language, which can be viewed as a Logo done originally in Squeak Smalltalk.
StarLogo Nova introduces several notable design changes relative to TNG, particularly with the introduction of a "World" agent, reminiscent of StarLogo 2.2's "Observer." In StarLogo Nova, any command can be run by any agent, but each "breed" has its own program and can have its own set of breed-specific "traits." This brings StarLogo Nova closer to an object-oriented design, in an effort to improve the ease with which students can transfer skills in StarLogo Nova to other, more mainstream languages. Other changes include the use of embedded arguments for blocks (similar to Scratch), WYSIWYG editing of the simulation interface, and splitting the collision primitive into its component halves, with each breed having collision code on its own program page.