<?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>Visualmotive Blog &#187; Visualization</title>
	<atom:link href="http://blog.visualmotive.com/tags/visualization/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.visualmotive.com</link>
	<description>Thoughts on maps and visualization</description>
	<lastBuildDate>Sat, 12 Jun 2010 18:24:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Topologies of Linux and E. coli Control Networks</title>
		<link>http://blog.visualmotive.com/2010/topologies-of-linux-e-coli-control-networks/</link>
		<comments>http://blog.visualmotive.com/2010/topologies-of-linux-e-coli-control-networks/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 18:24:40 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[bacteria]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[networks]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=369</guid>
		<description><![CDATA[<a href="http://blog.visualmotive.com/2010/topologies-of-linux-e-coli-control-networks/"><img align="left" hspace="5" width="150" height="150" src="http://blog.visualmotive.com/wp-content/uploads/2010/06/linux_ecoli_control_nets-e1276366933585-150x150.jpg" class="alignleft tfe wp-post-image" alt="Comparing genomes to computer operating systems in terms of the topology and evolution of their regulatory control networks" title="linux_ecoli_control_nets" /></a>A comparison of the Linux call graph hierarchy with the E. coli regulatory network. Researchers at Yale discovered that the Linux control structure is top-heavy, with a few common modules reused often. E coli, by contrast, has limited central control with many specialized "workers" at the bottom of the hierarchy.]]></description>
			<content:encoded><![CDATA[<div id="attachment_371" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2010/06/linux_ecoli_control_nets.jpg"><img class="size-medium wp-image-371" title="linux_ecoli_control_nets" src="http://blog.visualmotive.com/wp-content/uploads/2010/06/linux_ecoli_control_nets-640x197.jpg" alt="Comparing genomes to computer operating systems  in terms of the topology and evolution of  their regulatory control networks" width="640" height="197" /></a><p class="wp-caption-text">Hierarchy of Linux vs E. coli internal network controls</p></div>
<p>A recent paper from the <a href="http://www.pnas.org/">National Academy of Sciences</a> compares the internal control hierarchies of Linux computers with E. coli bacteria. Specifically, the paper compares a snapshot of the Linux call graph to the cell&#8217;s transcriptional regulatory network. The cell&#8217;s network</p>
<blockquote><p>coordinates gene expression in response to environmental and intracellular signals, resulting in the execution of cellular processes such as cell divisions and metabolism.</p></blockquote>
<p>Researchers discovered that the internal bacterial network hierarchy is bottom-heavy, with most of the work performed by many specialized modules, with little direction from the top of the hierarchy.</p>
<p>In contrast, Linux control hierarchies are top-heavy: a few reusable workers at the bottom of the hierarchy are called by many top-level and middle-level components: &#8220;From an engineering point of view, the reuse of common nodes between modules is a cost-effective way to construct a complex system.&#8221;</p>
<p>An interesting conclusion from the paper:</p>
<blockquote><p>As the genome of an organism grows larger, it can reuse its tools more often and thus require fewer and fewer new tools for novel metabolic tasks. In other words, the number of enzymes grows slower than the number of transcription factors when the size of the genome increases. Previous studies have made the related finding that as one moves towards more complex organisms, the transcriptional regulatory network has an increasingly top-heavy structure with a relatively narrow base. Thus, it may be that further analysis will demonstrate the increasing resemblance of more complex eukaryotic regulatory networks to the structure of the Linux call graph.</p></blockquote>
<h4>Reference</h4>
<p>Comparing genomes to computer operating systems in terms of the topology and evolution of their regulatory control networks. Koon-Kiu Yan, Gang Fang, Nitin Bhardwaj, Roger P. Alexander, and Mark Gerstein. Yale University. PNAS, May 18, 2010. [<a href="http://www.pnas.org/content/107/20/9186.full">full article text</a>]</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2010/topologies-of-linux-e-coli-control-networks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Graph Visualization with Edge Bundling</title>
		<link>http://blog.visualmotive.com/2009/graph-visualization-edge-bundling/</link>
		<comments>http://blog.visualmotive.com/2009/graph-visualization-edge-bundling/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 12:00:02 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[graph]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=186</guid>
		<description><![CDATA[<a href="http://blog.visualmotive.com/2009/graph-visualization-edge-bundling/"><img align="left" hspace="5" width="150" height="150" src="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_bundled-150x150.jpg" class="alignleft wp-post-image tfe" alt="US air transit routes after bundling algorithm was applied" title="graph_usairways_bundled" /></a>We recently encountered (via infosthetics) a paper from Danny Holten and Jarke J. van Wijk that demonstrates an algorithm for creating beautiful graph visualizations. The original paper is Force-Directed Edge Bundling for Graph Visualization, published in 2009. In computer science theory, a graph is a collection of nodes and the edges between them. Graphs are [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_187" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_bundled.jpg"><img class="size-medium wp-image-187" title="graph_usairways_bundled" src="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_bundled-640x294.jpg" alt="US air transit routes after bundling algorithm was applied" width="640" height="294" /></a><p class="wp-caption-text">Diagram of US airways using Holten and van Wijk&#39;s bundling algorithm</p></div>
<p>We recently encountered (via <a href="http://infosthetics.com/archives/2009/06/force_directed_edge_bundling_for_graph_visualization.html">infosthetics</a>) a paper from Danny Holten and Jarke J. van Wijk that demonstrates an algorithm for creating beautiful graph visualizations. The original paper is <a href="http://www.win.tue.nl/~dholten/papers/forcebundles_eurovis.pdf">Force-Directed Edge Bundling for Graph Visualization</a>, published in 2009.</p>
<p>In computer science theory, a graph is a collection of nodes and the edges between them. Graphs are useful abstractions for describing transit networks, computer networks, and relationships among people (such as in a social network). Over the years mathematicians and theorists have discovered that there are hundreds of additional problem types that can be rewritten as graph theory problems. So, understanding and visualizing graphs is important for a large number of problem domains.</p>
<p>While there are many ways to represent a graph visually, the most intuitive is to draw a set of points (nodes) with lines (edges) connecting them. The goal, of course, is to make the visualization intuitive to understand for a human observer. The visualization should be functionally readable, aesthetically appealing, and ideally should allow an observer to glean interesting information about the graph&#8217;s structure. For larger graphs, several issues regarding visualization immediately present themselves. First, nodes must be laid out such that they to not interfere with one another. Edges should be drawn so that they can be distinguished from one another, with minimal crossing, but should also connect two nodes with the shortest line possible and minimal curvature. Node size and edge thickness become important, and either nodes or edges are connected to real-world space, they should be placed in some analogous fashion.</p>
<div id="attachment_188" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_unbundled.jpg"><img class="size-medium wp-image-188" title="graph_usairways_unbundled" src="http://blog.visualmotive.com/wp-content/uploads/2009/07/graph_usairways_unbundled-640x291.jpg" alt="Unprocessed visualization of a graph depicting US airways" width="640" height="291" /></a><p class="wp-caption-text">Unprocessed visualization of a graph representing major US airways</p></div>
<p>Holten and van Wijk have introduced several novel ideas to graph visualization theory. Their main contribution is the grouping of similar edges using a clustering technique. Edges become flexible springs that can attract and repel one another. While other researchers have proposed edge-bundling techniques, Holten and van Wijk&#8217;s algorithm uses a &#8220;self-organizing&#8221; approach that does not require additional information in the form of control hierarchies or meshes as did previously published algorithms. By transforming the edges into springs, they are able to leverage existing algorithmic techniques for modeling real world systems.<span id="more-186"></span></p>
<h3>Algorithm</h3>
<p>Each edge is modeled as a spring, and a number of control points are placed along each edge. Each control point on a spring-edge is compared with its corresponding control point on every other edge that interacts with this edge. A global spring constant is used to inform localized (edge-specific) spring constants, and this determines the &#8220;stiffness&#8221; of the resulting diagram. Over many iterations, each control point is moved slightly according to the sum of all forces acting upon it. As control points move, they inform subsequent iterations and alter the forces acting on other edges in the graph. The number of control points is increased for later iterations to provide greater edge smoothing.</p>
<p>The authors discovered that this basic algorithm resulted in too much bundling. They therefore introduce several edge-compatibility measures that are used to adjust the forces acting between any two control points. Edges should exhibit greater bundling tendencies if they:</p>
<ol>
<li>are parallel rather than perpendicular</li>
<li>are of similar lengths</li>
<li>are proximate in space</li>
<li>have similar &#8220;bands of sight&#8221; (such that the edges of a skewed parallelogram would not be considered candidates for bundling).</li>
</ol>
<p>Additional anti-aliasing was performed on the final output to increase overall smoothing. The resulting graph diagrams are beautiful and very readable.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/graph-visualization-edge-bundling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing Radiohead&#8217;s Kid A</title>
		<link>http://blog.visualmotive.com/2009/visualizing-radioheads-kid-a/</link>
		<comments>http://blog.visualmotive.com/2009/visualizing-radioheads-kid-a/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 12:00:46 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[radiohead]]></category>
		<category><![CDATA[Visualization]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=168</guid>
		<description><![CDATA[<a href="http://blog.visualmotive.com/2009/visualizing-radioheads-kid-a/"><img align="left" hspace="5" width="150" height="150" src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_01_everything-150x150.png" class="alignleft wp-post-image tfe" alt="Everything In Its Right Place" title="kid_a_01_everything" /></a>Visualizations show relative pitch strength across the duration of the song. Colors scheme is derived from the Kid A album cover. Song analysis by Echo Nest via the Echo Nest Remix toolkit. Rendering was done with PyCairo.]]></description>
			<content:encoded><![CDATA[<div id="attachment_169" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_01_everything.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_01_everything-640x80.png" alt="Everything In Its Right Place" title="kid_a_01_everything" width="640" height="80" class="size-medium wp-image-169" /></a><p class="wp-caption-text">Everything In Its Right Place</p></div>
<div id="attachment_170" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_02_kid_a.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_02_kid_a-640x80.png" alt="Kid A" title="kid_a_02_kid_a" width="640" height="80" class="size-medium wp-image-170" /></a><p class="wp-caption-text">Kid A</p></div>
<div id="attachment_171" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_03_national_anthem.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_03_national_anthem-640x80.png" alt="National Anthem" title="kid_a_03_national_anthem" width="640" height="80" class="size-medium wp-image-171" /></a><p class="wp-caption-text">National Anthem</p></div>
<div id="attachment_172" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_04_disappear.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_04_disappear-640x80.png" alt="How To Disappear Completely" title="kid_a_04_disappear" width="640" height="80" class="size-medium wp-image-172" /></a><p class="wp-caption-text">How To Disappear Completely</p></div>
<div id="attachment_173" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_05_treefingers.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_05_treefingers-640x80.png" alt="Treefingers" title="kid_a_05_treefingers" width="640" height="80" class="size-medium wp-image-173" /></a><p class="wp-caption-text">Treefingers</p></div>
<div id="attachment_174" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_06_optimistic.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_06_optimistic-640x80.png" alt="Optimistic" title="kid_a_06_optimistic" width="640" height="80" class="size-medium wp-image-174" /></a><p class="wp-caption-text">Optimistic</p></div>
<div id="attachment_175" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_07_limbo.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_07_limbo-640x80.png" alt="In Limbo" title="kid_a_07_limbo" width="640" height="80" class="size-medium wp-image-175" /></a><p class="wp-caption-text">In Limbo</p></div>
<div id="attachment_176" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_08_idioteque.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_08_idioteque-640x80.png" alt="Idioteque" title="kid_a_08_idioteque" width="640" height="80" class="size-medium wp-image-176" /></a><p class="wp-caption-text">Idioteque</p></div>
<div id="attachment_177" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_09_morning_bell.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_09_morning_bell-640x80.png" alt="Morning Bell" title="kid_a_09_morning_bell" width="640" height="80" class="size-medium wp-image-177" /></a><p class="wp-caption-text">Morning Bell</p></div>
<div id="attachment_178" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_10_motion_picture.png"><img src="http://blog.visualmotive.com/wp-content/uploads/2009/04/kid_a_10_motion_picture-640x80.png" alt="Motion Picture Soundtrack" title="kid_a_10_motion_picture" width="640" height="80" class="size-medium wp-image-178" /></a><p class="wp-caption-text">Motion Picture Soundtrack</p></div>
<p>Visualizations show relative pitch strength across the duration of the song. Colors scheme is derived from the <em>Kid A</em> album cover. Song analysis by <a href="http://echonest.com">Echo Nest</a> via the <a href="http://code.google.com/p/echo-nest-remix/">Echo Nest Remix</a> toolkit. Rendering was done with <a href="http://cairographics.org/pycairo/">PyCairo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/visualizing-radioheads-kid-a/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jason Salavon</title>
		<link>http://blog.visualmotive.com/2009/jason-salavon/</link>
		<comments>http://blog.visualmotive.com/2009/jason-salavon/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 12:00:57 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[photography]]></category>
		<category><![CDATA[salavon]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=136</guid>
		<description><![CDATA[<a href="http://blog.visualmotive.com/2009/jason-salavon/"><img align="left" hspace="5" width="150" height="150" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/salavon_house_series-150x150.jpg" class="alignleft wp-post-image tfe" alt="salavon_house_series" title="salavon_house_series" /></a>We find the work of Jason Salavon highly inspirational. At the intersection of art and visualization, his images are distinctive for their surface and immediate graphical language while also communicating significant stories of process and history. By merging dozens or hundreds images that share some common theme, Salavon helps us extract high-level information about common [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_137" class="wp-caption alignnone" style="width: 650px"><a href="http://blog.visualmotive.com/wp-content/uploads/2009/03/salavon_house_series.jpg"><img class="size-medium wp-image-137" title="salavon_house_series" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/salavon_house_series-640x337.jpg" alt="salavon_house_series" width="640" height="337" /></a><p class="wp-caption-text">Salavon&#39;s photograph series Homes for Sale. Clockwise, from top left: Seattle, Miami, Los Angeles, New York City, Dallas, Chicago.</p></div>
<p>We find the work of Jason Salavon highly inspirational. At the intersection of art and visualization, his images are distinctive for their surface and immediate graphical language while also communicating significant stories of process and history.</p>
<p>By merging dozens or hundreds images that share some common theme, Salavon helps us extract high-level information about common form, texture, and color. The details are sacrificed, but we gain understanding of patterns inherent in the larger series.</p>
<p>In the <em>Homes for Sale</em> s images, aggregation is done by place and time. The photographs, all from 2002, were taken by realtors. We might expect different results in different cities, years, or seasons. As it is, we can see the green grass of Dallas contrasting with the yellow lawns in Chicago, and the blue skies of Miama and Los Angeles stand out against the gray atmospheres in Seattle and New York.</p>
<div id="attachment_140" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-140" title="salavon_playboy_centerfolds" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/salavon_playboy_centerfolds-640x328.jpg" alt="Every Playboy centerfold, by decade. From the left: 1960s, 1970s, 1980s, 1990s." width="640" height="328" /><p class="wp-caption-text">Every Playboy centerfold, by decade. From the left: 1960s, 1970s, 1980s, 1990s.</p></div>
<p>In the <em>Playboy</em> series, aggregation is achieved by limiting the kind of image (only centerfolds) and differentiating by decade. We see artifacts of culture in composition and colors, warm to cool, with lighter skin and hair emphasized in later decades.</p>
<div id="attachment_138" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-138" title="sugimoto_theater" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/sugimoto_theater-640x493.jpg" alt="Hiroshi Sugimoto, Akron Civic Theater, Ohio (1980)" width="640" height="493" /><p class="wp-caption-text">Hiroshi Sugimoto, Akron Civic Theater, Ohio (1980)</p></div>
<p>We can think of Salavon&#8217;s photos as 2D films, where all frames are merged into one static image. Similar work has been done by the brilliant photographer Hiroshi Sugimoto, who&#8217;s camera has captured the entirety of feature films with one long shutter (above). Sugimoto does not wish to tell us about the film itself—in fact, the film title is never announced—but rather about qualities of light, surface, shape, form, and so forth.</p>
<p>Most data visualization projects start with structured data, spreadsheets, XML, databases, APIs. We like Salavon&#8217;s projects that bridge data visualization with more traditional media, using a raster imagery as the data sources, extracting patterns and meaning from highly unstructured content. They are beautiful in their own right, and serve as an inspiration for future data visualization projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/jason-salavon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Song Visualizations with Echo Nest</title>
		<link>http://blog.visualmotive.com/2009/song-visualizations-echo-nest/</link>
		<comments>http://blog.visualmotive.com/2009/song-visualizations-echo-nest/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 12:00:34 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Visualization]]></category>
		<category><![CDATA[echo nest]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=78</guid>
		<description><![CDATA[<a href="http://blog.visualmotive.com/2009/song-visualizations-echo-nest/"><img align="left" hspace="5" width="150" height="150" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/glass2-150x150.png" class="alignleft wp-post-image tfe" alt="Philip Glass String Quartet #5, 2nd Movement" title="philip_glass_string_quartet_viz" /></a>We recently came across Anita Lillie&#8217;s beautiful music visualization and MusicBox projects. The music visualization project was especially intriguing to us, since it was the only music visualization project we&#8217;d seen that did not require video playback—the visualizations were strictly in 2D. Unfortunately, the source code for Lillie&#8217;s visualizations was not available, so we decided [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_79" class="wp-caption alignnone" style="width: 650px"><img class="size-full wp-image-79" title="philip_glass_string_quartet_viz" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/glass2.png" alt="Philip Glass String Quartet #5, 2nd Movement" width="640" height="216" /><p class="wp-caption-text">Philip Glass String Quartet #5, 2nd Movement</p></div>
<p>We recently came across Anita Lillie&#8217;s beautiful <a href="http://www.flyingpudding.com/projects/viz_music/">music visualization</a> and <a href="http://thesis.flyingpudding.com/">MusicBox</a> projects. The music visualization project was especially intriguing to us, since it was the only music visualization project we&#8217;d seen that did not require video playback—the visualizations were strictly in 2D. Unfortunately, the source code for Lillie&#8217;s visualizations was not available, so we decided to build our own.</p>
<p>Our goal was to build a 2D visualization that could be approached like one of Edward Tufte&#8217;s sparklines: a quick, snapshot overview with high information density. In addition, having an image snapshot of a song could be useful for visually-minded people who often find themselves thinking of music as in spatial or pictorial terms. In the same way that Cicero used different rooms in his home to memorize different sections of his oratories, a 2D song-picture could provide a memorable structure for interpreting and contextualizing moments in a piece of music.</p>
<p>Here is the fruit of our labors. The top segment represents volume across the duration of the song. The bottom segments represent the 12 pitches of the song&#8217;s primary key, and the weight of each block corresponds to that pitch&#8217;s volume at that point in the song. Details, including Echo Nest integration and source code, are below.</p>
<div id="attachment_84" class="wp-caption alignnone" style="width: 650px"><img class="size-full wp-image-84" title="darkside" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/darkside.png" alt="Pink Floyd, Dark Side of the Moon, &quot;Speak to Me/Breathe in the Air&quot;" width="640" height="216" /><p class="wp-caption-text">Pink Floyd, Dark Side of the Moon, &quot;Speak to Me/Breathe in the Air&quot;. The opening crescendos of this album are clearly visible. </p></div>
<div id="attachment_87" class="wp-caption alignnone" style="width: 650px"><img class="size-full wp-image-87" title="highroller" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/highroller.png" alt="Crystal Method, Vegas, &quot;High Roller&quot;" width="640" height="216" /><p class="wp-caption-text">Crystal Method, Vegas, &quot;High Roller&quot;. We like the seeing that perfect volume curve at the beginning of this song. There&#39;s a pronounced industrial feeling here.</p></div>
<div id="attachment_100" class="wp-caption alignnone" style="width: 650px"><img class="size-full wp-image-100" title="imperial1" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/imperial1.png" alt="John Williams, Star Wars: A New Hope, &quot;Imperial Attack&quot;" width="640" height="216" /><p class="wp-caption-text">John Williams, Star Wars: A New Hope, &quot;Imperial Attack&quot;. This visualization should probably be in black.</p></div>
<div id="attachment_86" class="wp-caption alignnone" style="width: 650px"><img class="size-full wp-image-86" title="goldfrapp_whitehorse" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/goldfrapp_whitehorse.png" alt="Goldfrapp, Supernature, &quot;Ride a White Horse&quot;" width="640" height="216" /><p class="wp-caption-text">Goldfrapp, Supernature, &quot;Ride a White Horse&quot;. Volume leveling clearly visible. Pop at its finest.</p></div>
<div id="attachment_92" class="wp-caption alignnone" style="width: 650px"><img class="size-full wp-image-92" title="kyrie" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/kyrie.png" alt="Mozart, Requiem, &quot;Kyrie&quot;" width="640" height="216" /><p class="wp-caption-text">Mozart, Requiem, &quot;Kyrie&quot;</p></div>
<div id="attachment_90" class="wp-caption alignnone" style="width: 650px"><img class="size-full wp-image-90" title="permutations" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/permutations.png" alt="George Maasry, &quot;Permutations&quot; " width="640" height="216" /><p class="wp-caption-text">George Maasry, &quot;Permutations&quot;. Mathematical permutations on a theme.</p></div>
<p><span id="more-78"></span></p>
<h3>Making Of</h3>
<p>The <a href="http://the.echonest.com/">Echo Nest</a> has developed a brilliant piece of software called Analyze. It &#8220;listens&#8221; to music as if it were human, and extracts information about rhythm, tone, pitch, etc. The amount and quality of information available is stunning. A simple web service API provides anyone with access to its vast power.</p>
<p>Adam Lindsay has written a <a href="http://lindsay.at/work/remix/overview.html">fantastic overview</a> of the API service.</p>
<p>Our code, below, requires the <a href="http://www.pythonware.com/products/pil/">Python Imaging Library</a>, <a href="http://effbot.org/zone/pythondoc-aggdraw.htm">aggdraw</a>, and <a href="http://code.google.com/p/echo-nest-remix/">Echo Nest Remix</a> with a valid <a href="http://developer.echonest.com/pages/overview">API key</a>. This is a rough sketch of what is possible, and there are probably bugs, so don&#8217;t be surprised if something breaks.</p>
<p>Please feel free to use and modify this code as you see fit, we&#8217;d just ask that you provide a link back to this site if you happen to use our code in any of your projects.</p>
<pre>import echonest.audio as audio
import Image
import aggdraw
import math

def main( input_filename, output_filename, width=None, height=None ):
    """
    Simple song visualization using Echo Nest
    published by Chris Mueller, http://visualmotive.com
    """
    audio_file = audio.LocalAnalysis( input_filename )
    segments = audio_file.analysis.segments

    if width is None:
        width = int( math.ceil( audio_file.analysis.duration ) ) * 2
    width_scale = float( width ) / audio_file.analysis.duration
    if height is None:
        height = 216
    height_part = height/3

    img = Image.new( "RGBA", ( width, height ), "#ffffff" )
    draw = aggdraw.Draw( img )
    draw.setantialias( False )
    brush = aggdraw.Brush( "#0088aa", 255 )
    pen = aggdraw.Pen( "#ffffff", 1, 0 )

    for segment in segments:
        left = width_scale * segment.start
        right = width_scale * ( segment.start + segment.duration )
        rect = ( left,
                 height_part,
                 right,
                 segment.loudness_max * -1 )
        draw.rectangle( rect, pen, brush )
        for i in xrange( len( segment.pitches ) ): # assumes a constant key
            pitch_loudness = segment.pitches[ i ]
            pitch_brush = aggdraw.Brush( "#0088aa", int( 255 * pitch_loudness ) )
            pitch_height = 2 * height_part * ( 1.0 / 12.0 )
            top = height_part + i * pitch_height
            rect = ( left,
                     top,
                     right,
                     top + pitch_height )
            draw.rectangle( rect, pen, pitch_brush )

    draw.flush()
    del draw
    img.save( output_filename, "PNG")</pre>
<p>This is only scratching the surface of possible 2D music visualizations. We look forward to exploring this concept more in the future. Many thanks to Echo Nest for their great service.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/song-visualizations-echo-nest/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Painting Supernovas</title>
		<link>http://blog.visualmotive.com/2009/painting-supernovas/</link>
		<comments>http://blog.visualmotive.com/2009/painting-supernovas/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 22:48:03 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[painting]]></category>
		<category><![CDATA[supernova]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=23</guid>
		<description><![CDATA[<a href="http://blog.visualmotive.com/2009/painting-supernovas/"><img align="left" hspace="5" width="150" height="150" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/supernova_2-150x150.jpg" class="alignleft wp-post-image tfe" alt="Supernova Zoom" title="supernova_2" /></a>Christopher Healey and his research team have developed a painterly approach to data visualization. His software correlates dimensions of multivariate data to dimensions of visual sensation. The results are stunning and have both artistic and scientific merit. In the images shown here, Healey&#8217;s software has been turned to the task of visualizing data from the [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_38" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-38" title="supernova_2" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/supernova_2-640x382.jpg" alt="Supernova Zoom" width="640" height="382" /><p class="wp-caption-text">A. Visualizing a star&#39;s death</p></div>
<p><a href="http://www.csc.ncsu.edu/faculty/healey/">Christopher Healey</a> and his research team have developed a painterly approach to data visualization. His software correlates dimensions of multivariate data to dimensions of visual sensation. The results are stunning and have both artistic and scientific merit.</p>
<p>In the images shown here, Healey&#8217;s software has been turned to the task of visualizing data from the explosion of a dying star. His colleagues at NCSU record three-dimensional timesnaps of the supernova, then investigate that data by looking at two-dimensional slices. These slices, at a 500&#215;500 resolution, carry information across the variables of velocity, magnitude, pressure, and density.</p>
<p>The following mappings are in use:</p>
<ul>
<li>magnitude → color</li>
<li>density → stroke size</li>
<li>Δx and Δy → stroke orientation</li>
</ul>
<div id="attachment_37" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-37" title="supernova_1" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/supernova_1-640x244.jpg" alt="Supernova" width="640" height="244" /><p class="wp-caption-text">B. Flow and energy in a supernova</p></div>
<p>Continuity of strokes (image B) indicate a continuous flow, but sharp contrasts in color or orientation (note the right side of image A, at the edge of the shock wave) suggest discontinuties and a swarm of vortices.</p>
<p>Healey and his team have been working on painterly visualizations for several years. His <a href="http://www.csc.ncsu.edu/faculty/healey/">website</a> is flush with <a href="http://www.csc.ncsu.edu/faculty/healey/abstract/pubs.html">papers</a> and examples of how this approach can often yield useful and beautiful results. In particular: <a href="http://www.csc.ncsu.edu/faculty/healey/download/npar.07.pdf">Engaging Viewers Through Nonphotorealistic Representations</a> (PDF).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/painting-supernovas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feltron Annual Reports</title>
		<link>http://blog.visualmotive.com/2009/feltron-annual-reports/</link>
		<comments>http://blog.visualmotive.com/2009/feltron-annual-reports/#comments</comments>
		<pubDate>Sat, 07 Mar 2009 18:35:23 +0000</pubDate>
		<dc:creator>Chris Mueller</dc:creator>
				<category><![CDATA[Visualization]]></category>
		<category><![CDATA[feltron]]></category>
		<category><![CDATA[Maps]]></category>

		<guid isPermaLink="false">http://blog.visualmotive.com/?p=13</guid>
		<description><![CDATA[<a href="http://blog.visualmotive.com/2009/feltron-annual-reports/"><img align="left" hspace="5" width="150" height="150" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/feltron-150x150.jpg" class="alignleft wp-post-image tfe" alt="Map and timeline from the Feltron 2008 Annual Report" title="feltron" /></a>The Feltron Annual Reports are brilliant personal visualizations that describe, one year at a time, the life of Nicholas Felton. He uses an elegant combination of textual manipulation, charts, and diagrams to convey interesting and sometimes trivial facts about his life. We learn that the subway fees are 93 cents on the mile, compared with [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_34" class="wp-caption alignnone" style="width: 650px"><img class="size-medium wp-image-34" title="feltron" src="http://blog.visualmotive.com/wp-content/uploads/2009/03/feltron-640x400.jpg" alt="Map and timeline from the Feltron 2008 Annual Report" width="640" height="400" /><p class="wp-caption-text">Map and timeline from the Feltron 2008 Annual Report</p></div>
<p>The Feltron Annual Reports are brilliant personal visualizations that describe, one year at a time, the life of Nicholas Felton. He uses an elegant combination of textual manipulation, charts, and diagrams to convey interesting and sometimes trivial facts about his life.</p>
<p>We learn that the subway fees are 93 cents on the mile, compared with 536 cents/mile spent at the gym (unclear whether this is on a treadmill, elliptical, or stationary bike). Bradford Cox, Radiohead, and Daedalus fill out most of the “music heard” pie chart. A set of flags clipped to map sections show us unique locations, and below the maps, a timeline correlates personal life events with global and national affairs.</p>
<p>Annual reports dating back to 2005 are available at <a href="http://feltron.com/">feltron.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.visualmotive.com/2009/feltron-annual-reports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
