Skip to content
A (fork of a) slick visualization for your source code
Find file
Pull request Compare This branch is even with rictic:gravatar.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


code_swarm is an experiment in organic software visualization.

See for a picture of what we want
to produce.

Google Code Project :
Google Group/Mailing List: 

# Building #

More detail is available at

This quick guide explains how to setup your development environment to build
and run code_swarm.

## Prerequisites ##

You will need Apache's "ant" build tool, at least version 5 of the Java SDK from Sun, and for some features, Python version 2.4 or later.

### Linux ###

This guide is written with a Debian based Linux, Ubuntu 8.04. The process is likely
to be similar with other linux distributions.

This should ensure that ant and java6 are installed and configured:

    sudo apt-get install ant 
    sudo apt-get install sun-java6-jdk 
    sudo update-java-alternatives -s java-6-sun 

You should also ensure that Python is installed.

### Windows ###

* download ant for all platforms at
* unpack it where you want it to be installed, and add the location of
  its binaries to the the `PATH` environment variable. For instance, add at the end : 

* download Sun Java SDK at
* install it and add the "javac" Java compiler to the PATH : 
  `C:\Program Files\Java\jdk1.6.0_06\bin;`

* then create a new environment variable called JAVA_HOME and set its path to 
  `C:\Program Files\Java\jdk1.6.0_06;`

* download and install Python from

### Mac ###

Recent versions of OS X come with a good java compiler and Python interpreter, so all you need to do is get and install Apache ant.

If you have DarwinPorts/MacPorts, you can simply:
    sudo port install apache-ant

## Getting the source code ##

code_swarm is still a very young project.  At the moment, the best way to get it going is to download the source code and build it.

### git ###

A git fork of the main code_swarm repository is maintained at <>

This fork contains a number of patches which improve the speed of `code_swarm` significantly, as well as the `code_swarm` executable, which makes visualizing a new project on Linux and the Mac a one-step process.  

To obtain a clone of the repository, simply use:

    git clone git://

### Subversion ###

code_swarm's source code is on a Google Code Subversion repository (svn) :

See Subversion homepage at for all appropriate 
tools and documents. I would recommend [TortoiseSVN]( for Windows users. 
Unix-like users would get their native "Subversion" package.

For more information, see

## Building and Running ##

With Java and ant installed, and the `code_swarm` source downloaded, running `code_swarm` on any given git, svn, or hg based project is quite easy.

* Add `code_swarm/bin` to your PATH.  A line like `export PATH=$PATH:/path/to/code_swarm/bin` in your `~/.profile` or `~/.bash_profile` should do it
* `$ cd project/to/visualize`
* `$ code_swarm`

### Other ways of running code_swarm ###

There are a couple of other ways of invoking code_swarm.  For an experimental GUI where you can specify a svn url to visualize:

* cd path/to/code_swarm
* ant run

While code_swarm was developed to visualize source code repositories, its input format is generic, and some have experimented with visualizing other collaborative environments, including user activity on wikis and

code_swarm can be invoked by pointing it at a project config file, which contains a number of options for customizing the visualization.  The config file must point at a repository xml file, which contains a set of events, which each describe a file, edited by a person, at a specific time.  The time is specified as the number of milliseconds since January 1st, 1970.

Example config files can be seen in `data/sample.config` and `bin/config.template`

To invoke `code_swarm` with a given config file, use `./ path/to/project.config`

Other commands:

* `ant` will build, but not run the project
* `ant all` will also generate Javadoc HTML documentation
* `ant clean` will delete all intermediate and binary files 
Something went wrong with that request. Please try again.