Project: AtomSwarm

A platform for sonic improvisation using swarm-like structures.


Wherever possible, source code will be released under the terms of the GNU General Public License, with accompanying media. Please contact me if you would like any support with current releases of the framework.

Current Release with genetic extensions: v0.21/G

22 November 2009

This is the full current release as seen in this video (YouTube), with each agent's behaviours determined by their virtual genome and metabolism alongside the standard set of physical rules within the space.

As well as the series of Atom classes, it contains a large amount of performance-specific setup and control code, which requires proMIDI (for MIDI support), p5_sc (for SuperCollider interfacing), and controlP5 (for UI components). This code should be seen as an extended example of the framework's possible applications.

Current Release without genetic extensions: v0.2

This is a pared-down version of the current release, containing only the classes required to create a swarm: Atom and AtomSwarm. This can be seen as an extended Processing integration of Craig Reynolds' Boid, with UI objects to control the swarming ruleset.

Requires controlP5 for UI components.

Legacy Release: v0.1

Version 0.1 of AtomSwarm was a prototype release written purely in SuperCollider, with object classes for each agent (Atom) and the swarm itself (AtomSwarm), plus a wrapper class encapsulating the performance interface and hooks into UI interactions (AtomSet).


  • v0.1 November 2006
    Initial SuperCollider prototype.
  • v0.2 July 2007
    Full Processing/SuperCollider hybrid release.
  • v0.2g October 2007
    Full Processing/SuperCollider release with genetic constructs.
  • v0.2g June 2008
    Updated with SuperCollider synthdefs.
  • v0.21g November 2009
    Updated to handle changes to controlP5 syntax.