Welcome to the StarLogo 2.0 release of StarLogo, a programmable modeling
environment designed to help you model and explore the workings of decentralized
systems, such as bird flocks, traffic jams, and market economies.
A Macintosh-only version of StarLogo has been available for several years.
In February 2000, we released the first Java-based version of StarLogo,
designed to run on all different types of computers. We called this new
version StarLogo 1.0, and we renamed the Macintosh-only version MacStarLogo.
(While the Java-based version of StarLogo runs on Macintosh computers,
Mac users with older 68K and PowerMac computers might prefer to use MacStarLogo
for performance reasons.) In August 2000 we released version 1.1. It included
updated features and bug fixes, and in 2001 we made another update to
version 1.2.
The
latest version is 2.0, and it includes many new features, enhancements,
and bug fixes that are outlined below in the New
Features section. This document will discuss how to run StarLogo,
new features in version 2.0, the differences between StarLogo and traditional
MacStarLogo, the system requirements for running this version, and some
implementation issues.
As you use StarLogo 2.0, please let us know what you think. Please send
suggestions and bug reports to bug-starlogo@media.mit.edu
(Be sure to include system details, including your operating system, so
we can easily pin down any problems).
Thanks again for trying out this new version of StarLogo! |
To use StarLogo, you will need to have a version of Java 1.1 (with Swing)
or higher installed on your computer.
Our installer for Windows includes a Java 1.4 runtime from Sun Microsystems.
This version will not interfere with any other versions of Java installed
on your machine, and you won't have to worry about compatability. We do
not use or require any other version of Java to be installed on your computer.
The Mac OS 9 version requires MRJ 2.2.5 or higher. If you don't yet have
MRJ 2.2.5 (or are not sure) and have Mac OS 9, use the Software Update
control panel to install any updates from Apple. One of these will be
MRJ 2.2.5 or higher. If you use Mac OS 8.1 or higher, you can download
MRJ from Apple's Java web site at http://developer.apple.com/java/download.html.
We
support MacOS X 10.1 and higher. If you get the Java Update 1.3.1 for
OS X 10.1, be advised that multi-monitor support is broken. There are
still quite a few problems with MacOS X Java, even on 10.2, so feel free
to email at bug-starlogo@media.mit.edu when bad things happen.
On Unix,
we recommend using your vendor's Java, as long as it is compatible with
Java 1.2 or higher. We include a shell script to run StarLogo, and include
a special shell script for Solaris. On Linux, we recommend Sun's JDK over
Blackdown because of far fewer bugs in the AWT implementation. If you
can get Sun's JDK 1.4, that'll be even less buggy. A note: there are interactions
between some window managers and Java which cause new windows to open
in a really small size. You might try a different window manager first,
to see if it is the problem, but if not, tell your window manager to allow
you to place the window manually when it pops up, rather than automatically.
This will give you the opportunity to resize it.
After you have succesfully installed StarLogo, follow these instructions
to run StarLogo on your computer:
On a Windows
PC
- In the Start Menu, look for the StarLogo 2.0 program group. Click
on the StarLogo application file to run StarLogo.
- StarLogo should start up and pop two windows up on the screen. If
you don't see them, they might be hidden behind other windows. Check
your taskbar for them.
On a Mac
- Make sure that you have MRJ 2.2.5 or higher (from http://developer.apple.com/java/download.html)
installed on your Macintosh before trying to run StarLogo.
- Double-click on the StarLogo application.
- StarLogo should start up and pop two windows up on the screen.
On Unix
- Install your favorite Java 1.2.x, or Java 1.3.x, Java 1.4.x.
- Go to the StarLogo distribution directory.
- Execute the unix-run-starlogo shell script. (Note: If you use Solaris,
execute the solaris-run-starlogo shell script instead).
- Note: We've seen that StarLogo requires that you set Java to use a
larger stack size. This is necessary with Sun's Java; we're not sure
whether this is necessary on other Unixes.
|
Bugs
Fixed Since 1.2.2:
- Fixed parsing
of statements similar to: sum-of-turtles [xcor] / count-turtles so that
you don't need parens: (sum-of-turtles [xcor]) / count-turtles.
- If a turtle dies
while being asked to do something (inside of an ask-turtles), he will
stop obeying the commands, but will stay alive (in a zombie state) long
enough to respond to all queries about his state (e.g. xcor, ycor, etc).
Once the ask-turtles is finished, the zombie turtle will then die.
- A turtle that dies
while grabbing other turtles now lets go before dying.
- Turtles shouldn't
show up outside the patch grid anymore (sometimes they would appear
one patch outside).
- Compiler now reports
a bug if you forget to put a space between your operators (+, -, *,
/, etc) inside of a parenthesized expression (e.g. set foo (3 +4) will
now report an error that +4 isn't understood). Previously, the erroneous
operator and whatever followed it were ignored and not included in the
compiled code.
- max-of-turtles
now returns the proper answer if the answer is negative.
- Sometimes when
StarLogo saved/loaded a project, all of the buttons got the same id
number (invisible to the user) causing all but one button to stop working.
This is fixed.
- Fixed a bug in
diffuse4 that caused it to hang.
- The case primitive
now takes up MUCH less memory (a constant amount) on the stack, so you
can have enormous (or even small) case statements without overflowing
the turtle's stack memory.
- Widgets that need
to draw black actually draw in a really really dark gray now, so that
if you drag them ontop of a black patch grid, they're still visible.
- When an enumerated
variable (e.g. turtles-own [temp [hot cold warm]]) is the same name
as some other already defined thing, the compiler now reports an error.
- setplot-xrange
and setplot-yrange arguments were interpreted in the wrong order.
- When you drop the
max or raise the min value of a slider, the current value, if out of
range, will now peg itself to the min or max, whichever is closer.
- Sometimes when
you compiled, the cursor would remain an hourglass. We think this one
is licked.
- Sometimes after
you compiled by clicking on the Interface window onto a button, the
cursor would get stuck as a Move cursor. We think this one is licked,
too.
- Sometimes the keyboard
focus would be lost from the interface window, making the keyboard command
'delete' to delete a widget not work right. This always works now.
- All the following
commands now exclude the caller turtle from the calculation: sum-of-turtles,
sum-of-breeds, list-of-turtles, list-of-breeds, one-of-turtles, one-of-breeds,
min-of-turtles, max-of-turtles, min-of-breeds, max-of-breeds, average-of-turtles,
average-of-breeds, variance-of-turtles, variance-of-breeds, median-of-turtles,
median-of-breeds, list-of-turtles-with, list-of-breeds-with, min-of-turtles-with,
min-of-breeds-with, max-of-turtles-with, max-of-breeds-with, average-of-turtles-with,
average-of-breeds-with, variance-of-turtles-with, variance-of-breeds-with,
median-of-turtles-with, median-of-breeds-with. All the other variants
of these commands were already correct.
- Note: count-turtles,
count-turtles-with, count-breeds, count-breeds-with will not exclude
the calling turtle. That's so that whenever a turtle asks for this
value, he gets the same value as all other turtles.
- When we save the
output window and the info window, they now save with Windows linefeeds,
rather than always using a \n.
- Fixed memory leak
in count-turtles-with.
- one-of-{turtles,
breeds}-{here, at, towards} now returns a random turtle who is not yourself,
rather than just the topmost turtle on that patch.
- You can now change
the size of of the patch grid while the turtles are moving without causing
a crash.
- If you ask a turtle
to do something, but that turtle doesn't exist, StarLogo used to freeze
up. That's fixed.
- When you invoke
New Project from the menu, it now creates 100 turtles, just like starting
the StarLogo application.
- If you load a project
that causes the interface window to become larger than your screen,
we shrink it to fit.
- We now use a better
oval drawing algorithm in the paint tools.
Features Added Since 1.2.2:
- Added shapes feature
for turtles. There is a shape editor that allows you to create new shapes,
and a shape chooser that allows you to choose individual shapes for
your turtles. Turtle shape can also be set using the setshape command.
Shapes appear at patch sizes 8, 16, and 32.
- Added templates
(not compatible with Mac OS 9) that allow users to easily begin creating
models using a "wizard".
- Added many new
kinds of plots (histograms, bar charts, x-y plots, scatter plots), all
of which can be placed on the StarLogo interface and created with simple
point and click procedures.
- Added a legend
widget that allows the user to define what specific colors or shapes
represent.
- Removed the MS-DOS
Windows that pops up when you run StarLogo in Microsoft Windows.
- Support more of
Resnick's TT&TJ StarLogo syntax, including turtles-have, patches-have,
added dash between "set" and the variable name (e.g. turtles-have
[foo-bar] set-foo-bar 5) but only if the variable itself has a dash
in it.
- Increased StarLogo's
maximum memory size to 256 MB. It won't take 256 MB initially, but if
need be, it will grow to that size. In Microsoft Windows, the maximum
size will be capped at the amount of free physical RAM or 256 MB, whichever
is smaller (with a minimum of 32 MB allocated to StarLogo).
- Scroll-wheel mice
should be supported in Java 1.4, thus being supported by StarLogo as
we install it on Microsoft Windows. If you have a different platform
that comes with its own Java, scroll-wheel mouse support must be added
by your platform vender's Java, not by us.
- Support for native
MacOSX Java application.
- In Microsoft Windows,
changed the default folder that File/Open... and File/Save menu items
go to the Users's My Documents folder.
- Swing is now required
(and included) on all supported StarLogo platforms. This should fix
problems where the control center resize panel bar was not working on
MacOS 9.
- Added tooltips.
Users can add their own tooltips to their buttons, sliders, monitors,
text boxes and legends.
- Added cut-copy-paste
support in the Interface window for buttons, sliders, monitors, text
boxes, legends and plot widgets.
- We no longer run
the compiler every time after you click out of the procedures page.
We now run it on-demand, the first time you perform an action that requires
compiled code after making a modification to the procedures pane, a
button, slider or monitor.
- You can now only
resize the patches to sizes 1, 2, 3, 4, 5, 6, 7, 8, 16, and 32. Shapes
only show up in sizes 8, 16 and 32.
- Added code template
generation feature to make it easier to begin certain kinds of StarLogo
projects without training in the StarLogo programming language.
- Added a speed-control
slider to enable you to control the speed of StarLogo simulations. Believe
it or not, sometimes StarLogo runs too fast. With this slider you can
slow it down and even pause it.
- Can now save the
patches/turtles as a GIF (without the interface part of the window).
- Added a display
in the color bar to show you what color is currently selected. You can
also type in your own StarLogo expression (that evaluates to a number
between 0 and 140 (larger numbers will be rounded)) to select the perfect
color.
- Added a status
bar to the main Interface window to show you what patch your cursor
is over. Also lets you see the size of a widget as you resize it.
- StarLogo now saves
a backup project every three minutes and deletes it when you manually
save your project. Think of this as insurance in case StarLogo crashes
on you. When StarLogo starts up and tries to load a project that has
a backup, it will let you choose which version to keep, the backup or
the most recently saved version of the project.
- Put the StarLogo
project's name on the Control Center window so you can tell which one
is which if you have StarLogo running twice (You can only run StarLogo
twice on Windows and Unix).
- Added a trash can
to the user interface to make it really obvious how to delete a widget.
Drag it to the trash. Note: the trash deletes the widget immediately.
There is no undo.
- remove, sublist,
insert, remove-element, reverse
- asin, acos, log
- Removed the Stop
All button from the Control Center and replaced it with a Stop sign
button in the Interface window. When your project is running, you tend
to look at the Interface window, not the Control Center. And a button
with words was less obvious to click on than a picture of a stop sign.
- Removed the Clear
Graphics button from the Control Center. No one ever touched it. And
once people started painting things on the patch canvas, they didn't
want to casually clear their painting with one click.
- Added a Snap to
Grid feature in the Interface window.
- Much of StarLogo
has Spanish support. We'll release a spanish-language version of StarLogo
soon.
- You can now import
pictures (JPG, GIF and PNG) without having Quicktime installed. If you
have Quicktime installed (and StarLogo can tell) it'll use it instead,
for loading pictures, because Quicktime supports more image formats
than we do.
- You can now save
the graphing window as a GIF.
- StarLogo can now
print any of its windows.
- Paint tools are
now always visible instead of hidden behind a toolbar button.
- Added Show Spaces
menu item so you can see little squares between words in the procedures
pane. This makes it easier for kids to copy code.
- The command center
now displays what you type in bold, and what StarLogo returns in plain
text. It's prettier, no?
- The default patch
size is now 8x8, and there are 51x51 patches.
- You can now turn
off the gray border around text widgets.
- Note: partner and
partners may only be used textually within a grab statement. A procedure
called from within grab does not have access to partner or partners.
- If you used plot
commands in your StarLogo 1.x project and load it into StarLogo 2.0,
you'll get a new plot widget created in your interface. This is where
the plot commands will go. You will not be able to delete this plot
widget (unless you remove all the plot commands from your code).
- To push a button
from code, you now have to say start<buttonname> instead of <buttonname>
in order to avoid name conflicts by users naming the button the same
as a procedure.
New Commands Added Since 1.2.2:
- asin, acos
- alive?, alive?-of
- ask-turtles-with,
ask-patches-with, ask-frogs-with
- plotxy
- clear-plots
- log
- dolist, dotimes
- sort-num-list,
average-of-list, max-of-list, median-of-list, min-of-list, mode-of-list,
sdev-of-list, variance-of-list
- average-of-patches,
average-of-turtles, median-of-patches, median-of-turtles mode-of-patches,
mode-of-turtles, sdev-of-patches, sdev-of-turtles, variance-of-patches,
variance-of-turtles
- sum-of-patches-with,
min-of-patches-with, max-of-patches-with, average-of-patches-with, median-of-patches-with,
mode-of-patches-with, variance-of-patches-with, sdev-of-patches-with
- sum-of-turtles-with,
min-of-turtles-with, max-of-turtles-with, average-of-turtles-with, median-of-turtles-with,
mode-of-turtles-with, variance-of-turtles-with, sdev-of-turtles-with
- print-status
- insert, remove,
remove-element, reverse
- save-next-version
- shape, shape-at,
shape-towards
- setshape, setshape-of,
setshape-at, setshape-towards
- who-max-of-frogs,
who-max-of-frogs-with, who-max-of-turtles, who-max-of-turtles-with,
who-min-of-frogs, who-min-of-frogs-with, who-min-of-turtles, who-min-of-turtles-with
Bugs Remaining in 2.0:
- Can't run StarLogo
applets via https.
- Windows 2000 and
XP introduced a new kind of mouse pointer feature called a pointer shadow.
When you have this turned on (which it is by default) it wreaks havoc
with graphical Java applications. It causes them to draw much more slowly
and makes the cursor flicker on and off really fast. To get much better
graphics performance in StarLogo, go to your Mouse control panel, and
turn Pointer Shadows off.
- Code templates
don't work on MacOS 9 or X. The code doesn't properly interpret the
difference between Windows and Mac/Unix line feeds.
- Don't use the backtick
(`) character in your StarLogo code or in the Info window. We don't
deal with it well.
- On Windows 95,
you see the Windows 2000 trash can, rather than the Windows 95 trash
can. On Unix systems you always see the Windows 2000 trash can, rather
than the ones native to KDE or Gnome or whatever desktop manager you
are using.
- The turtle in
the about box has a strange smile.
- Many dialog boxes
aren't aesthetically pleasing. We'll work on it. Java (AWT and Swing)
sure doesn't make this easy.
- MacOS X does not
recognize file type and creator codes any more. StarLogo has been changed
to open any type of file, but to be safe, on MacOS X we save project
with a .slogo ending (and no creator/type code). If you have saved a
project in MacOS X and try to use it in MacOS 9/Classic it will not
have a proper creator/type code. You'll need to add a creator code of
'StrL' and a type code of 'TEXT' to be able to load it.
- Double-clicking
on a project file in MacOS X will properly launch StarLogo, but will
not open the project. This is a bug in Java in MacOS X and as of MacOS
X 10.2, has not been resolved.
- Still no 3-D holographic
cerebral interface.
|