docs/gource/readme.md
## Gource visualization of work on the application
[Gource](https://github.com/acaudwell/Gource) is a C++ OpenGL application that interactively renders a visualization showing how developers interact with source code in a repository over time.
Here's a 4 1/2 minute [Gource](https://github.com/acaudwell/Gource) visualization of 5777 commits (over 2 1/2 years) to this codebase.
<iframe width="560" height="345" src="http://www.youtube.com/embed/AFrLpHRRgv8" frameborder="0"><a href="http://www.youtube.com/watch?v=AFrLpHRRgv8">Jan 27, 2009 ... Sep 3, 2011</a></iframe>
What's happening in the visualization ...
- The connections between active directories are represented by splines, colored by the contents of the directories they connect to.
- When directories and files have not been modified for some time they slowly fade from view.
- Files are represented as colored spheres (the color generated by a hash of the file extension) which are laid out in a spiral pattern around the center of the directory the files belong to.
- Developers who are currently contributing to the project are floating near the files they are modifying.
- Developers illuminate the file they are modifying with colored beams: (green adding, orange modifying, red deleting).
### Installing Gource on a Mac with [Homebrew](http://mxcl.github.com/homebrew/):
brew install gource
### Install [ffmpeg](http://ffmpeg.org/) if you want to be able to generate movies from the Gource visualizations:
*Basic ffmpeg install plus mpeg4 and webm codecs:*
brew install x264 libvpx ffmpeg
*Complete ffmpeg install (if you want to use ffmpeg for all-around general transcoding and processing):*
brew install x264 libvpx faac theora libvorbis libogg libogg xvid ffmpeg
### Creating a Gource Visualization
Create a local cache of gravatar images of the developers in .git/avatar http://code.google.com/p/gource/wiki/GravatarExample
From the root directory of this application:
$ perl docs/gource/get_gravatar_images.pl
To interactively play with a gource visualization (hiding the directories in vendor and public/javascript/):
$ ./docs/gource/interactive.sh
See: the [Gource readme](http://github.com/acaudwell/Gource/blob/master/README) for more information about these parameters and the commands available while the rendering is running.
Generating an mpeg4 video of the gource output (*ffmpeg required*):
$ ./docs/gource/generate-mp4.sh
Generating an webm video of the gource output (*ffmpeg required*):
$ ./docs/gource/generate-webm.sh