code_swarm is an experiment in organic software visualization.
See http://vis.cs.ucdavis.edu/~ogawa/codeswarm for a picture of what we want to produce.
Google Code Project : http://code.google.com/p/codeswarm/ Google Group/Mailing List: http://groups.google.com/group/codeswarm
You will need the Apache ant build tool, at least version 5 of the Java SDK from Sun, and Python version 2.4 or later. Linux users: we've been unable to get code_swarm to compile with the GNU toolchain, Sun's implementation is strongly recommended. If you're able to get it to compile with another toolchain, we'll be glad to include instructions here on how to do so.
# pacman -S apache-ant jre jdk
A git fork of the main code_swarm repository is maintained at http://github.com/rictic/code_swarm/tree/master
This fork contains a number of patches which improve the speed of code_swarm significantly, as well as an executable, which makes running code_swarm a one-step process.
To obtain a clone of the repository, simply use:
git clone git://github.com/rictic/code_swarm.git
The main code_swarm repository however is on Google Code: http://codeswarm.googlecode.com/
To get the source, see http://code.google.com/p/codeswarm/source/checkout
With Java and ant installed, and the code_swarm source downloaded, running it on a git, svn, or hg based project is easy:
- Add
code_swarm/binto your PATH. A line likeexport PATH=$PATH:/path/to/code_swarm/binin your~/.profileor~/.bash_profileshould do it cd project/to/visualizecode_swarm
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 freebase.com.
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 ./run.sh path/to/project.config
For an experimental GUI where you can specify a svn url to visualize:
cd path/to/code_swarmant run
Other commands:
antwill build, but not run the projectant allwill also generate Javadoc HTML documentationant cleanwill delete all intermediate and binary files
i686
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_code_swarm/lib/>
x86_64
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_code_swarm/lib/linux-x86_64>