We make a wide variety of Swarm models available. These illustrate the many different kinds of research questions addressed using agent-based models, and provide example ideas and software for other modelers.
For newcomers, here is a peek at a couple of classic Swarm applications.
How to choose and run example applications
(For a discussion of Java vs. Objective-C, see the FAQ: Swarm_FAQ)
Listed below are sites where you can download Objective-C Swarm models. To run them:
- Download and un-zip the archive. The archives are usually in TAR GZIP format (e.g., HeatBugs.tar.gz), which you can unzip (in a Linux terminal window or, if using Windows, in Cygwin) by typing "tar xzvf HeatBugs.tar.gz".
- Change directories into the newly unzipped directory of source code (in a Linux terminal window or, if using Windows, in Cygwin).
- If your Swarm installation is set up correctly, you can then compile the application by simply typing "make". (If you get a message something like "Makefile: ... /Makefile.appl: No such file or directory..." then you do not have the environment variable SWARMHOME set correctly. Keep reading...)
- If compilation is successful, you will have a new executable file (e.g., "heatbugs.exe" in Windows; "heatbugs" in Linux). Then you can start the model by typing "./heatbugs.exe" (or, in Linux, "./heatbugs").
- A common problem is not having your system's SWARMHOME environment variable correctly pointed to the location of your Swarm installation. SWARMHOME should typically be /usr/local/ or /usr/ if you've installed it from a binary package on a GNU/Linux system. For Windows, see Windows_binary_notes
We provide step-by-step instructions for compiling and running the Java program Jheatbugs-3.0 on Windows XP using Swarm 2.2. Our demo covers interactive (visual) mode as well as batch mode (multiple runs with output to files).
Other Java Swarm models are listed below.
Official applications archive
Our official archive of Swarm applications is at http://ftp.swarm.org/pub/swarm/apps/. Even though these models are generally old, many of them still work in Swarm 2.2. There are far more Objective-C than Java applications in the archive.
The archive includes Java versions of the Swarm classics heatbugs and mousetrap. The versions that worked with Swarm-2.1.1 and Swarm-2.2 are currently available in the testing subdirectory of the ftp archive. Look for jheatbugs-2001-03-28.tar.gz and jmousetrap-2001-09-13.tar.gz.
We strongly encourage people to contribute new applications! The site includes a form for describing contributions.
Paul Johnson's package of Objective-C applications
Paul Johnson has generously assembled a new package of applications for Swarm-2.2. This is a revised version, correcting a couple of glitches in saving of screen snapshots. It is available from Paul's web site: http://www.ku.edu/~pauljohn/Swarm/swarmapps-objc-2.2-2.tar.gz and also at the Swarm download site: http://ftp.swarm.org/pub/swarm/apps/objc/sdg/swarmapps-objc-2.2-2.tar.gz. Please keep testing and let Paul know how it works.
The package contains classic example Swarm applications, including:
- The Swarm tutorial (discussed in the Swarm User Guide)
- ArborgamesII (a simulation of forests used in publications by M. Savage et al.)
- SchellingII (Schelling's neighborhood segregation model)
- Conway (the Game of Life)
- sss (Swarm Sugar Scape).
We are soliciting volunteers who want to maintain some 'orphaned' applications from swarmapps-2.1.1. These apps that need love and attention are market, template, and hello-world. If you are interested in taking on one of those applications, or offering up other applications, contact PJ.
- The world-famous Artificial Stock Market has its own homepage at http://artstkmkt.sourceforge.net (Objective-C)
- Paul Johnson keeps many examples of Swarm-related code, his own models, and other people's models, at: http://www.ku.edu/~pauljohn/Swarm/
- Keep your eye on the Agent-based modeling community pages for projects using Swarm.
- See the software resources at the ABM Resources area of the wiki for a series of template models in Java and Objective-C Swarm, and for guidance on using Swarm with integrated development environments.