Swarm is free software [1]. The current Swarm distribution is effectively [2] released under the GNU General Public License (GPL). The free software model of software development is particularly effective for a tool like Swarm, for both theoretical and practical reasons:
Complete Observability. With full source available, if necessary, the modeller can always track the execution of the simulation right down to the operating system level. This is very important for reproducibility, and ultimately allows you to go about proving (in an abstract mathematical sense) a simulation's `correctness'.
Developer Mind-Share. More practically, Swarm is open source so that we can harness developer mind-share: more technically minded users can identify bugs, write patches, implement new features generally contribute to the evolution of Swarm. These are all identical to the reasons that the GNU/Linux operating system has grown so fast (and is so robust) [DiBona et. al. 1999]. As Swarm grows, more programmers, and technically curious modellers are becoming involved in the project.
The development work is being done by the Swarm Development Group, located in Santa Fe, New Mexico. (The Swarm project relocated from the SFI at the end of October 1999). Their results are periodically released on the Internet and users have access to the source code. The creators fully intended for users to take the code, experiment with it, and propose changes and enhancements. This open source strategy is designed to capture the contributions of a lively research community. When users make improvements in the libraries, they are encouraged to announce them to the community and make them available. As a result of the interaction of the community and the Swarm team, the Swarm libraries are constantly being revised.
To get an idea of how much things change, consider the brief history of the project. Swarm was originally intended for Unix operating systems that support the X Windows System. The first beta version of Swarm was released in 1995. In January 1997, version 1.0 was released to the public. It would run on Solaris and Linux operating systems. Quickly after that, minor releases followed that opened up Swarm to the DEC Alpha platform and other flavors of Unix. In April 1998, the reach of Swarm again broadened, as version 1.1 was released and, with the help of the Cygnus Win32 package, Swarm could be used on the Microsoft Windows 95/NT (and now 98) operating systems. In late 1999 the Swarm releases 2.0 and 2.0.1 introduced a Java layer for Swarm to enable Java programmers to access Swarm libraries and enabled the export of data through the HDF5 binary data format from NSCA.
Because Swarm does grow and change as a result of the complex interaction within a research community, its precise path for development is not predictable. Current priorities for the Swarm team at the SDG include the further generalization of Swarm to be useful on a broader array of platforms and in conjunction with additional computer languages. Prototype XML and Scheme layers for Swarm have been tested, for example.
[1] | sometimes referred to as "open source" source software, see the Open Source Definition |
[2] | The core Swarm libraries are currently released under the LGPL, but the standard binary distributions generally include many GPLed support components, which effectively mean that Swarm is GPLed. |