<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Alpha Blenders &#187; Open Source Software</title>
	<atom:link href="http://www.thealphablenders.com/tag/oss/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thealphablenders.com</link>
	<description>Procedural computer graphics blog</description>
	<lastBuildDate>Sat, 20 Aug 2011 03:00:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Show Your True Colours</title>
		<link>http://www.thealphablenders.com/2011/05/show-your-true-colours/</link>
		<comments>http://www.thealphablenders.com/2011/05/show-your-true-colours/#comments</comments>
		<pubDate>Wed, 18 May 2011 10:06:08 +0000</pubDate>
		<dc:creator>Andrew Caudwell</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Gource]]></category>
		<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://www.thealphablenders.com/?p=198</guid>
		<description><![CDATA[This last week saw the release of fairly significant update to Gource &#8211; replacing the out dated, 3DFX-era rendering code, with something a bit more modern, utilizing more recent OpenGL features like GLSL pixel shaders and VBOs. A lot of the improvements are under the hood, but the first thing you&#8217;ll probably notice is the [...]]]></description>
			<content:encoded><![CDATA[<p>This last week saw the release of fairly significant update to <a href="http://code.google.com/p/gource/">Gource</a> &#8211; replacing the out dated, <a href="http://en.wikipedia.org/wiki/3dfx_Interactive">3DFX</a>-era rendering code, with something a bit more modern, utilizing more recent OpenGL features like <a href="http://en.wikipedia.org/wiki/GLSL">GLSL pixel shaders</a> and <a href="http://en.wikipedia.org/wiki/Vertex_Buffer_Object">VBOs</a>.</p>
<p>A lot of the improvements are under the hood, but the first thing you&#8217;ll probably notice is the elimination of banding artifacts in <i>Bloom</i>, the illuminated fog Gource places around directories. This effect is pretty tough on the &#8216;colour space&#8217; of so called <a href="http://en.wikipedia.org/wiki/Color_depth"><i>Truecolor</i></a>, the maximum colour depth on consumer monitors and display devices, which provides 256 different shades of grey to play with.</p>
<p>When you render a gradient across the screen, there are 3 or 4 times more pixels than there are shades of each colour, producing visible &#8216;bands&#8217; of the same shade. If multiple gradients like this get blended together, as happens with bloom, you simply run out of &#8216;in between&#8217; colours and the issue becomes more exaggerated, as seen below (contrast adjusted for emphasis):</p>
<p style="text-align: center;"><a href="http://www.thealphablenders.com/wp-content/uploads/2011/05/banding.png"><img class="aligncenter size-thumbnail wp-image-77" title="banding" src="http://www.thealphablenders.com/wp-content/uploads/2011/05/banding-e1305715319896-200x150.png" alt="" width="200" height="150" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.thealphablenders.com/wp-content/uploads/2011/05/banding-zoom-2.png"><img class="aligncenter size-thumbnail wp-image-76" title="banding (close up)" src="http://www.thealphablenders.com/wp-content/uploads/2011/05/banding-zoom-2-200x150.png" alt="" width="200" height="150" /></a></p>
<p>Those aren&#8217;t compression artifacts you&#8217;re seeing!</p>
<p>Gource now uses colour diffusion to combat this problem. Instead of sampling the exact gradient of bloom for the distance of a pixel from the centre of a directory, we take a fuzzy sample in that vicinity instead. When <a href="http://www.thealphablenders.com/wp-content/uploads/2011/05/no-banding-zoom-2.png">zoomed in</a>, you can see the picture is now slightly noisy, but the banding is completely eliminated. Viewed at the <a href="http://www.thealphablenders.com/wp-content/uploads/2011/05/no-banding.png">intended resolution</a>, you can&#8217;t really see the trickery going on &#8211; in fact the effect even seems somewhat more natural, a bit closer to how light bouncing off particles of mist would actually behave.</p>
<p style="text-align: center;"><a href="http://www.thealphablenders.com/wp-content/uploads/2011/05/no-banding.png"><img class="aligncenter size-thumbnail wp-image-88" title="no banding" src="http://www.thealphablenders.com/wp-content/uploads/2011/05/no-banding-e1305715231659-200x150.png" alt="" width="200" height="150" /></a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.thealphablenders.com/wp-content/uploads/2011/05/no-banding-zoom-2.png"><img class="aligncenter size-thumbnail wp-image-76" title="no banding (close up)" src="http://www.thealphablenders.com/wp-content/uploads/2011/05/no-banding-zoom-2-200x150.png" alt="" width="200" height="150" /></a></p>
<p>The other improvement is <strong>speed</strong> &#8211; everything is now drawn with VBOs, large batches of objects geometry passed to the GPU in as few shipments as possible, eliminating CPU and IO bottle necks. Shadows cast by files and users are now done in a second pass on GPU using the same geometry as used for the lit pass &#8211; making them really cheap compared to before when we effectively wore the cost of having to draw the whole scene twice.</p>
<p>Text is now drawn in single pass, <em>including shadows</em>, using some fragment shader magic (take two samples of the font texture, offset by 1-by-1 pixels, blend appropriately). Given the ridiculous amount of file, user and directory names Gource draws at once with some projects (Linux Kernel Git import commit, I&#8217;m looking at you), doing half as much work there makes a big difference.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thealphablenders.com/2011/05/show-your-true-colours/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New Zealand Open Source Awards</title>
		<link>http://www.thealphablenders.com/2010/10/new-zealand-open-source-awards/</link>
		<comments>http://www.thealphablenders.com/2010/10/new-zealand-open-source-awards/#comments</comments>
		<pubDate>Wed, 06 Oct 2010 09:32:25 +0000</pubDate>
		<dc:creator>Andrew Caudwell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Gource]]></category>
		<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://www.thealphablenders.com/?p=178</guid>
		<description><![CDATA[I discovered today that Gource is a finalist in the Contributor category for the NZOSA awards. Exciting stuff! A full list of nominations is here. I&#8217;m currently taking a working holiday to make some progress on a short film presentation of Gource for the Onward!. Update: here&#8217;s the video presented at Onward!: Craig Anslow presented [...]]]></description>
			<content:encoded><![CDATA[<p>I discovered today that <a href="http://code.google.com/p/gource/">Gource</a> is a finalist in the Contributor category for the <a href="http://www.nzosa.org.nz/">NZOSA awards</a>. Exciting stuff! A full list of nominations is <a href="http://www.nzosa.org.nz/news">here</a>.</p>
<p>I&#8217;m currently taking a working holiday to make some progress on a short film presentation of Gource for the <a href="http://onward-conference.org/">Onward!</a>.</p>
<p><b>Update:</b> here&#8217;s the video presented at Onward!:</p>
<p><iframe src="http://player.vimeo.com/video/15943704" width="640" height="360" frameborder="0"></iframe></p>
<p><a href="http://softvis.wordpress.com/">Craig Anslow</a> presented the video on my behalf (thanks again Craig!), and we did a short Q/A over Skype afterwards. The music in the video is <a href="http://www.jamendo.com/en/track/516732">Aksjomat przemijania (Axiom of going by)</a> by <a href="http://www.jamendo.com/en/artist/Dieter_Werner">Dieter Werner</a>. I suggest checking out his other work!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thealphablenders.com/2010/10/new-zealand-open-source-awards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Life is Strange</title>
		<link>http://www.thealphablenders.com/2010/04/life-is-strange/</link>
		<comments>http://www.thealphablenders.com/2010/04/life-is-strange/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 11:00:10 +0000</pubDate>
		<dc:creator>Andrew Caudwell</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Demo Scene]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://www.thealphablenders.com/?p=156</guid>
		<description><![CDATA[Here is my tribute to a fascinating new fractal I talked about in an earlier post, the Mandelbulb. (Youtube: http://www.youtube.com/watch?v=W3x4uJJqs_w) The music in the video is &#8216;Life is strange (trance remix)&#8217; by darkangell. I recorded the scenes using my work in progress Mandelbulb Viewer/Fly through builder application (which is on my github, if you&#8217;re curious). [...]]]></description>
			<content:encoded><![CDATA[<p>Here is my tribute to a fascinating new fractal I talked about <a href="http://www.thealphablenders.com/2010/01/strange-alien-vistas/">in an earlier post</a>, the Mandelbulb.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/W3x4uJJqs_w&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed wmode="transparent" type="application/x-shockwave-flash" width="640" height="360" src="http://www.youtube.com/v/W3x4uJJqs_w&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>(Youtube: <a href="http://www.youtube.com/watch?v=W3x4uJJqs_w">http://www.youtube.com/watch?v=W3x4uJJqs_w</a>)</p>
<p>The music in the video is &#8216;Life is strange (trance remix)&#8217; by <a href="http://ccmixter.org/people/darkangell">darkangell</a>.</p>
<p>I recorded the scenes using my work in progress Mandelbulb Viewer/Fly through builder application (which is on my <a href="http://github.com/acaudwell">github</a>, if you&#8217;re curious). While working on this video, I added a few new effects like glow and fog, and also a periodic &#8216;beat&#8217; to synchronize some effects to music.</p>
<p>As I mentioned before, the viewer is based on a fragment shader implementation of the Mandelbulb fractal by <a href="http://www.subblue.com/">Tom Beddard</a>. His <a href="http://www.subblue.com/projects/mandelbulb">blog</a> has a lot of nice renderings also.</p>
<p>Ray-tracing is a tedious process, who knew? Normally capturing video in real or close to real time is something that I just take for granted. For this video, capturing a 20 second fly over (about enough for one shot in the final video) took around 30 minutes to render.</p>
<p>The rendering lag became <em>slightly</em> more manageable after implemented recording/config file support in the viewer, so I could go back and tweak the settings of a previous recordings that didn&#8217;t quite make the cut, and try again. I also got into the habit of testing the recording at low quality at 640&#215;360 (1/4 720p, same aspect ratio), to get a feel for how it would look in motion at the right frame rate.</p>
<p>Vimeo: <a href="http://vimeo.com/10740680">http://vimeo.com/10740680</a></p>
<p><b>Update</b>: I wasn&#8217;t very happy with the contrast levels of the original video, so I decided to re-upload it and ended up re-editing it. Feels a lot more coherent now.</p>
<p><b>Update II</b>: &#8216;Life is Strange&#8217; received second place is the <a href="http://www.fractalforums.com/fractalforums-com-spring-2010-fractal-art-competition/official-spring-2010-fractal-art-competition-results/">Fractalforums.com Spring 2010 Competition</a>. You can see the full set of video entries <a href="http://www.fractalforums.com/index.php?action=gallery;cat=39">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thealphablenders.com/2010/04/life-is-strange/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>New Logstalgia Released</title>
		<link>http://www.thealphablenders.com/2010/01/new-logstalgia-released/</link>
		<comments>http://www.thealphablenders.com/2010/01/new-logstalgia-released/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 02:39:15 +0000</pubDate>
		<dc:creator>Andrew Caudwell</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Logstalgia]]></category>
		<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://www.thealphablenders.com/?p=124</guid>
		<description><![CDATA[I&#8217;ve just released a new version of Logstalgia, my website access log visualization that looks a bit like Pong if only it had been created by Jeff Minter. Logstalgia is also referred to as ApachePong (referring to both the Apache Web Server and Pong) which is a much better name, but also covered by multiple [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just released a new version of <a title="Logstalgia" href="http://code.google.com/p/logstalgia/">Logstalgia</a>, my website access log visualization that looks a bit like <a title="Pong" href="http://en.wikipedia.org/wiki/Pong">Pong</a> if only it had been created by <a title="Tempest 2000" href="http://en.wikipedia.org/wiki/Tempest_2000">Jeff Minter</a>. Logstalgia is also referred to as ApachePong (referring to both the <a title="Apache" href="http://www.apache.org/">Apache Web Server</a> and <a title="Pong" href="http://en.wikipedia.org/wiki/Pong">Pong</a>) which is a much better name, but also covered by multiple trademarks.</p>
<p>Here&#8217;s <a title="Logstalgia Video" href="http://www.youtube.com/watch?v=HeWfkPeDQbY">a new video to go with it</a>.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent"><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/HeWfkPeDQbY&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="360" src="http://www.youtube.com/v/HeWfkPeDQbY&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" \></embed></object></p>
<p>The song is &#8216;Depart&#8217; by <a title="Tekno Eddy" href="http://ccmixter.org/people/Tekno_Eddy">Tekno Eddy</a>, which I found on ccmixter.org, which is a good place to find Creative Commons music that people actually <em>want </em>you to use (with attribution) in your Youtube videos.</p>
<p>The new version of <a title="Logstalgia" href="http://code.google.com/p/logstalgia/">Logstalgia</a> adds a bunch of features back-ported from <a title="Gource" href="http://code.google.com/p/gource/">Gource</a>, like being able to seek to a point in the log file, and the much needed PPM output support for making videos that was probably the biggest feature missing originally.</p>
<p><a title="Logstalgia" href="http://code.google.com/p/logstalgia/">Go get it</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thealphablenders.com/2010/01/new-logstalgia-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux.Conf.Au 2010</title>
		<link>http://www.thealphablenders.com/2010/01/linux-conf-au-2010/</link>
		<comments>http://www.thealphablenders.com/2010/01/linux-conf-au-2010/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:56:37 +0000</pubDate>
		<dc:creator>Andrew Caudwell</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Gource]]></category>
		<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://www.thealphablenders.com/?p=109</guid>
		<description><![CDATA[Last week I attended Linux Conf Australia, the annual conference for all things Open Source down under, this year held in Wellington, New Zealand, the city where I live. I was very lucky to get the opportunity to organize some of the displays at the conference. An application developed for the conference displayed information such [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I attended <a title="Linux Conf Australia 2010" href="http://www.lca2010.org.nz/">Linux Conf Australia</a>, the annual conference for all things Open Source <em>down under</em>, this year held in Wellington, New Zealand, the city where I live.</p>
<p>I was very lucky to get the opportunity to organize some of the displays at the conference. An application developed for the conference displayed information such as timetables for talks, social events and photos taken by the attendees. It also showed off my latest visualization, <a title="Gource" href="http://www.thealphablenders.com/2009/12/gource-software-version-control-visualization/">Gource</a>, displaying bits of random development from projects like the Linux Kernel.</p>
<p>Here&#8217;s <a title="LCA2010 Video" href="http://www.youtube.com/watch?v=0GRAjgrYMv4">a video of the displays I made for the conference</a>.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/0GRAjgrYMv4&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed wmode="transparent" type="application/x-shockwave-flash" width="640" height="360" src="http://www.youtube.com/v/0GRAjgrYMv4&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>The <a title="Life Flight Trust" href="http://www.lifeflight.org.nz/">Life Flight Trust</a>, the emergency helicopter rescue service for the Wellington area, was the featured charity of the conference. Attendees were encouraged to make donations, with the reward that the largest donor would be able to participate in a helicopter winching exercise. I was asked if I could come up with a way to display the donations, and ended up adapting a live graph prototype we&#8217;d developed at work (inspired by <a title="'Stack' from Digg Labs" href="http://labs.digg.com/stack/"><em>&#8216;Stack&#8217;</em> from Digg Labs</a>).</p>
<p>We displayed the live donation feed during the Pengion Dinner, a dinner for professional delegates on the last day of the conference. By the end of the evening, LCA delegates had raised more than $30,000 for the Life Flight Trust!</p>
<p>Helping out with the conference was a really cool experience and totally worth all the time I invested. Be sure to check videos of the talks from LCA which should start appearing on their <a title="Linux Conf Australia 2010" href="http://www.lca2010.org.nz/">website</a> tentatively.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thealphablenders.com/2010/01/linux-conf-au-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gource in Bloom</title>
		<link>http://www.thealphablenders.com/2009/12/gource-in-bloom/</link>
		<comments>http://www.thealphablenders.com/2009/12/gource-in-bloom/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 10:40:10 +0000</pubDate>
		<dc:creator>Andrew Caudwell</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Gource]]></category>
		<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://www.thealphablenders.com/?p=58</guid>
		<description><![CDATA[My earlier experiment with Bloom (I am tempted to call it Gourceian Blur) has lead to a new effect/feature in Gource. (Youtube: http://www.youtube.com/watch?v=NjUuAuBcoqs) The bloom effect is achieved by blending radial gradients with each other additively. You can do a high quality version by drawing a perfect radial gradient with a Shader, but in Gource [...]]]></description>
			<content:encoded><![CDATA[<p>My <a title="Birth of a Disco Universe" href="http://www.thealphablenders.com/?p=15">earlier experiment with <em>Bloom</em></a> (I am tempted to call it <a title="Terrible graphics pun" href="http://en.wikipedia.org/wiki/Gaussian_blur"><em>Gourceian Blur</em></a>) has lead to a new effect/feature in <a title="Gource" href="http://www.thealphablenders.com/?p=23">Gource</a>.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/NjUuAuBcoqs&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed wmode="transparent" type="application/x-shockwave-flash" width="640" height="360" src="http://www.youtube.com/v/NjUuAuBcoqs&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>(Youtube:<a title="Gource in Bloom" href="http://www.youtube.com/watch?v=NjUuAuBcoqs"> http://www.youtube.com/watch?v=NjUuAuBcoqs</a>)</p>
<p>The bloom effect is achieved by blending radial gradients with each other additively. You can do a high quality version by drawing a perfect radial gradient with a <a title="Shader" href="http://en.wikipedia.org/wiki/Shader">Shader</a>, but in Gource i&#8217;m using a <a title="Bloom Texture" href="http://www.thealphablenders.com/wp-content/uploads/2009/12/bloom.png">512&#215;512 texture</a> which looks fine in most circumstances.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thealphablenders.com/2009/12/gource-in-bloom/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Gource: Software Version Control Visualization</title>
		<link>http://www.thealphablenders.com/2009/12/gource-software-version-control-visualization/</link>
		<comments>http://www.thealphablenders.com/2009/12/gource-software-version-control-visualization/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 23:49:23 +0000</pubDate>
		<dc:creator>Andrew Caudwell</dc:creator>
				<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Gource]]></category>
		<category><![CDATA[Open Source Software]]></category>

		<guid isPermaLink="false">http://www.thealphablenders.com/?p=23</guid>
		<description><![CDATA[Gource (the name is a play on Source and Gorse) is a new visualization for software projects (and perhaps over things? I&#8217;ll try to stay focused here) which I released a couple months ago after spending the best part of this year working on it in my spare time and in between projects at work. [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Gource" href="http://code.google.com/p/gource/">Gource</a> (the name is a play on <em>Source </em>and <em><a title="Gorse" href="http://en.wikipedia.org/wiki/Gorse">Gorse</a></em>) is a new visualization for software projects (and perhaps over things? I&#8217;ll try to stay focused here) which I released a couple months ago after spending the best part of this year working on it in my spare time and in between projects at work.</p>
<p>This is <a title="Gource Video" href="http://www.youtube.com/watch?v=E5xPMW5fg48">the official &#8216;promo&#8217; video</a>.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="wmode" value="transparent"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/E5xPMW5fg48&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed wmode="transparent" type="application/x-shockwave-flash" width="640" height="360" src="http://www.youtube.com/v/E5xPMW5fg48&amp;hl=en_US&amp;fs=1&amp;rel=0&amp;color1=0x3a3a3a&amp;color2=0x999999&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Gource is a visualization for the development history of software projects. Normally when software is developed, the incremental changes to the code are stored in a Version Control System (VCS) which remembers all the changes that were made, who made them, and when. Gource takes this history and plays it back it back as an interactive animation.</p>
<p><em>&#8220;Software projects are displayed by Gource as an animated tree with the root directory of the project at its centre. Directories appear as branches with files as leaves. Developers can be seen working on the tree at the times they contributed to the project.&#8221;</em></p>
<p>The scenes generated by Gource are made up of quite a few different elements:</p>
<ul>
<li>a tree of the active directories generated by a <a title="Force Directed Layout" href="http://en.wikipedia.org/wiki/Force-based_algorithms">force directed layout</a>. This is the main structure that everything else centers around.</li>
<li> the connections of the tree are represented by <a title="Splines" href="http://en.wikipedia.org/wiki/Spline_%28mathematics%29">splines</a>, coloured by the contents of the directories they connect to. the mid point of the splines drags slightly behind, emphasizing the direction of the motion and giving the tree an organic feel.</li>
<li>files represented by coloured spheres (the colour coming from a hash of the files file extension) which are laid out in a spiral pattern around the center of the directory node the belong to.</li>
<li>users who are currently contributing to the project. Floating in near proximity to the files they are modifying, the users fire out beams indicating the kind of change they made to the file (green add, orange modify, red delete).</li>
<li>labels appear above the active files, users and directories when the become active, and fade out shortly after. This avoids there being too much clutter of text while letting the end user see the names of the actors involved in the current activity which their eyes are naturally drawn to.</li>
<li>finally, a camera dynamically positions itself to capture the entire scene or the part of the scene the user is interested in (a specific user, file, the area of the project where activity is currently occurring or everything).</li>
</ul>
<p>The animated directory tree works using a very tweaked variation on <a title="Force Directed Algorithms" href="http://en.wikipedia.org/wiki/Force-based_algorithms"><em>force directed algorithms</em></a>. Getting this to behave well in most situations (the layout and scale of software projects can differ wildly) was the most time consuming part of the project. If you look at a other visualizations that try to display data with this technique they tend to look very volatile and jerky or only work in cherry picked or static situations where the structure of the tree is constant.</p>
<p>Gource has best support for <a title="Git SCM" href="http://git-scm.com/">Git</a> (the VCS system built to manage Linux), though there are scripts to use it with other VCS as well (currently CVS, SVN and Mercurial).</p>
<p>You can download Gource from the project page <a title="Gource" href="http://code.google.com/p/gource/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thealphablenders.com/2009/12/gource-software-version-control-visualization/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

