<?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>Code &#038; form &#187; Code</title>
	<atom:link href="http://workshop.evolutionzone.com/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://workshop.evolutionzone.com</link>
	<description>Computational aesthetics and programming for artists and designers.</description>
	<lastBuildDate>Sun, 29 Jan 2012 07:00:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Mapping examples using the Unfolding library</title>
		<link>http://workshop.evolutionzone.com/2012/01/27/mapping-examples-using-the-unfolding-library/</link>
		<comments>http://workshop.evolutionzone.com/2012/01/27/mapping-examples-using-the-unfolding-library/#comments</comments>
		<pubDate>Fri, 27 Jan 2012 11:36:02 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[AHO]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Geo / locative]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[Workshops]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[locative]]></category>
		<category><![CDATA[mapping]]></category>
		<category><![CDATA[processing.org]]></category>
		<category><![CDATA[unfolding]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=646</guid>
		<description><![CDATA[While preparing for teaching a course in data tracking I was very happy to discover the excellent Unfolding library for making interactive maps in Processing. Unfolding makes it possible to create just about any kind of tile-based mapping application with a minimum of code, simple map drawing typically coming in]]></description>
			<content:encoded><![CDATA[<p>While preparing for teaching a course in data tracking I was very happy to discover the excellent <a href="http://unfoldingmaps.org/">Unfolding library</a> for making interactive maps in Processing. Unfolding makes it possible to create just about any kind of tile-based mapping application with a minimum of code, simple map drawing typically coming in <20 lines. It's perfect for visualizing FourSquare, OpenPaths, GeoRSS or any other kind of geo-based data. Now if I could only figure out how to control the timing of the map tweening, right now it feels more like jump cuts than smooth pans.</p>
<p>Here are three examples showing a simple map display and two demos using geo data from <a href="https://openpaths.cc/">OpenPaths</a> in CSV format: <a href='http://workshop.evolutionzone.com/wp-content/uploads/2012/01/20120127_unfolding_map_examples.zip'>20120127_unfolding_map_examples.zip</a></p>
<p><strong>Update: </strong>The <a href="http://www.scribd.com/fullscreen/37330679?access_key=key-hc9464jf4vi43bizgkn">lecture notes about infoviz and self-ethnography</a> are online on Scribd, it&#8217;s basically the same lecture as two years ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2012/01/27/mapping-examples-using-the-unfolding-library/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>20111021 ITP Parametric Modeling workshop</title>
		<link>http://workshop.evolutionzone.com/2011/10/22/20111021-itp-parametric-modeling-workshop/</link>
		<comments>http://workshop.evolutionzone.com/2011/10/22/20111021-itp-parametric-modeling-workshop/#comments</comments>
		<pubDate>Sat, 22 Oct 2011 06:19:23 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[Workshops]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[digital-fabrication]]></category>
		<category><![CDATA[ITP]]></category>
		<category><![CDATA[mesh]]></category>
		<category><![CDATA[modelbuilder]]></category>
		<category><![CDATA[new york]]></category>
		<category><![CDATA[NYU]]></category>
		<category><![CDATA[parametric-design]]></category>
		<category><![CDATA[processing.org]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=597</guid>
		<description><![CDATA[Arc mesh tool created with Modelbuilder and ControlP5 I did a short lecture + workshop about digital fabrication and parametric modeling with Processing yesterday at NYU&#8217;s ITP program. Thanks to Dan Shiffman for the invite, it ended up being a lot of fun because of the great turnout of enthusiastic ITP&#8217;ers. It certainly made me [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg"><img src="http://workshop.evolutionzone.com/wp-content/uploads/2011/10/simple_geo_arc_4.jpg" alt="" title="Arc mesh tool" width="520" class="alignnone size-full wp-image-598" /> </p>
<p>Arc mesh tool created with Modelbuilder and ControlP5</p></div>
<p>I did a short lecture + workshop about digital fabrication and parametric modeling with Processing yesterday at <a href="http://itp.nyu.edu/">NYU&#8217;s ITP program</a>. Thanks to <a href="http://www.shiffman.net/">Dan Shiffman</a> for the invite, it ended up being a lot of fun because of the great turnout of enthusiastic ITP&#8217;ers. It certainly made me even more regretful that I was unable to teach a fabbing course at ITP this semester, but with luck there will be other oppportunities.</p>
<p>As promised I have uploaded the pre-written examples I demo&#8217;ed as well as the code I (frenziedly) wrote live during our 1.5 hour coding session. The focus was to demonstrate the logic of the Modelbuilder library, a set of utilities and aimed at abstracting and simplifying some common tasks in computational creation of 3D meshes. </p>
<p>The library is really not all that sophisticated, but it shifts the focus away from OpenGL drawing logic towards a more object-oriented way of imaging 3D forms based on UVertexList objects. In a typical situation it should simplify a lot of tasks, as well as save dozens of for() loops and repetitive code. It also allows some pragmatic coding (aka &#8220;lazy&#8221;) coding practices enabling easy reuse of geometries due to the assumption that operations like &#8220;new UVertexList(vl)&#8221; should always copy input data by content rather than by reference.</p>
<p>I&#8217;m pleased to say that Modelbuilder performed well in the demo session, there&#8217;s nothing like live coding to reveal weaknesses or inconsistencies in code. But the Modelbuilder logic proved consistent under stress testing and we were able to do some pretty decent mesh generation in a limited amount of time. </p>
<div class="mediumtitle">Download: Workshop Code</div>
<p>A ZIP with all the files shown (including the Modelbuilder and ContolP5 libraries) can be downloaded from <a href="http://db.tt/5Ehmn6uz">http://db.tt/5Ehmn6uz</a>. It includes the following code examples:</p>
<ul>
<li><strong>simple_geo_arc_4</strong> A tool for creating a composition of 3D arcs (w/ valid face normal orientation and passing the &#8220;waterproof&#8221; criteria for 3D printing), generating output to STL format. This was written live in around 30 minutes. </li>
<li><strong>mb_04_gui_parametric</strong> A parametric 3D form generator created for my Makerbot residency &#8211; results look valid on screen but for some reason export to STL results in flawed models. I&#8217;ll look into debugging this example.</li>
<li><strong>mb_04_gui_heightfield</strong> An example showing how to create a heightfield mesh from an image, allowing interactive control of mesh resolution and Z scaling. Potentially useful for geographical elevation maps and Kinect depth maps.</li>
<li>A set of examples demonstrating the core Modelbuilder functions</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2011/10/22/20111021-itp-parametric-modeling-workshop/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Random updates, Sept 16 2011</title>
		<link>http://workshop.evolutionzone.com/2011/10/16/591/</link>
		<comments>http://workshop.evolutionzone.com/2011/10/16/591/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 20:25:17 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[Theory]]></category>
		<category><![CDATA[Watz work]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[digital-fabrication]]></category>
		<category><![CDATA[exhibition]]></category>
		<category><![CDATA[hemesh]]></category>
		<category><![CDATA[makerbot]]></category>
		<category><![CDATA[modelbuilder]]></category>
		<category><![CDATA[processing.org]]></category>
		<category><![CDATA[san francisco]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=591</guid>
		<description><![CDATA[Sketches made with Wblut&#8217;s Hemesh library This blog has been quiet for a while, due not to laziness but rather lack of time. Some random notes to let you know what I&#8217;ve been up to: I just set up a Tumblr blog to post more theory-related thoughts that don&#8217;t fit this blog so well. First [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg"><a href="http://www.flickr.com/photos/watz/6250690227/" title="Star01A 0002_preview by watz, on Flickr"><img src="http://farm7.static.flickr.com/6110/6250690227_afdcd71242.jpg" width="500" height="375" alt="Star01A 0002_preview"></a></p>
<p><a href="http://www.flickr.com/photos/watz/tags/hemesh/">Sketches</a> made with <a href="http://hemesh.wblut.com/">Wblut&#8217;s Hemesh library</a></div>
<p>This blog has been quiet for a while, due not to laziness but rather lack of time. Some random notes to let you know what I&#8217;ve been up to:</p>
<ul>
<li>I just set up a <a href="http://mwatz.tumblr.com/">Tumblr blog</a> to post more theory-related thoughts that don&#8217;t fit this blog so well. First post: <a href="http://mwatz.tumblr.com/post/11503077993/things-ive-learned-from-disagreeing-about-media-art">Things I’ve learned from disagreeing about (Media) Art on the Internet</a></li>
<li>I&#8217;m working on some new  <a href="http://www.flickr.com/photos/watz/tags/hemesh/">objects</a> for 3D printing, experimenting with interfacing Modelbuilder to <a href="http://hemesh.wblut.com/">Wblut&#8217;s Hemesh library</a>. I have some promising results so far, but actual print tests remain. I will try to post more about this later, specifically providing a class that acts as a bridge between my UGeometry objects and the HE_Mesh data structure. Interchange of mesh data is the biggest issue for 3D libraries right now, hopefully the upcoming PShape3D structure will facilitate this.</li>
<li>The Modelbuilder lib is due for an upgrade, I&#8217;ll do this when Processing 2.0 is out for good.</li>
<li>I had a great time doing a solo show in San Francisco this summer, as part of the SF Film Society&#8217;s Kinotek series, see documentation on Flickr: <a href="http://www.flickr.com/photos/watz/sets/72157627089781140/">SFFS Kinotek &#8211; Automatic Writing</a>. Thanks to Sean Uyehara and the others at SFFS, as well as the excellent people I met during my stay.</li>
<li>The SF show featured the biggest collection of Makerbot objects to date &#8211; about 25 pieces: <a href="http://www.flickr.com/photos/watz/tags/formstudiesmakerbot/">Form studies (Makerbot)</a>. As always my thanks go to the Makerbot clan for excellent support, at the craziest I had 6 Makerbots printing at once.</li>
</ul>
<div class="flickrImgBody"><a href="http://www.flickr.com/photos/watz/6217523229/" title="7809 SF-Kinotek Form studies - Makerbot by watz, on Flickr"><img src="http://farm7.static.flickr.com/6055/6217523229_cfce133f09.jpg" width="500" height="333" alt="7809 SF-Kinotek Form studies - Makerbot"></a></p>
<p><a href="http://www.flickr.com/photos/watz/tags/formstudiesmakerbot/">Form studies (Makerbot)</a> at the <a href="http://www.flickr.com/photos/watz/sets/72157627089781140/">Automatic Writing show</a></div>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2011/10/16/591/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code: ModelBuilder library &#8211; first public release</title>
		<link>http://workshop.evolutionzone.com/2011/04/06/code-modelbuilder-library-public-release/</link>
		<comments>http://workshop.evolutionzone.com/2011/04/06/code-modelbuilder-library-public-release/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 19:59:12 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Libraries]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[3D printing]]></category>
		<category><![CDATA[digital-fabrication]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[makerbot]]></category>
		<category><![CDATA[modelbuilder]]></category>
		<category><![CDATA[processing.org]]></category>
		<category><![CDATA[stl]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=546</guid>
		<description><![CDATA[MakerBot models built with code included with the ModelBuilder library, also downloadable from my Thingiverse account Update, July 1 2011: I&#8217;ve uploaded ModelBuilder v0004, which fixes a few really silly bugs in 0003. Download it from http://code.google.com/p/codeandform/. I&#8217;m happy to announce the first public release of my new ModelBuilder library, created as part of my [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg">
<p><a href="http://www.flickr.com/photos/watz/5420298061/" title="MakerBot models 5486 by watz, on Flickr"><img src="http://farm6.static.flickr.com/5093/5420298061_65e035cf68.jpg" width="500" height="333" alt="MakerBot models 5486"></a></p>
<p style="line-height:14px;">MakerBot models built with code included with the ModelBuilder library, also downloadable from my <a href="http://www.thingiverse.com/watz">Thingiverse account</a></p>
</div>
<p><strong>Update, July 1 2011: I&#8217;ve uploaded ModelBuilder v0004, which fixes a few really silly bugs in 0003. Download it from <a href="http://code.google.com/p/codeandform/">http://code.google.com/p/codeandform/</a>.</strong></p>
<p>I&#8217;m happy to announce the first public release of my new ModelBuilder library, created as part of my artist-in-residence project at <a href="http://blog.makerbot.com/2011/02/07/first-makerbot-artist-in-residence-marius-watz/">MakerBot Industries</a> and beta tested in the <a href="http://workshop.evolutionzone.com/2011/02/18/interactive-parametrics-workshop-w-studio-mode-and-makerbot-2/">Interactive Parametrics workshop</a>. The occasion for today&#8217;s release is the <a href="http://blog.makerbot.com/2011/04/04/makerbot-user-group-new-york-wednesday-april-6th/">MakerBot User Group New York</a>, where I&#8217;ll talk about the library and show off my MakerBot models. </p>
<p>ModelBuilder focuses on functions useful for digital fabrication purposes, such as creating meshes, centering models around origin, scaling to given dimensions, output to STL format etc. It emulates Processing&#8217;s beginShape / vertex / endShape logic to build mesh geometry which can then be manipulated and transformed. </p>
<p>The <a href="http://workshop.evolutionzone.com/code/modelbuilder/javadoc/unlekker/modelbuilder/UVertexList.html">UVertexList class</a> allows the user to build paths of vertices. Vertex lists are then fed into various <a href="http://workshop.evolutionzone.com/code/modelbuilder/javadoc/unlekker/modelbuilder/UGeometry.html#quadStrip(unlekker.modelbuilder.UVertexList[],%20int)">UGeometry.quadStrip()</a> functions to construct quad strip meshes, most likely eliminating the need for dozens of <em>for</em> loops in the process. See the online copy of the <a href="http://workshop.evolutionzone.com/code/modelbuilder/javadoc/index.html">ModelBuilder JavaDoc</a> for a more complete overview.</p>
<p><span id="more-546"></span><strong>Coders using the library to output models for 3D printing</strong> need to be aware of face orientation (see <a href="http://en.wikipedia.org/wiki/Cartesian_coordinate_system#Orientation_and_handedness">Wikipedia: Handedness</a>) so that face normals are generated correctly.<br />
Always check models to see if face normals are correct before attempting to 3D print them. As always, I recommed the Open Source tool <a href="http://www.meshlab.org/">MeshLab</a> for previewing and testing models. MeshLab will render backwards-facing faces as all black, giving an easy preview of incorrect geometry.</p>
<p>Happy mesh building, look forward to seeing models on <a href="http://www.thingiverse.com/">Thingiverse</a>!</p>
<div class="mediumtitle">Download</div>
<p>Download <a title="modelbuilder-0003.zip" href="http://code.google.com/p/codeandform/downloads/detail?name=ModelBuilder%20v0004.zip&#038;can=2&#038;q=#makechanges">modelbuilder-0004.zip</a> and unpack it. Copy the &#8220;modelbuilder&#8221; folder to your &#8220;libraries&#8221; folder and restart Processing. If you have the now obsolete unlekkerLib installed you should remove it before adding ModelBuilder, which effectively replaces unlekkerLib.</p>
<p>The ModelBuilder library folder includes (rudimentary) JavaDoc documentation, the library source code and a series of examples located in &#8220;modelbuilder/examples&#8221;. The most advanced example is mb_04_gui_parametric, which contains the code used to create MakerBot prints shown above. The &#8220;gui&#8221; examples use Andreas Schlegel&#8217;s <a href="http://www.sojamo.de/libraries/controlP5/">ControlP5 library</a>, which must be downloaded and installed before running them.</p>
<p>This should be considered an experimental in-progress release and some features are likely to change. As usual, niceties like good documentation have been left for last, so the best way to get a feel for the library is to run through the examples provided. Bug and / or success reports are welcome, just leave comments on this post.</p>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2011/04/06/code-modelbuilder-library-public-release/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Grid Distortion &#8211; Typologies</title>
		<link>http://workshop.evolutionzone.com/2011/03/02/grid-distortion-typologies/</link>
		<comments>http://workshop.evolutionzone.com/2011/03/02/grid-distortion-typologies/#comments</comments>
		<pubDate>Wed, 02 Mar 2011 19:11:18 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[Theory]]></category>
		<category><![CDATA[Watz work]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[digital-fabrication]]></category>
		<category><![CDATA[exhibition]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[grid distortion]]></category>
		<category><![CDATA[marius-watz]]></category>
		<category><![CDATA[sketch]]></category>
		<category><![CDATA[watz]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=525</guid>
		<description><![CDATA[Grid Distortion (2007-): Typology and density study I&#8217;m working on a new 6-panel Grid Distortion piece for my Extrusion show next week, the final size will be 540 x 50 cm. I&#8217;ve been revisiting all the previous incarnations of the piece and tweaking the code to elicit new interpretations. Which led me to compile this [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg"><a href="http://www.flickr.com/photos/watz/5490534990/" title="Grid Distortion - Typologies and densities by watz, on Flickr"><img src="http://farm6.static.flickr.com/5215/5490534990_c555f74cff.jpg" width="500" height="500" alt="Grid Distortion - Typologies and densities" /></a></p>
<p><a href="http://www.flickr.com/photos/watz/5490534990/">Grid Distortion (2007-): Typology and density study</a></div>
<p>I&#8217;m working on a new 6-panel Grid Distortion piece for my Extrusion show next week, the final size will be 540 x 50 cm. I&#8217;ve been revisiting all the previous incarnations of the piece and tweaking the code to elicit new interpretations. Which led me to compile this summary of formal &#8220;typologies&#8221; that the piece is capable of exhibiting. </p>
<p>Given that the piece is essentially a variation on a very simple attractor simulation it tends to give very obvious (even almost boring) results, and its only through extensive tweaking of parameters and custom rendering styles that I&#8217;ve found results I&#8217;m excited by. Dave Bollinger made an accurate comment on Flickr that these are perhaps not very &#8220;watz-y&#8221; images, but its the translation of the form onto wood or metal that somehow completes the form for me. </p>
<div class="flickrImgBody"><a href="http://www.flickr.com/photos/watz/5481677107/" title="Marius Watz - CircGrid03A 0010 by watz, on Flickr"><img src="http://farm6.static.flickr.com/5255/5481677107_f0bddd4fe1.jpg" width="500" height="334" alt="Marius Watz - CircGrid03A 0010" /></a></p>
<p>Grid Distortion expanded: <a href="http://www.flickr.com/photos/watz/5481677107/in/set-72157626029600081/">CircGrid on aluminum</a></div>
<p><strong>Just last week I had some new aluminum pieces made</strong> in Berlin with Martin Bauer at Lasern in Berlin that represent a new direction in the series. Loosely titled <a href="http://www.flickr.com/photos/watz/tags/circgrid/">CircGrid</a>, these expand the same process to radially oriented grids. This might seem like an obvious extension, but the results are actually quite different. The images look less architectural, bringing to mind structures from nature like neurons, blood veins and plant roots etc. </p>
<p>I&#8217;m definitely enjoying this new and slightly more chaotic direction, as well as the crisp technical look of the aluminum.</p>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2011/03/02/grid-distortion-typologies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Upcoming exhibition: &#8220;Extrusion&#8221; at ROM, Oslo</title>
		<link>http://workshop.evolutionzone.com/2011/03/01/upcoming-exhibition-extrusion-at-rom-oslo/</link>
		<comments>http://workshop.evolutionzone.com/2011/03/01/upcoming-exhibition-extrusion-at-rom-oslo/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 14:46:30 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[Watz work]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[art]]></category>
		<category><![CDATA[digital-fabrication]]></category>
		<category><![CDATA[drawing]]></category>
		<category><![CDATA[exhibition]]></category>
		<category><![CDATA[marius-watz]]></category>
		<category><![CDATA[modelbuilder]]></category>
		<category><![CDATA[oslo]]></category>
		<category><![CDATA[wall drawing]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=519</guid>
		<description><![CDATA[Previews of generated geometry for installation for &#8220;Extrusion&#8221; at ROM Hot on the heels of the Interactive Parametrics workshop I&#8217;m now in Oslo working on a solo show that will open March 11 at ROM For Art + Architecture (Oslo). Titled &#8220;Extrusion&#8221;, the show highlights how my practice has bee evolving to dealing with ways [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg"><a href="http://www.flickr.com/photos/watz/5485381543/" title="Installation04A 0009 by watz, on Flickr"><img src="http://farm6.static.flickr.com/5053/5485381543_8dcb2e73c4.jpg" width="500" height="375" alt="Installation04A 0009" /></a></p>
<p><a href="http://www.flickr.com/photos/watz/5485381543/in/photostream/">Previews of generated geometry for installation</a> for <a href="http://www.r-o-m.no/no/extrusion_by_marius_watz.aspx">&#8220;Extrusion&#8221; at ROM</a></div>
<p>Hot on the heels of the Interactive Parametrics workshop I&#8217;m now in Oslo working on a solo show that will open March 11 at <a href="http://www.r-o-m.no/no/extrusion_by_marius_watz.aspx">ROM For Art + Architecture</a> (Oslo). Titled &#8220;Extrusion&#8221;, the show highlights how my practice has bee evolving to dealing with ways of physically communicating code-based processes beyond the default means of the computer screen or projection.</p>
<p>The show will feature a new version of the light installation <a href="http://www.flickr.com/photos/watz/sets/72157623930375100/">Prime</a>, this time realized with fluorescent tubes and DMX lighting control. Other elements include a wall drawing made by retracing projected vectors with painters tape (1.2 km of it), as well CNC plotter and laser drawings (<a href="http://www.flickr.com/photos/watz/sets/72157626045849004/with/4948017667/">Arc Drawings</a> and a new multi-panel <a href="http://www.flickr.com/photos/watz/sets/72157626029600081">Grid Distortion</a>.) </p>
<p><strong>Finally, I&#8217;m building a large geometric structure</strong> (see above) using my ModelBuilder library in Processing. The forms are designed to be easy to unwrap to 2D without tesselating polygons. I&#8217;m outputting cutting templates as PDF files to be used by the CNC routers. This is a new process for me, despite having followed the success people like Martin Fuchs has had with <a href="http://www.deffekt.ch/unwrappingLib/">unwrapping polygon meshes</a>. It allows me to work on a fairly large scale (as in 3 x 3 x 1.5 meters), articulating actual structures rather than representations of structures.</p>
<p>All in all it&#8217;s a very exciting show to be working on, and I&#8217;m grateful to ROM and its director Henrik der Minassian for supporting all this craziness&#8230; If you&#8217;re in Oslo next weekend I hope to see you there!</p>
<ul>
<li>Extrusion opens Friday March 11, 19:00-21:00</li>
<li><a href="http://www.r-o-m.no">ROM For Art + Architecture</a>, Maridalsveien 3, Oslo</li>
</ul>
<div class="flickrImgBody"><a href="http://www.flickr.com/photos/watz/4028417851/" title="Exploder wall - Install 05 by watz, on Flickr"><img src="http://farm4.static.flickr.com/3444/4028417851_eed74c59bb.jpg" width="500" height="375" alt="Exploder wall - Install 05" /></a></p>
<p>Previous tape drawing: <a href="http://www.flickr.com/photos/watz/4028417851/">Exploder at System:System</a></div>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2011/03/01/upcoming-exhibition-extrusion-at-rom-oslo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DMX-512 and Prime, revisited</title>
		<link>http://workshop.evolutionzone.com/2011/02/17/dmx-512-and-prime-revisited/</link>
		<comments>http://workshop.evolutionzone.com/2011/02/17/dmx-512-and-prime-revisited/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 00:46:38 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[Watz work]]></category>
		<category><![CDATA[Dan Shiffman]]></category>
		<category><![CDATA[dmx]]></category>
		<category><![CDATA[dmxP512]]></category>
		<category><![CDATA[enttec]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[Henri David]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[lighting]]></category>
		<category><![CDATA[marius-watz]]></category>
		<category><![CDATA[prime]]></category>
		<category><![CDATA[processing.org]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=474</guid>
		<description><![CDATA[To be revisited: Prime light installation I am currently working on a solo show for ROM Art + Architecture in Oslo under the title &#8220;Extrusion&#8221;, opening on March 11th. The show will focus on physical installations, a bit of a departure from my software works that I&#8217;m very excited about. One of the pieces will [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg"><a href="http://www.flickr.com/photos/watz/4740806916/" title="Bybanen1006 1202 Prime by watz, on Flickr"><img src="http://farm5.static.flickr.com/4102/4740806916_9193d5bf9a.jpg" width="500" height="333" alt="Bybanen1006 1202 Prime" /></a></p>
<p>To be revisited: <a href="http://www.flickr.com/photos/watz/sets/72157623930375100/">Prime light installation</a></div>
<p>I am currently working on a solo show for ROM Art + Architecture in Oslo under the title &#8220;Extrusion&#8221;, opening on March 11th. The show will focus on physical installations, a bit of a departure from my software works that I&#8217;m very excited about.</p>
<p>One of the pieces will be a new version of my light installation <a href="http://www.flickr.com/photos/watz/sets/72157623930375100/">Prime</a>, a public art commission for the Bybanen light rail system in Bergen last year. The Bybanen version uses LED lighting elements and electric relays, intended to be stable for a minimum of 5 years in the rough environment of a subterranean tunnel. The new version will use fluorescent tubes and computer-controlled switching via a <a href="http://en.wikipedia.org/wiki/DMX512">DMX-512 lighting control interface</a>.</p>
<p><strong>Fortunately there are several USB interfaces for DMX control,</strong> as well as a recently released Processing library by Henri David titled <a href="http://motscousus.com/stuff/2011-01_dmxP512/">dmxP512</a>. Thanks to the generous assistance of <a href="http://www.shiffman.net/">Dan Shiffman</a> I was able to test my interface with dmxP512 today. I&#8217;m very pleased to say that both the USB box and David&#8217;s library worked without a hitch, literally working perfectly on the very first attempt.</p>
<p>Even given the simplicity of the DMX standard it&#8217;s rare that anything works that easily, let&#8217;s hope I don&#8217;t jinx myself by writing it publicly. In any case, the exceedingly simple code I used is listed below, based on the sample code provided with the dmxP512 lib. Happy hacking, my thanks to Henri David for the library!</p>
<div class="mediumtitle">Code: DMXTest01.pde</div>
<p><span id="more-474"></span></p>
<p>To run this example you&#8217;ll need <a href="http://motscousus.com/stuff/2011-01_dmxP512/">Henri David&#8217;s dmxP512 library</a> and a USB DMX interface like the <a href="http://www.enttec.com/index.php?main_menu=Products&#038;pn=70304&#038;show=description&#038;name=dmxusbpro">ENTTEC DMX USB Pro</a> ($151).</p>
<p>To set a new value for any given DMX channel, simply call DmxP512.set(dmxChannel,newValue).</p>
<pre name="code" class="java">
import dmxP512.*;
import processing.serial.*;

DmxP512 dmxOutput;
String DMXPRO_PORT="COM4";
int DMXPRO_BAUDRATE=115000;

void setup() {
  size(200,200);

  println(Serial.list());
  DMXPRO_PORT=Serial.list()[0];
  println("DMXPRO_PORT "+DMXPRO_PORT);

  dmxOutput=new DmxP512(this,128,false);
  dmxOutput.setupDmxPro(DMXPRO_PORT,DMXPRO_BAUDRATE);
}

void draw() {
  background(0);

  int cnt=(int)((float)millis()/100f)%255;
  println("cnt "+cnt);

  // output on DMX channel 2
  dmxOutput.set(2,cnt);
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2011/02/17/dmx-512-and-prime-revisited/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Work: abstract01js</title>
		<link>http://workshop.evolutionzone.com/2010/10/27/work-abstract01js/</link>
		<comments>http://workshop.evolutionzone.com/2010/10/27/work-abstract01js/#comments</comments>
		<pubDate>Wed, 27 Oct 2010 05:39:56 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[Watz work]]></category>
		<category><![CDATA[Web dev]]></category>
		<category><![CDATA[abstract]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[exhibition]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[processing.js]]></category>
		<category><![CDATA[processing.org]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=442</guid>
		<description><![CDATA[New piece: abstract01js. Built with Processing.js I finally had an excuse to take Processing.js for a spin. Aram Bartholl is doing one of his Speed Show exhibitions this Wednesday (SPEED SHOW vol.4:’Super Niche’). The Speed Show format is based on taking over an internet cafe and showing artworks that can run in regular browsers without [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg"><a href="http://mariuswatz.com/works/abstract01js/"><img src="http://workshop.evolutionzone.com/wp-content/uploads/2010/10/abstract01js-crop-01-50.jpg" alt="" title="abstract01js" width="512" height="299" class="alignnone size-full wp-image-443" /></a></p>
<p>New piece: <a href="http://mariuswatz.com/works/abstract01js/">abstract01js</a>. Built with Processing.js</div>
<p>I finally had an excuse to take <a href="http://processingjs.org">Processing.js</a> for a spin. Aram Bartholl is doing one of his Speed Show exhibitions this Wednesday (<a href="http://fffff.at/speed-show-4/">SPEED SHOW vol.4:’Super Niche’</a>). The Speed Show format is based on taking over an internet cafe and showing artworks that can run in regular browsers without any special software. </p>
<p>Since most of my pieces use OpenGL they&#8217;re not suitable for web I decided to try porting an old 2D sketch to Processing.js. Rendering Processing code in the browser by using the HTML5 Canvas and Javascript is a nice idea, but I was curious to see if it would work for my purposes.</p>
<p>As it turns out, the code for <a href="http://processing.unlekker.net/amoebaAbstract_01_formatik/index.html">Abstract01</a> from 2003 (originally created for <a href="http://www.abstraction-now.at/">Abstraction Now</a>) worked on the first attempt. After a few adjustments I now have <a href="http://mariuswatz.com/works/abstract01js/">one interactive and one &#8220;automatic&#8221; version</a> running perfectly in Firefox and Chrome. I have to say I&#8217;m officially impressed with Processing.js, my hat off to <a href="http://ejohn.org/">John Resig</a> and crew!</p>
<p><strong>SPEED SHOW vol.4</strong> takes place today Wednesday, Oct.27 at 90 Bowery in Manhattan, in the 90 Bowery Internet Cafe. Here is the list of participating artists:</p>
<blockquote><p>Erik Andersson, Cory Arcangel, Michael Bell-Smith, Charles Broskoski, Jon Cates, Aleksandra Domanovic, Doubble Happiness, Constant Dullaart, JODI, JK Keller, Greg Leuch, Olia Lialina &#038; Dragan Espenschied, Duncan Malashock, Eva &#038; Franco Mattes aka 0100101110101101.ORG, Aaron Meyers, Mark Napier, Katja Novitskova, Paper Rad, Jon Rafman, Ariel Rebel, Ryder Ripps, Evan Roth, Brad Troemel, Marius Watz</p></blockquote>
<p>It&#8217;s an honor to be showing in such excellent company&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2010/10/27/work-abstract01js/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Code: Data saving class</title>
		<link>http://workshop.evolutionzone.com/2010/06/20/code-data-saving-class/</link>
		<comments>http://workshop.evolutionzone.com/2010/06/20/code-data-saving-class/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 15:19:12 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Processing / Java]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[processing.org]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=383</guid>
		<description><![CDATA[I wrote a useful piece of code during the recent Shakerag workshop that makes it easy to save and load parameter data from text files. To celebrate the recent launch of the new Processing Wiki I have added it there, but for completeness I will also post it here. Code: Data.pde Use Data.beginSave() to initialize [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote a useful piece of code during the recent <a href="http://workshop.evolutionzone.com/2010/04/20/shakerag-workshops-june-2010/">Shakerag workshop</a> that makes it easy to save and load parameter data from text files. To celebrate the recent launch of the new <a href="http://wiki.processing.org/w/Saving_data_to_text_files">Processing Wiki</a> I have added it there, but for completeness I will also post it here.</p>
<div class="mediumtitle">Code: Data.pde</div>
<p>Use Data.beginSave() to initialize data string collection, then add data with Data.add(). To write to file, use endSave(filename). I&#8217;ve included code for auto-incrementing filenames, it&#8217;s used in the example code.</p>
<p>To load data, call Data.load(filename), then use readInt(), readFloat(), readString() etc. to get values from the strings read from the text file. Used properly this should give you most of the flexibility you need for simple data saving.</p>
<p><span id="more-383"></span>
<pre name="code" class="java">// saveData.pde
// Marius Watz - http://workshop.evolutionzone.com

// Example showing how to use the Data utility
// class to save and load data from text files. 

float a=2.5,b=3.144;
int x=10,y=20;
boolean bool=true;
String s="This is a string.";

Data data;

void setup() {
  size(400,400);

  data=new Data();

  // SAVING
  data.beginSave();
  data.add(s);
  data.add(a);
  data.add(b);
  data.add(x);
  data.add(y);
  data.add(bool);
  data.endSave(
    data.getIncrementalFilename(
      sketchPath("save"+
        java.io.File.separator+
        "data ####.txt")));

  // LOADING
  data.load(sketchPath("save"+
    java.io.File.separator+
    "data 0000.txt"));

  s=data.readString();
  a=data.readFloat();
  b=data.readFloat();
  x=data.readInt();
  y=data.readInt();
  bool=data.readBoolean();
}

///////////////////////////
// DATA CLASS

class Data {
  ArrayList datalist;
  String filename,data[];
  int datalineId;

  // begin data saving
  void beginSave() {
    datalist=new ArrayList();
  }

  void add(String s) {
    datalist.add(s);
  }

  void add(float val) {
    datalist.add(""+val);
  }

  void add(int val) {
    datalist.add(""+val);
  }

  void add(boolean val) {
    datalist.add(""+val);
  }

  void endSave(String _filename) {
    filename=_filename;

    data=new String[datalist.size()];
    data=(String [])datalist.toArray(data);

    saveStrings(filename, data);
    println("Saved data to '"+filename+
      "', "+data.length+" lines.");
  }

  void load(String _filename) {
    filename=_filename;

    datalineId=0;
    data=loadStrings(filename);
    println("Loaded data from '"+filename+
      "', "+data.length+" lines.");
  }

  float readFloat() {
    return float(data[datalineId++]);
  }

  int readInt() {
    return int(data[datalineId++]);
  }

  boolean readBoolean() {
    return boolean(data[datalineId++]);
  }

  String readString() {
    return data[datalineId++];
  }

  // Utility function to auto-increment filenames
  // based on filename templates like "name-###.txt" 

  public String getIncrementalFilename(String templ) {
    String s="",prefix,suffix,padstr,numstr;
    int index=0,first,last,count;
    File f;
    boolean ok;

    first=templ.indexOf('#');
    last=templ.lastIndexOf('#');
    count=last-first+1;

    if( (first!=-1)&#038;&#038; (last-first>0)) {
      prefix=templ.substring(0, first);
      suffix=templ.substring(last+1);

      // Comment out if you want to use absolute paths
      // or if you're not using this inside PApplet
      if(sketchPath!=null) prefix=savePath(prefix);

      index=0;
      ok=false;

      do {
        padstr="";
        numstr=""+index;
        for(int i=0; i< count-numstr.length(); i++) padstr+="0";
        s=prefix+padstr+numstr+suffix;

        f=new File(s);
        ok=!f.exists();
        index++;

        // Provide a panic button. If index > 10000 chances are it's an
        // invalid filename.
        if(index>10000) ok=true;

      }
      while(!ok);

      // Panic button - comment out if you know what you're doing
      if(index> 10000) {
        println("getIncrementalFilename thinks there is a problem - "+
          "Is there  more than 10000 files already in the sequence "+
          " or is the filename invalid?");
        println("Returning "+prefix+"ERR"+suffix);
        return prefix+"ERR"+suffix;
      }
    }

    return s;
  }

}</pre>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2010/06/20/code-data-saving-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data, data, data</title>
		<link>http://workshop.evolutionzone.com/2010/04/11/data-data-data/</link>
		<comments>http://workshop.evolutionzone.com/2010/04/11/data-data-data/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 19:41:56 +0000</pubDate>
		<dc:creator>marius watz</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Open source]]></category>
		<category><![CDATA[Theory]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[data sculpture]]></category>
		<category><![CDATA[david mccandless]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[geonames]]></category>
		<category><![CDATA[infoviz]]></category>
		<category><![CDATA[jonathan harris]]></category>
		<category><![CDATA[manuel lima]]></category>
		<category><![CDATA[martin wattenberg]]></category>
		<category><![CDATA[opendata]]></category>
		<category><![CDATA[visualcomplexity]]></category>
		<category><![CDATA[visualization]]></category>
		<category><![CDATA[weather]]></category>

		<guid isPermaLink="false">http://workshop.evolutionzone.com/?p=347</guid>
		<description><![CDATA[KBGAnimD01EB 0008, still from new sound visualization Ever since doing Stockspace project it seems I am getting asked to do data-related work. This despite the fact that my personal interests diverge from such masters of insightful infographics as Martin Wattenberg, David McCandless or Jonathan Harris. Suffice to say that I am more concerned with exploring [...]]]></description>
			<content:encoded><![CDATA[<div class="flickrImg"><a href="http://www.flickr.com/photos/watz/4480227292/" title="KBGAnimD01EB 0008 still by watz, on Flickr"><img src="http://farm3.static.flickr.com/2758/4480227292_cb94c63a68.jpg" width="500" height="281" alt="KBGAnimD01EB 0008 still" /></a></p>
<p><a href="http://www.flickr.com/photos/watz/4480227292/" title="KBGAnimD01EB 0008 still by watz, on Flickr">KBGAnimD01EB 0008, still from new sound visualization</a></p>
</div>
<p>Ever since doing <a href="http://www.flickr.com/photos/watz/sets/72157616153554806/">Stockspace</a> project it seems I am getting asked to do data-related work. This despite the fact that my personal interests diverge from such masters of insightful infographics as <a href="http://www.bewitched.com/">Martin Wattenberg</a>, <a href="http://www.davidmccandless.com/">David McCandless</a> or <a href="http://www.number27.org/">Jonathan Harris</a>. </p>
<p>Suffice to say that I am more concerned with exploring data structures as spaces than I am with providing new understandings of the information contained within them. Manuel Lima&#8217;s <a href="http://www.visualcomplexity.com/vc/blog/?p=644">Information Visualization Manifesto</a> calls for a seriousness on the topic of data treatments, while my projects remain comfortably frivolous.</p>
<p>Recently I&#8217;ve been working on a project that has required researching data sources and adapting them to illustrate a bigger idea, which has led to much Googling in the absence of good data from the client. Sometimes you find the right thing immediately, but sometimes data is hard to find in a format that is freely available and easily parsable. Since I have found some good sources I thought I&#8217;d share them here&#8230;</p>
<div class="mediumtitle">Miscellaneous free data</div>
<ul>
<li><a href="http://rredc.nrel.gov/solar/calculators/PVWATTS/version1/">PVWATSS calculator</a> from <a href="http://www.nrel.gov/rredc">Renewable Resource Data Center (RReDC)</a> provides theoretical calculations of yields (hour-by-hour, 365 days/yr) from photovoltaic solar panels for most international locations.</li>
<li><a href="http://www.halfgaar.net/localized-world-airport-codes">World airport codes with geo name data</a>, helpfully spidered by Wiebe Cazemier so you don&#8217;t have to.</li>
<li>Unattributed <a href="http://geolite.maxmind.com/download/">FTP depository of geo-related CSV files</a>, including postal and ZIP codes, world city info etc.</li>
<li><a href="http://www.programmableweb.com/api/weather-underground">Historical weather data from Weather Underground</a>, providing year-by-year hourly information for most cities in the world. (See also this list of <a href="http://blog.programmableweb.com/2009/04/15/5-weather-apis-from-weatherbug-to-weather-channel/">weather APIs</a>.)</li>
<li><a href="http://finance.yahoo.com/">Yahoo Finance</a> offers downloads of historical stock price data (CSV) for just about any stock symbol out there. Sadly I have yet to find an open intraday stock data source, due to the proprietary nature of that kind of information.</li>
<li><a href="http://www.guardian.co.uk/news/datablog">The Guardian&#8217;s Datablog</a> is a recent venture, and I have yet to use any of the data sets they provide. But I like their approach, which is clearly aimed at democratizing data with a view to public agenda.</li>
</ul>
<p>I would be interested in hearing tips about any great data sets out there, particularly interesting time series data. </p>
<p><a href="http://knapek.org/">Miska Knapek</a> recently sent me a link to a source of weather sensor data from Helsinki, including measurements of wind direction at the top of Helsinki&#8217;s Olympic Tower in 5-minute intervals. He has already made <a href="http://vimeo.com/9544834">some wind visualization videos</a> and some <a href="http://www.flickr.com/photos/miska_too/collections/72157619226259190/">fabricated wind data sculptures</a> based on this data.</p>
]]></content:encoded>
			<wfw:commentRss>http://workshop.evolutionzone.com/2010/04/11/data-data-data/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

