<?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>Friend -- Peter Esveld</title>
	<atom:link href="http://www.hellofriend.info/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.hellofriend.info</link>
	<description>Peter Olivier Esveld</description>
	<lastBuildDate>Tue, 27 Jul 2010 15:14:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Nature of Code Final &#8211; Plotter Experiments</title>
		<link>http://www.hellofriend.info/?p=497</link>
		<comments>http://www.hellofriend.info/?p=497#comments</comments>
		<pubDate>Mon, 07 Jun 2010 20:25:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=497</guid>
		<description><![CDATA[For my Nature of Code final I implemented a version of my thesis that allowed path following in Ruby-Processing along 3D vectors. Boxes would start at a point at the bottom of the 3D map and travel along pre-determined routes. These routes represented the flights of U.N. planes over Sudan. The height of the arcs [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/06/Screen-shot-2010-06-07-at-3.41.45-PM.png"><img class="alignnone size-full wp-image-498" title="Screen shot 2010-06-07 at 3.41.45 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/06/Screen-shot-2010-06-07-at-3.41.45-PM.png" alt="" width="598" height="440" /></a></p>
<p>For my Nature of Code final I implemented a version of my thesis that allowed path following in Ruby-Processing along 3D vectors. Boxes would start at a point at the bottom of the 3D map and travel along pre-determined routes. These routes represented the flights of U.N. planes over Sudan. The height of the arcs and start and end points represented the relative length of the flights. the number of boxes travelling represented the relative frequency of the flying involved. Unfortunately, I accidentally overwrote the files I showed in class. But I do have the individual class files I wrote to implement this functionality. These are pretty straightforward ports of Shiffman&#8217;s particle system class and path-following classes. Below is a 3d Particle / Emitter after running for an hour or so. (I forgot it on my desktop).</p>
<p>The main code I used was this simple Path-Following implementation, which was pretty easily hooked into my project. Just add some start &amp; endpoints, calculated the endpoints, and shoot those boids off into space. <a href="http://github.com/pespes/path_following/blob/master/paths.rb" target="_blank">Here&#8217;s the Github version of Shiffman&#8217;s Path Following</a> &#8211; just a one-to-one port into Ruby-Processing. Some more customized stuff follows below.</p>
<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/06/3d_spiro.png"><img class="alignnone size-full wp-image-500" title="3d_spiro" src="http://www.hellofriend.info/wp-content/uploads/2010/06/3d_spiro.png" alt="" width="400" height="400" /></a></p>
<h1>Spirograph</h1>
<p>The main code for the spirograph goes something like below. <a href="http://github.com/pespes/RP-Spirograph" target="_blank">You can get all of this code on Github</a>, and you&#8217;ll need to get it all because you need ToxicLibs, and the attractor &amp; particle class. And PeasyCam. But at least you get an idea of what&#8217;s going on.</p>
<p><span id="more-497"></span></p>
<pre class="brush: ruby;">
$LOAD_PATH &lt;&lt; 'library/'

require 'library/attractor.rb'
require 'library/particle.rb'

class Playground &lt; Processing::App

  load_libraries 'opengl', 'toxiclibscore', 'peasycam'
  include_package &quot;toxi.geom&quot;
  import 'peasy'

  V3 = Java::toxi.geom

  def setup
    size 800, 600, OPENGL
    new_particle
    configure_camera
  end

  def draw
    background 0
    draw_particle
  end

  def new_particle
    @ac = V3.Vec3D.new(0.0, 0.0, 0.0)
    @ve = V3.Vec3D.new(0.0, 1.0, 0.0)
    @lo = V3.Vec3D.new(50, 50, 0.0)
    # Create new thing with some initial settings
    @p = Particle.new(@ac, @ve, @lo, 10)
    # Create an attractive body
    @a = Attractor.new(V3.Vec3D.new(width/2, height/2, 0.0), 3, 2)
  end

  def draw_particle
    @a.go
    # Calculate a force exerted by &quot;attractor&quot; on &quot;thing&quot;
    f = @a.calcGravForce(@p)
    # Apply that force to the thing
    @p.apply_force(f)
    # Update and render the positions of both objects
    @p.run
  end

  def configure_camera
    @cam = PeasyCam.new(self, 800)
    @cam.set_minimum_distance(-1000)
    @cam.set_maximum_distance(5000)
  end

  def mouse_pressed
    puts @p.points
    puts &quot;====================================================================================================================================&quot;
  end
end

Playground.new :title =&gt; &quot;playground&quot;
</pre>
<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/06/3d_arc5.png"><img class="alignnone size-full wp-image-507" title="3d_arc5" src="http://www.hellofriend.info/wp-content/uploads/2010/06/3d_arc5.png" alt="" width="320" height="320" /></a><a href="http://www.hellofriend.info/wp-content/uploads/2010/06/3d_arc4.png"><img class="alignnone size-full wp-image-506" title="3d_arc4" src="http://www.hellofriend.info/wp-content/uploads/2010/06/3d_arc4.png" alt="" width="320" height="320" /></a></p>
<h1>Particle Arcs</h1>
<p>Here&#8217;s another script that throws out a particle and records / draws past positions of that particle as it moves through the 3D space. <a href="http://github.com/pespes/3d-Attractor">You can get this one on Github too</a>. Here&#8217;s the main sketch to give you the gist:</p>
<pre class="brush: ruby;">
$LOAD_PATH &lt;&lt; 'library/'

require 'library/attractor.rb'
require 'library/particle.rb'

class Playground &lt; Processing::App

  load_libraries 'opengl', 'toxiclibscore', 'peasycam'
  include_package &quot;toxi.geom&quot;
  import 'peasy'

  V3 = Java::toxi.geom

  def setup
    size 800, 600, P3D
    start = V3.Vec3D.new(0.0,0.0,0.0)
    finish = V3.Vec3D.new(500,500,0.0)
    @ac = V3.Vec3D.new(0.0,0.0,2.0)
    @ve = V3.Vec3D.new(0.0,1.0,1.0)
    new_particle(start, finish)
    configure_camera
  end

  def draw
    background 0
    draw_particle
  end

  def new_particle(start_loc, end_loc)
    t = start_loc.add(end_loc)
    t.scale_self(0.5)
    t.add_self(0,0,300)
    @lo = start_loc
    # Create new thing with some initial settings
    @p = Particle.new(@ac,@ve,start_loc)
    # Create an attractive body
    @a = Attractor.new(t, 3, 6)
    @a2 = Attractor.new(end_loc, 3, 6)
    @target = false
  end

  def draw_particle
    if(@p.loc.z &lt;= 300 &amp;&amp; @target == false)
      @a.go
      f = @a.calcGravForce(@p)
      @p.apply_force(f)
      puts [@p.loc.x, @p.loc.y, @p.loc.z].to_s
      @p.run
    elsif(@p.loc.z &gt;= 0)
      @a2.go
      f2 = @a2.calcGravForce(@p)
      @p.apply_force(f2)
      @target = true
      puts [@p.loc.x, @p.loc.y, @p.loc.z].to_s
      @p.run
    end
    @p.draw_points
  end

  def configure_camera
    @cam = PeasyCam.new(self, 800)
    @cam.set_minimum_distance(-1000)
    @cam.set_maximum_distance(5000)
  end
end
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=497</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plotter &#8211; Process Documentation</title>
		<link>http://www.hellofriend.info/?p=451</link>
		<comments>http://www.hellofriend.info/?p=451#comments</comments>
		<pubDate>Sat, 15 May 2010 00:00:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=451</guid>
		<description><![CDATA[Plotter &#8211; Data from Recovery.gov from Peter Esveld on Vimeo. What is Plotter? Plotter is an open-source tool for designers to map their data into the real world. Plotter asks the you &#8211; the designer &#8211; to define that connection between data and visual presentation before making anything. In other words, whatever else you make [...]]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="508" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=11752114&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="620" height="508" src="http://vimeo.com/moogaloop.swf?clip_id=11752114&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/11752114">Plotter &#8211; Data from Recovery.gov</a> from <a href="http://vimeo.com/user820879">Peter Esveld</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<h1>What is Plotter?</h1>
<p><strong> </strong></p>
<p>Plotter is an open-source tool for designers to map their data into the real world. Plotter asks the you &#8211; the designer &#8211; to define that connection between data and visual presentation before making anything. In other words, whatever else you make with Plotter, you’ll be making a map.</p>
<p>The system is designed so that in theory you could map anything you wanted &#8211; buildings, animals, or conceptual frameworks.</p>
<p><span id="more-451"></span></p>
<p>Plotter asks that whatever other characteristics each individual component of the dataset contains, that it also include a specific timestamp and location vector. The timestamp and location can be of any scale &#8211; seconds to centuries, millimeters to light-years &#8211; but they need to be embedded within the data. Using the two characteristics of space and time, Plotter then asks the user to provide the imagery to layer data on top of. This is the context, and can take the form of any raster-based photograph, scan, sketch, rendering etc. There are plans to allow Plotter to accept vector imagery such as KML files and 3D models as well.</p>
<p>After appropriate data and map imagery have been assembled, the core of Plotter goes into effect &#8211; a 3D engine for rendering, displaying, and exploring data in real time.</p>
<h1>Prototyping</h1>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="620" height="496" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=11749194&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="620" height="496" src="http://vimeo.com/moogaloop.swf?clip_id=11749194&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/11749194">Plotter &#8211; Early Prototype</a> from <a href="http://vimeo.com/user820879">Peter Esveld</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>This project didn&#8217;t set out to be a visualization tool. Originally, Plotter was conceived as a client project. A manager at the U.N. in New York had asked for a sophisticated way to track and view U.N. flights all around the world. The goal was to be able to see individual routes and fuel consumption &#8211; and get a really detailed look at the carbon footprint generated by all this air travel on both a local and a global scale. This would have been really simple to accomplish with charts and graphs, but I wanted to build something more sophisticated. The first attempt is what you see in the video above.</p>
<p>So, prototyping started not by creating data visualizations in Processing, but in trying to pick a technology to parse data in Excel Documents and upload that into something usable (A CouchDB database, as it turns out). All the U.N. flight records were in relatively unstructured Excel format &#8211; lots of extra junk in there, extra cells and rows, gif images, etc. <a href="http://www.logcluster.org/ops/sudan/air-transport/schedules/unmis-regular-flight-schedule-effective-3rd-april/unmis-regular-flight-schedule-3-april-08.xls" target="_blank">Here&#8217;s an example</a>, freely available online. So, I needed a really flexible way to program something to pull this data out. Where I wouldn&#8217;t have to write thousands of lines of code, and could hopefully leverage existing libraries to deal with the primitive nuts and bolts. This is where <a href="http://clojure.org/" target="_blank">Clojure</a> fits the bill. I wasn&#8217;t really anticipating learning a <a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)" target="_blank">Lisp language</a> or the basics of <a href="http://en.wikipedia.org/wiki/Functional_programming" target="_blank">functional programming</a>, but that&#8217;s what happened. Clojure is built on top of the Java Virtual Machine, which means that you can call methods from any Java library &#8211; including <a href="http://jexcelapi.sourceforge.net/" target="_blank">JExcel</a>, Java&#8217;s Excel document library. Clojure also lets you accomplish tasks with 5 lines of code where Java might require you to write 30. Here&#8217;s an example that uses JExcel to open up an Excel doc, look at each sheet, and print each row of that sheet to the console:</p>
<pre class="brush: scala;">(defn parse-it [file]
  (let [wb (Workbook/getWorkbook (File. file))]
    (doseq [sheet (.getSheets wb)]
      (let [num-rows (range 0 (.getRows sheet))]
        (doseq [r num-rows]
          (let [row (.getRow sheet (r))]
          (prn (format-temp row))))))))</pre>
<p>[Link to full parsing code here]</p>
<p>Once the Excel docs are parsed, they are pushed up into a <a href="http://couchdb.apache.org/" target="_blank">CouchDB database</a>. If a database doesn&#8217;t exist, one is created on the fly. This is all made possible by the excellent <a href="http://github.com/tashafa/clutch">Clutch library for Clojure</a>. CouchDB isn&#8217;t super well documented yet, but it&#8217;s basically a very fast database that allows versatile indexing and searching. More information can be found here. <a href="http://books.couchdb.org/relax/intro/why-couchdb" target="_blank">CouchDB</a> is excellent for data visualization, because it allows for the creation of specific <a href="http://books.couchdb.org/relax/design-documents/views" target="_blank">views</a>, or subsets of data, to that you can use to pull in only the data you need for a given application state. For purposes of testing and design, I used a local installation of <a href="http://janl.github.com/couchdbx/" target="_blank">CouchDBX</a>, which provides a bare-bones GUI so that you can interact with Couch, browse the records, and write views—all inline.</p>
<p>The core of Plotter is built using <a href="http://www.processing.org" target="_blank">Processing</a>, a Java library for visual programming. I further clouded the issue by using a more obscure fork of Processing called <a href="http://github.com/jashkenas/ruby-processing" target="_blank">Ruby-Processing</a>, developed by Jeremy Ashkenas. Ruby-Processing runs on the JVM as well, using JRuby, and is great for building cool stuff very quickly. Plotter is, at its heart, a big, tile-based, scaling interactive map. As such, it owes a heavy debt to <a href="http://modestmaps.com/" target="_blank">Modest Maps</a>, developed by the amazing guys over at <a href="http://stamen.com/" target="_blank">Stamen</a>, a design studio in San Francisco. Plotter&#8217;s basic functionality comes from Modest Maps, although most of it was completely re-worked to work as a concurrent, thread-safe 3D mapping engine (written in Ruby, not Java).</p>
<p>A typical useful Jruby paradigm might be something like creating a new Java thread pool:</p>
<pre class="brush: ruby;">
# Thread Pool
@executor = java.util.concurrent.Executors::newFixedThreadPool(13)
# Array to hold queued threads.
@future = Array.new
</pre>
<p>Later, add a thread to the pool (Loader needs to implement Java&#8217;s Callable)</p>
<pre class="brush: ruby;">
@future.push(@executor.submit(Loader.new(v, @list[v[2]][v])))
</pre>
<p>Here&#8217;s the Loader class</p>
<pre class="brush: ruby;">
class Loader

  include Processing::Proxy
  include java.util.concurrent.Callable

  def initialize(key, path)
    @key = key
    @path = path
    #puts &quot;loader #{@key}&quot;
  end

  def call
    img = PImage.new
    img = load_image(@path)
    #puts &quot;the key is: #{@key}, the path is #{@path}, the image is #{img}&quot;
    return @key, img
  end
end
</pre>
<p>Then you could check to see if those threads have finished, and pop the return values (an image and hashtag, in this case) into another array:</p>
<pre class="brush: ruby;">
@future.each_index do |i|
  if(@future[i].isDone())
    key, val = @future[i].get
    @images[key] = val
    @future.delete_at(i)
  end
end
</pre>
<h1>Look &amp; Feel</h1>
<p>Plotter&#8217;s look and feel is largely up to the developer. In general, it attempts to keep a very neutral design and let the interaction and data take center stage. Even so, things should look extremely clean and tidy, and very modern. Plotter&#8217;s design aesthetic tends toward the work of Edward Tufte, Herbert Bayer, and contemporary Dutch graphic designers. Here are a few sample images to better explain the ideal Plotter mapping aesthetic.</p>
<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/bayer.png"><img class="alignnone size-full wp-image-492" title="bayer" src="http://www.hellofriend.info/wp-content/uploads/2010/05/bayer.png" alt="" width="512" height="371" /></a></p>
<p>Image from <a href="http://www.flickr.com/photos/mstoll/sets/72157605938388380/">this amazing Flickr set</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=451</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solar Leaf Node Modules</title>
		<link>http://www.hellofriend.info/?p=445</link>
		<comments>http://www.hellofriend.info/?p=445#comments</comments>
		<pubDate>Wed, 12 May 2010 18:04:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Physical]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=445</guid>
		<description><![CDATA[In Design frontiers class we were tasked with coming up with applications for Konarka Power Plastics. We were given certain specifications for how solar plastic works &#8211; each node needs to be the same surface area, different colors create different power output, etc. Here&#8217;s our design &#8211; a concealable modular power source for outdoor deployment. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.20-PM.png"><img title="Screen shot 2010-05-12 at 1.57.20 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.20-PM.png" alt="" width="542" height="401" /></a></p>
<p>In Design frontiers class we were tasked with coming up with applications for Konarka Power Plastics. We were given certain specifications for how solar plastic works &#8211; each node needs to be the same surface area, different colors create different power output, etc. Here&#8217;s our design &#8211; a concealable modular power source for outdoor deployment. It&#8217;s vinelike, plant-like aesthetic allows for use in areas where traditional solar panels might not be an option, and it&#8217;s designed for adjustment to follow the sun.</p>
<p>Konarka Power Plastic is a photovoltaic material that captures both indoor and outdoor light and converts it into direct current (DC) electrical energy. This energy can be used immediately, stored for later use, or converted to other forms. Power Plastic can be applied to a limitless number of potential applications – from microelectronics to portable power, remote power and building-integrated applications.</p>
<p><span id="more-445"></span></p>
<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.05-PM.png"><img class="alignnone size-full wp-image-446" title="Screen shot 2010-05-12 at 1.57.05 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.05-PM.png" alt="" width="445" height="356" /></a><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.34-PM.png"><img class="alignnone size-full wp-image-448" title="Screen shot 2010-05-12 at 1.57.34 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.34-PM.png" alt="" width="321" height="308" /></a><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.20-PM.png"><img class="alignnone size-full wp-image-447" title="Screen shot 2010-05-12 at 1.57.20 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.57.20-PM.png" alt="" width="542" height="401" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=445</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Genetically Altered Bees, Flowers, and Termites for a Biotopian Future</title>
		<link>http://www.hellofriend.info/?p=429</link>
		<comments>http://www.hellofriend.info/?p=429#comments</comments>
		<pubDate>Wed, 12 May 2010 17:34:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Physical]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=429</guid>
		<description><![CDATA[Bees Genetically altered. Bees collect the nectar of flowers, and use it to produce honey. this honey is then consumed by worker bees which have special glands that will turn the honey into wax. After masticating the wax, it is malleable enough to bee used in constructing the nest. The idea is that by modifying the nectar [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.15.03-PM.png"><img class="alignnone size-full wp-image-430" title="Screen shot 2010-05-12 at 1.15.03 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.15.03-PM.png" alt="" width="590" height="270" /></a></p>
<p><span id="more-429"></span></p>
<p><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.15.30-PM.png"><img class="alignnone size-medium wp-image-432" style="border: 0px initial initial;" title="Screen shot 2010-05-12 at 1.15.30 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.15.30-PM-275x300.png" alt="" width="275" height="300" /></a><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.15.39-PM.png"><img class="alignnone size-medium wp-image-433" style="border: 0px initial initial;" title="Screen shot 2010-05-12 at 1.15.39 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.15.39-PM-300x300.png" alt="" width="300" height="300" /></a></p>
<p><strong>Bees</strong></p>
<div id="_mcePaste">Genetically altered. Bees collect the nectar of flowers, and use it to produce honey. this honey is then consumed by worker bees which have special glands that will turn the honey into wax. After masticating the wax, it is malleable enough to bee used in constructing the nest. The idea is that by modifying the nectar in the flower, as well as the internal manufacturing process of the bees, they will be able to produce a carbon material that will be applied in the same way to construct different parts of a house; window frames, door knobs, vases, etc. By introducing the bees to different flower varieties, different mate- rials will be produced; a softer material for soft furnishings such as a couch or a bed. This would be done by giving the bees &#8216;frame- works&#8217; upon which to apply their re-engineered wax controlling the bee wax production by modifying their food source, and using the re-engineered wax to create objects.</div>
<div><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.16.22-PM.png"><img class="alignnone size-medium wp-image-435" title="Screen shot 2010-05-12 at 1.16.22 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.16.22-PM-300x300.png" alt="" width="300" height="300" /></a><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.16.06-PM.png"><img class="alignnone size-medium wp-image-434" title="Screen shot 2010-05-12 at 1.16.06 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.16.06-PM-300x300.png" alt="" width="300" height="300" /></a></div>
<div><strong>Termites</strong></div>
<div><strong><br />
</strong></div>
<div>
<div>At the other end of the life cycle, termites feast upon the mulch and refuse plant matter that the flowers leave behind. This is is also supplemented by agricultural and kitchen waste. The termites use this material to create massive edifices. Their natural instincts have been tweaked at the genetic level to alter the patterns of their construction. Termite mounds have been studied for use in road construction in Africa. The secretion used by termites to make the soil of their mounds hard is so effective that roads are being built using these same chemicals. The roads are cheaper and more durable than asphalt roads. Many colonies can exist simultaneously, and as termites are able to intuitively find water sources, areas can be seeded with termites, flowers and bees, and with little maintenance will produce several structures as needed. Once the structures are completed and ready for habitation, the termites must sadly be exterminated. Luckily they are highly nutritious and, if removed by nontoxic means, are an excellent food source. The flavor is said to be excellent, and slightly nutty.</div>
</div>
<div><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.16.40-PM.png"><img class="alignnone size-full wp-image-436" title="Screen shot 2010-05-12 at 1.16.40 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.16.40-PM.png" alt="" width="477" height="477" /></a><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.17.11-PM.png"><img class="alignnone size-full wp-image-437" title="Screen shot 2010-05-12 at 1.17.11 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.17.11-PM.png" alt="" width="280" height="280" /></a><a href="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.17.30-PM.png"><img class="alignnone size-full wp-image-438" style="border: 0px initial initial;" title="Screen shot 2010-05-12 at 1.17.30 PM" src="http://www.hellofriend.info/wp-content/uploads/2010/05/Screen-shot-2010-05-12-at-1.17.30-PM.png" alt="" width="290" height="290" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=429</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Non-Newtonian Fluids</title>
		<link>http://www.hellofriend.info/?p=419</link>
		<comments>http://www.hellofriend.info/?p=419#comments</comments>
		<pubDate>Mon, 01 Feb 2010 19:10:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Physical]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=419</guid>
		<description><![CDATA[Mike Kelberman and I had some fun with cornstarch last night: Making Non-Newtonian Fluid from Peter Esveld on Vimeo. Non-Newtonian Fluid &#8211; Act 1 from Peter Esveld on Vimeo. More videos can be found on my vimeo page. This works because non-newtonian fluids seem to have both properties of solids and liquids. From the wikipedia [...]]]></description>
			<content:encoded><![CDATA[<p>Mike Kelberman and I had some fun with cornstarch last night:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="225" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9119415&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="300" height="225" src="http://vimeo.com/moogaloop.swf?clip_id=9119415&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/9119415">Making Non-Newtonian Fluid</a> from <a href="http://vimeo.com/user820879">Peter Esveld</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="451" height="338" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=9119082&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="451" height="338" src="http://vimeo.com/moogaloop.swf?clip_id=9119082&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/9119082">Non-Newtonian Fluid &#8211; Act 1</a> from <a href="http://vimeo.com/user820879">Peter Esveld</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>More videos can be found on <a href="http://www.vimeo.com/user820879" target="_blank">my vimeo page</a>.</p>
<p>This works because non-newtonian fluids seem to have both properties of solids and liquids. From the wikipedia entry:</p>
<blockquote><p>A <strong>non-Newtonian fluid</strong> is a <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Fluid" href="/wiki/Fluid">fluid</a> whose flow properties are not described by a single constant value of <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Viscosity" href="/wiki/Viscosity">viscosity</a>. Many <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Polymer" href="/wiki/Polymer">polymer</a> solutions and molten polymers are non-Newtonian fluids, as are many commonly found substances such as <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Ketchup" href="/wiki/Ketchup">ketchup</a>, <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Starch" href="/wiki/Starch">starch</a> suspensions, <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Paint" href="/wiki/Paint">paint</a>, <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Blood" href="/wiki/Blood">blood</a> and <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Shampoo" href="/wiki/Shampoo">shampoo</a>. In a Newtonian fluid, the relation between the <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Shear stress" href="/wiki/Shear_stress">shear stress</a> and the <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Strain rate" href="/wiki/Strain_rate">strain rate</a> is linear (and if one were to plot this relationship, it would pass through the<a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Origin (mathematics)" href="/wiki/Origin_(mathematics)">origin</a>), the constant of proportionality being the coefficient of <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Viscosity" href="/wiki/Viscosity">viscosity</a>. In a non-Newtonian fluid, the relation between the <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Shear stress" href="/wiki/Shear_stress">shear stress</a> and the <a style="text-decoration: none; color: #002bb8; background-image: none; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: initial; background-position: initial initial; background-repeat: initial initial;" title="Strain rate" href="/wiki/Strain_rate">strain rate</a>is nonlinear, and can even be time-dependent. Therefore a constant coefficient of viscosity cannot be defined.</p></blockquote>
<p><img class="alignnone size-medium wp-image-421" title="Non-Newtonian_fluid" src="http://www.hellofriend.info/wp-content/uploads/2010/02/Non-Newtonian_fluid1-300x215.PNG" alt="Non-Newtonian_fluid" width="300" height="215" /></p>
<p>Why were we playing with this? Mostly because it&#8217;s fun, but also because of this video:</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/me5Zzm2TXh4&amp;hl=en_US&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/me5Zzm2TXh4&amp;hl=en_US&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<span id="more-419"></span><br />
<img src="http://www.hellofriend.info/wp-content/uploads/2010/02/joseph1.bmp" alt="falling object in normal fluid" title="joseph1" class="alignnone size-full wp-image-426" /><br />
<img src="http://www.hellofriend.info/wp-content/uploads/2010/02/joseph2.bmp" alt="falling object in non-newtonian fluid" title="joseph2" class="alignnone size-full wp-image-427" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=419</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mystery Data, Aaron Koblin &amp; Toxi</title>
		<link>http://www.hellofriend.info/?p=404</link>
		<comments>http://www.hellofriend.info/?p=404#comments</comments>
		<pubDate>Wed, 28 Oct 2009 03:23:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=404</guid>
		<description><![CDATA[SPOILER ALERT &#8211; the mystery words created by Mr. Rogers are&#8230;.. Space Neighbor. Who knew! This was a very cool assignment &#8211; and I&#8217;d love to fork this code and adapt it to my own purposes. I hadn&#8217;t used bitshifting to separate out RGB values before, and found the process enlightening. Also the path class [...]]]></description>
			<content:encoded><![CDATA[<p>SPOILER ALERT &#8211; the mystery words created by <a href="http://itp.nyu.edu/VisualizingData/2009/10/23/homework-decomposing-images/#more-342" target="_blank">Mr. Rogers</a> are&#8230;.. Space Neighbor. Who knew!</p>
<p><img class="alignnone size-full wp-image-405" title="space_neighbor" src="http://www.hellofriend.info/wp-content/uploads/2009/10/space_neighbor.jpg" alt="space_neighbor" width="628" height="389" /></p>
<p>This was a very cool assignment &#8211; and I&#8217;d love to fork this code and adapt it to my own purposes. I hadn&#8217;t used bitshifting to separate out RGB values before, and found the process enlightening. Also the path class in the download is useful and interesting.</p>
<p><span id="more-404"></span></p>
<p><img class="alignnone size-full wp-image-417" title="yorke" src="http://www.hellofriend.info/wp-content/uploads/2009/10/yorke.jpg" alt="yorke" width="583" height="292" /></p>
<p><img class="alignnone size-full wp-image-409" title="thomyorke" src="http://www.hellofriend.info/wp-content/uploads/2009/10/thomyorke.jpg" alt="thomyorke" width="500" height="284" /></p>
<p><a href="http://www.aaronkoblin.com" target="_blank">Aaron Koblin&#8217;s</a> work was something I had a passing familiarity with &#8211; the <a href="http://www.aaronkoblin.com/work/rh/index.html" target="_blank">House of Cards</a> video is incredible and made quite a splash when it first hit the internet. I also had seen (and loved) the<a href="http://www.aaronkoblin.com/work/thesheepmarket/index.html" target="_blank"> Sheep Market</a> project. His work is really clever, and it&#8217;s nice to see some of these things, particularly Mechanical Turk used outside of the purely commercial realm to make art. His projects all seem slightly ahead of the technical curve, and they nicely work around one of my big gripes about generative art: that these projects often seems to have no human element. You can see the hand (or hear the voice, in the case of the Bicycle Built for 2000) of the participants in most of Koblin&#8217;s work.</p>
<p><img class="alignnone size-full wp-image-413" title="toxi" src="http://www.hellofriend.info/wp-content/uploads/2009/10/toxi.jpg" alt="toxi" width="560" height="252" /></p>
<p><a href="http://toxi.co.uk/blog/" target="_blank">Toxi</a> is another artist that I&#8217;ve seen all over the place in the last few years. His rapid-prototyped generative typography for Print Magazine is what first piqued my interest in digital fabrication. His work also appears at <a href="http://postspectacular.com/process/start" target="_blank">PostSpectacular</a>. Toxi makes some amazing stuff, and one of the best things about it is that he <a href="http://code.google.com/p/toxiclibs/" target="_blank">open-sources</a> much of the code he uses in his projects.</p>
<p>I think Toxi&#8217;s work falls slightly more in the graphic design camp than Koblin&#8217;s, although it might debatably be even more beautiful. The projects flow directly from the artist without instead of being visualizations or collaboratively generated (for the most part).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=404</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Visualizing Data &#8211; Parsing CSV files</title>
		<link>http://www.hellofriend.info/?p=399</link>
		<comments>http://www.hellofriend.info/?p=399#comments</comments>
		<pubDate>Thu, 08 Oct 2009 17:15:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=399</guid>
		<description><![CDATA[Successfully got this up and running. It imports raw data from a CSV file, parses it, and then displays it in a processing sketch. This won&#8217;t run well in your browser, but take a shot anyhow. If you spot any improvements to the code, please give a shout!]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.hellofriend.info/itp/visualizing_data/applet/index.html"><img class="size-full wp-image-400 aligncenter" title="map" src="http://www.hellofriend.info/wp-content/uploads/2009/10/map.png" alt="map" width="600" height="264" /></a></p>
<p style="text-align: left;">Successfully got this up and running. It imports raw data from a CSV file, parses it, and then displays it in a processing sketch.</p>
<p style="text-align: left;">This won&#8217;t run well in your browser, <a href="http://www.hellofriend.info/itp/visualizing_data/applet/index.html">but take a shot anyhow</a>. If you spot any improvements to the code, please give a shout!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=399</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Circles like Karel</title>
		<link>http://www.hellofriend.info/?p=393</link>
		<comments>http://www.hellofriend.info/?p=393#comments</comments>
		<pubDate>Thu, 01 Oct 2009 15:51:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=393</guid>
		<description><![CDATA[Karel makes the best circles. Mine aren&#8217;t so good yet. http://hellofriend.info/itp/visualizing_data/themevar/index.html]]></description>
			<content:encoded><![CDATA[<p>Karel makes the best circles. Mine aren&#8217;t so good yet.</p>
<p><a href="http://hellofriend.info/itp/visualizing_data/themevar/index.html" target="_blank"><img class="alignnone size-full wp-image-394" title="Screen shot 2009-10-01 at 11.51.53 AM" src="http://www.hellofriend.info/wp-content/uploads/2009/10/Screen-shot-2009-10-01-at-11.51.53-AM.png" alt="Screen shot 2009-10-01 at 11.51.53 AM" width="325" height="325" /></a></p>
<p><a href="http://hellofriend.info/itp/visualizing_data/themevar/index.html" target="_blank">http://hellofriend.info/itp/visualizing_data/themevar/index.html</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=393</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestural Furniture</title>
		<link>http://www.hellofriend.info/?p=389</link>
		<comments>http://www.hellofriend.info/?p=389#comments</comments>
		<pubDate>Mon, 28 Sep 2009 16:32:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[More]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=389</guid>
		<description><![CDATA[The four members of Front have developed a method which turns freehand sketches into solid objects by combining two advanced techniques &#8211; Motion Capture and Rapid Prototyping. Pen strokes made in the air are recorded with Motion Capture and become 3D digital files; these are then materialised through Rapid Prototyping into real pieces of furniture. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-390" title="Sketch-furniture_process" src="http://www.hellofriend.info/wp-content/uploads/2009/09/Sketch-furniture_process.jpg" alt="Sketch-furniture_process" width="400" height="230" /></p>
<p><img class="alignnone size-full wp-image-388" title="01_sketch_furniture" src="http://www.hellofriend.info/wp-content/uploads/2009/09/01_sketch_furniture.jpg" alt="01_sketch_furniture" width="400" height="333" /></p>
<blockquote><p>The four members of Front have developed a method which turns freehand sketches into solid objects by combining two advanced techniques &#8211; Motion Capture and Rapid Prototyping. Pen strokes made in the air are recorded with Motion Capture and become 3D digital files; these are then materialised through Rapid Prototyping into real pieces of furniture.</p></blockquote>
<p>I love this &#8211; it seems like drawing without paper. The world becomes the ground. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=389</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Papervision + Particles</title>
		<link>http://www.hellofriend.info/?p=379</link>
		<comments>http://www.hellofriend.info/?p=379#comments</comments>
		<pubDate>Thu, 06 Aug 2009 18:36:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=379</guid>
		<description><![CDATA[Finally got this posted over at http://studioplotter.com. Check it out there. I&#8217;m really liking Papervision3D &#8211; a super-powered library with minimal setup for what you get!]]></description>
			<content:encoded><![CDATA[<p>Finally got this posted over at <a href="http://studioplotter.com" target="_blank">http://studioplotter.com</a>. Check it out there. I&#8217;m really liking Papervision3D &#8211; a super-powered library with minimal setup for what you get!</p>
<p style="text-align: center;"><a href="http://studioplotter.com"><img class="size-full wp-image-380 aligncenter" title="plotter" src="http://www.hellofriend.info/wp-content/uploads/2009/08/plotter.png" alt="plotter" width="565" height="368" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=379</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pet Sounds &#8211; Technical Details</title>
		<link>http://www.hellofriend.info/?p=363</link>
		<comments>http://www.hellofriend.info/?p=363#comments</comments>
		<pubDate>Mon, 18 May 2009 17:23:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Physical]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=363</guid>
		<description><![CDATA[This project created 2 wireless masks that vocoded whatever performers said into animal sounds. The &#8220;deerwolf&#8221; produced mammal sounds. The &#8220;batdragonfly&#8221; produced insect/bird sounds. The pet sounds project ended up producing quite a few things, depending on how the project is considered. The best byproduct for me is that is the realization that I&#8217;ve created [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-369" title="pet-sounds-mask" src="http://www.hellofriend.info/wp-content/uploads/2009/05/pet-sounds-mask.jpg" alt="pet-sounds-mask" width="270" height="291" /><img class="alignnone size-full wp-image-367" title="mask_2" src="http://www.hellofriend.info/wp-content/uploads/2009/05/mask_2.jpg" alt="mask_2" width="233" height="287" /></p>
<p>This project created 2 wireless masks that vocoded whatever performers said into animal sounds. The &#8220;deerwolf&#8221; produced mammal sounds. The &#8220;batdragonfly&#8221; produced insect/bird sounds.</p>
<p>The pet sounds project ended up producing quite a few things, depending on how the project is considered. The best byproduct for me is that is the realization that I&#8217;ve created a reasonably affordable platform to create wireless &#8220;performance devices&#8221;. The design, construction, and components used in the masks end up being right around $100. You will need a laptop, but most people who would be building the masks already own that. When you&#8217;re done, you&#8217;ll have a masks that wirelessly vocodes whatever you say, in any way you like.</p>
<p>The biggest letdown of the semester was my inability to get an Xbee and an accelerometer to work reliably alongside an analog FM transmitter (on the same circuit). As far as I can tell, I was unable to isolate the circuit enough to get reliable information from the accelerometer, and that meant that motion sensing masks were not an option.</p>
<p>Read on for all the tech specs.</p>
<p><span id="more-363"></span></p>
<p>The masks were simply painter&#8217;s masks fitted with <a href="http://www.nyu.edu/its/ams/resources/" target="_blank">lasercut</a> plexiglass. The screw-on portion of the mask contained the electronics. A coin-cell battery with a switch was attached to the outside. Inside the face portion of the mask was a small microphone.</p>
<p><img class="alignnone size-full wp-image-368" title="mask_back" src="http://www.hellofriend.info/wp-content/uploads/2009/05/mask_back.jpg" alt="mask_back" width="213" height="300" /><img class="alignnone size-medium wp-image-370" title="power_detail" src="http://www.hellofriend.info/wp-content/uploads/2009/05/power_detail-293x300.jpg" alt="power_detail" width="293" height="300" /></p>
<p>The<a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8669" target="_blank"> electret mic </a>and <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8818" target="_blank">rechargeable lithium ion coin cells</a> are both available at Sparkfun. The mic works quite well, and is very simple to use. WARNING: the coin cells drain extremely quickly with this circuit, and you need a <a href="http://www.powerstream.com/licoin-charger.htm" target="_blank">special charger</a> to charge them (which takes hours). Not the best solution as shown here, but there are probably fixes for this. If you do use the coin cells, be prepared to make some DIY enclosures or buy the sparkfun enclosures (shown), which still require you to solder them to something and provide your own ground. The top of the battery is power(+), and the bottom is negative(-).</p>
<p><img class="alignnone size-full wp-image-365" title="circuit" src="http://www.hellofriend.info/wp-content/uploads/2009/05/circuit.jpg" alt="circuit" width="450" height="452" /></p>
<p>Here&#8217;s what&#8217;s inside both masks. There&#8217;s an <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8824">Arduino Mini</a>, which you program with an <a href="http://www.adafruit.com/index.php?main_page=product_info&amp;cPath=19&amp;products_id=70" target="_blank">FTDI cable</a>, an <a href="http://www.sparkfun.com/commerce/product_info.php?products_id=8482" target="_blank">NS73M FM Radio Breakout board</a>, and that&#8217;s about it besides power and the mic. Basically, the Arduino pins 4 + 5 hook up to the i2C pins (clock and data) on the FM transmitter. That&#8217;s all you need, besides hooking up power and ground to the appropriate places.</p>
<p><a href="http://mikeyancey.com/files/arduino-fm/ARRduino_FM_v2/ARRduino_FM_v2.pde" target="_blank">Here&#8217;s some code </a>that gets the Transmitter up and running on whatever FM frequency you specify. Put it on the Arduino. Thanks to these guys for figuring out all the I2C protocols here &#8211; I wouldn&#8217;t have been able to do it on my own.</p>
<p>My stripped-down version: <a href="http://www.hellofriend.info/Downloads/FM_Transmitter.zip">FM Transmitter</a></p>
<p><img class="alignnone size-medium wp-image-371" title="xbee_circuit" src="http://www.hellofriend.info/wp-content/uploads/2009/05/xbee_circuit-300x300.jpg" alt="xbee_circuit" width="350" height="350" /></p>
<p>Here&#8217;s the frankensteined version of the FM transmitter, plus an accelerometer and an Xbee Radio. This sort of works &#8211; but the interference in both the FM signal and the values coming from the Accelerometer were too intense to be useful. This circuit might actually work if everything was completely shielded with extremely large capacitors between each power + ground, and strong (22uf) resistors on each power connection. I couldn&#8217;t fit all that on this board.</p>
<p>Here&#8217;s some <a href="http://www.processing.org/">Processing</a> code you can use to see if your Xbee/accelerometer setup is working or not: <a href="http://www.hellofriend.info/Downloads/grapher02.zip">Grapher Sketch</a></p>
<p>Here&#8217;s a setup for your Xbees that should help get an accelerometer going. Remember, once you set the Xbee baud rate to 115200, you&#8217;ll have to set your ZTerm (or whatever you&#8217;re using) to the same baud rate, or it will look like everything just stopped working.</p>
<p>//PETER&#8217;S CONFIG<br />
XBee1 (Sender)<br />
ATID328        pan ID<br />
ATMY1        my address<br />
ATDL2        destination address 2<br />
ATD02        pin 0 in analog mode<br />
ATD12        pin 1 in analog mode<br />
ATD22           pin 2 in analog mode<br />
ATIRA        sample rate 10ms (hex A)<br />
ATIT1        samples before transmit 1<br />
ATBD7        baud 115200<br />
ATWR</p>
<p>XBee2 (Receiver)<br />
ATID328        pan id<br />
ATMY2        my address<br />
ATDL1        dest address 1<br />
ATIU1        I/O output enabled (UART) 1=enabled, 0=off<br />
ATIA1        I/O input from address 1 (MY address)<br />
ATIRA        HEX number of milliseconds (20ms)<br />
ATBD7        baud 115200<br />
ATWR</p>
<p>Finally, for the software I used<a href="http://chuck.cs.princeton.edu/" target="_blank"> Stanford&#8217;s ChucK</a> to produce all the crazy vocoded audio on the computer. ChucK is basically an object-oriented synthesis program. It has great support for audio analysis however, which makes it ideal for applications like on-the-fly vocoding + triggering samples. You&#8217;ll want to download their Mini-Audicle program unless you love Terminal.</p>
<p>For FM receivers, I hooked up some cheapo armband tuners from Best Buy. They fed the audio in on the left + right channels into my laptop, which simply looked at the audio, performed some FFT calculations, and played the appropriate samples / sounds.</p>
<p>Here&#8217;s a ChucK shred that I was using: <a href="http://www.hellofriend.info/Downloads/ChucKSample.zip">Chuck Sample</a></p>
<p>Please email me with any questions if you have them. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=363</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fabricating Information</title>
		<link>http://www.hellofriend.info/?p=353</link>
		<comments>http://www.hellofriend.info/?p=353#comments</comments>
		<pubDate>Mon, 20 Apr 2009 17:04:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Physical]]></category>

		<guid isPermaLink="false">http://www.hellofriend.info/?p=353</guid>
		<description><![CDATA[Here&#8217;s a quick presentation for my fabricating information class. A more complete rundown when the semester is finished.]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick presentation for my fabricating information class. A more complete rundown when the semester is finished.</p>
<p><iframe src='http://docs.google.com/EmbedSlideshow?docid=df9p7dpb_142cv9v9qfc&amp;size=m' frameborder='0' width='555' height='451'></iframe> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellofriend.info/?feed=rss2&amp;p=353</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
