<?xml version='1.0' encoding='UTF-8'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-6064652</id><updated>2008-11-20T03:40:00.396Z</updated><title type='text'>toxi.in.process</title><subtitle type='html'></subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/index.htm'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://13892455301868755137.blogspot.com/atom.xml'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>76</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6064652.post-7148488748249710616</id><published>2008-07-06T21:46:00.010+01:00</published><updated>2008-08-11T05:56:46.449+01:00</updated><title type='text'>Moving over... PostSpectacular is here</title><content type='html'>As one or the other might have noticed by now, this blog has not gotten a lot of love (or any attention in general) from me for a long, long time now and this will most likely be one of the last posts over here...&lt;br /&gt;&lt;br /&gt;The reason for all this silence has been that last autumn I decided to finally take the step I'd been preparing for such a long time and so I'd finally setup my own studio to work more freely, collaborate more, opensource more and generally be able to focus more on interesting computational design projects, be they commercial or artistic.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://postspectacular.com"&gt;PostSpectacular&lt;/a&gt; is here, along with a &lt;a href="http://postspectacular.com/process/"&gt;new blog&lt;/a&gt; and a list of &lt;a href="http://postspectacular.com/work/"&gt;recent projects&lt;/a&gt;. I've also nailed down a little &lt;a href="http://postspectacular.com/manifesto/"&gt;manifesto&lt;/a&gt; for this new endeavour to help myself and my (new) clients.&lt;br /&gt;&lt;br /&gt;Giving interested people more insight into our way of working is also an important part of this new setup and inspired by the manifesto so far I've written up quite detailed documentations (incl. one with a making-of video) for these 4 recent projects in the hope to share &amp; inspire:&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="vertical-align:top;"&gt;&lt;a href="http://postspectacular.com/work/printmag/"&gt;&lt;img src="http://www.toxi.co.uk/blog/uploaded_images/cover1-711373.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;Print magazine cover design&lt;/strong&gt;, August 2008&lt;/p&gt;&lt;p&gt;A generative typographic sculpture realized with Processing and 3D printing&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="vertical-align:top;"&gt;&lt;a href="http://postspectacular.com/work/faberfinds/"&gt;&lt;img src="http://www.toxi.co.uk/blog/uploaded_images/ff1-774490.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;Faber Finds&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Created a software solution to generate unique book covers for this new print-on-demand service.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="vertical-align:top;"&gt;&lt;a href="http://postspectacular.com/work/nokia/friends/"&gt;&lt;img src="http://www.toxi.co.uk/blog/uploaded_images/nf1-797343.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;Nokia Friends&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Software animation instrument and physics driven character generator.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;td style="vertical-align:top;"&gt;&lt;a href="http://postspectacular.com/work/advancedbeauty/"&gt;&lt;img src="http://www.toxi.co.uk/blog/uploaded_images/ab11-746879.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;p&gt;&lt;strong&gt;Advanced Beauty: Enerugii, pt.II&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Audio responsive HD motiongraphics piece for this collaborative DVD project.&lt;/p&gt;&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/table&gt;&lt;br /&gt;At this point, I just want to say thanks to everyone who's taken the time to come by here now and in the past and I hope to see you again at the new place! Danke! Btw. At the time of this writing, the new studio website is still a bit rough around the edges, but in true agile manner it's already been running for 10 months on a customized/themed version of DokuWiki and most of the important content is there now..&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/postspectacular" rel="tag"&gt;postspectacular&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/generative" rel="tag"&gt;generative&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/printondemand" rel="tag"&gt;printondemand&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/blogging" rel="tag"&gt;blogging&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/fabrication" rel="tag"&gt;fabrication&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/motiongraphics" rel="tag"&gt;motiongraphics&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/audioresponsive" rel="tag"&gt;audioresponsive&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/physics" rel="tag"&gt;physics&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/7148488748249710616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/7148488748249710616'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2008/07/moving-over-postspectacular-is-here.htm' title='Moving over... PostSpectacular is here'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-8351531434414481823</id><published>2007-12-04T10:46:00.000Z</published><updated>2007-12-04T11:17:29.072Z</updated><title type='text'>Arduino + Processing London workshop this weekend</title><content type='html'>Apologies for not posting this any earlier (or any other news for that matter, of which there are plenty): Organized by the lovely folks @ &lt;a href="http://tinker.it"&gt;Tinker.it&lt;/a&gt;, together with &lt;a href="http://www.undergroundmole.org/newsdrip/newsdrip.php"&gt;Spencer Roberts&lt;/a&gt; I'll be co-teaching an &lt;a href="http://tinkerit.eventwax.com/h3-processing--arduino"&gt;H3:Arduino+Processing workshop&lt;/a&gt; this weekend (8th/9th December) and would like to point out there are still places available. You should have some basic/intermediate experience with both tools as we will be looking at more "advanced" (yuck, how I hate this word) topics and will try to each have a little interactive project built over the weekend. The workshop space itself is kindly provided by &lt;a href="http://movingbrands.com"&gt;Moving Brands&lt;/a&gt; in &lt;a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;ll=51.525553,-0.080981&amp;spn=0.005867,0.016479&amp;z=17&amp;om=1&amp;msid=105860997632171326875.00044073ef75758318c82"&gt;Shoreditch&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;More info and schedule on the &lt;a href="http://tinkerit.eventwax.com/h3-processing--arduino"&gt;workshop website&lt;/a&gt;. Ciao.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/arduino" rel="tag"&gt;arduino&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/workshop" rel="tag"&gt;workshop&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/london" rel="tag"&gt;london&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/h3" rel="tag"&gt;h3&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/tinker.it" rel="tag"&gt;tinker.it&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/electronics" rel="tag"&gt;electronics&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sensor" rel="tag"&gt;sensor&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/mb.com" rel="tag"&gt;mb.com&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/8351531434414481823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/8351531434414481823'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/12/arduino-processing-london-workshop-this.htm' title='Arduino + Processing London workshop this weekend'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-2770658142525277856</id><published>2007-09-18T15:08:00.000+01:00</published><updated>2007-09-18T15:50:41.820+01:00</updated><title type='text'>Up &amp; coming in The Netherlands</title><content type='html'>As usual, a last minute notification (few hours before leaving) about my participation in this year's &lt;a href="http://www.todaysart.nl/2007/"&gt;TodaysArt festival&lt;/a&gt; in The Hague, Netherlands.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tag004.nl"&gt;&amp;lt;&amp;gt;TAG&lt;/a&gt; kindly invited me to give 2 lectures about my Processing works in the context of their &lt;a href="http://www.tag004.nl/new/system/main.php?pageid=386"&gt;Information Aesthetics 2&lt;/a&gt; symposium. First I'll be joining Mr. &lt;a href="http://reas.com/"&gt;Casey Reas&lt;/a&gt; and &lt;a href="http://www.aaronkoblin.com/"&gt;Aaron Koblin&lt;/a&gt; @ &lt;a href="http://www.mediamatic.net/artefact-22155-en.html"&gt;Mediamatic&lt;/a&gt; in Amsterdam, this Thursday at 2030h.&lt;br /&gt;&lt;br /&gt;The Information Aesthetics symposium will then take place at the Spui Theatre, The Hague on Saturday from 1400-1800h. &lt;a href="http://unlekker.net"&gt;Marius Watz&lt;/a&gt; and &lt;a href="http://mslima.com"&gt;Manuel Lima&lt;/a&gt; (author of &lt;a href="http://www.visualcomplexity.com/"&gt;Visual Complexity&lt;/a&gt;) will also take part in this so am looking ++forward to see what everyone has been up to recently and of course to the discussion about our varied approaches.&lt;br /&gt;&lt;br /&gt;Last but not last, I (under the &lt;a href="http://movingbrands.com"&gt;Moving Brands&lt;/a&gt; moniker) will be responsible for the re-staging of an adaptation of the &lt;a href="http://www.toxi.co.uk/blog/2007/04/kef-muon-launch.htm"&gt;KEF Muon&lt;/a&gt; audio visualization - this time unfortunately without the Muon speakers &amp;amp; LED floor - but projected in the amazing space of the &lt;a href="http://www.richardmeier.com/"&gt;Richard Meier&lt;/a&gt; designed &lt;a href="http://www.atriumdenhaag.nl/atrium.html"&gt;city hall&lt;/a&gt; of The Hague. This will be happening throughout Friday and Saturday.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/art" rel="tag"&gt;art&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/event" rel="tag"&gt;event&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/todaysart" rel="tag"&gt;todaysart&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/thehague" rel="tag"&gt;thehague&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/denhaag" rel="tag"&gt;denhaag&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/amsterdam" rel="tag"&gt;amsterdam&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/mediamatic" rel="tag"&gt;mediamatic&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/lecture" rel="tag"&gt;lecture&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/visualization" rel="tag"&gt;visualization&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/watz" rel="tag"&gt;watz&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/reas" rel="tag"&gt;reas&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2770658142525277856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2770658142525277856'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/09/up-coming-in-netherlands.htm' title='Up &amp; coming in The Netherlands'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-2894369322789426557</id><published>2007-08-21T17:51:00.000+01:00</published><updated>2007-08-21T18:57:05.004+01:00</updated><title type='text'>Creating weblinks in PDF with iText</title><content type='html'>&lt;a href="http://www.flickr.com/photos/lennyjpg/"&gt;Mr. LennyJPG&lt;/a&gt; pinged me this morning asking about creating hyperlinks in PDFs generated with Processing. After some digging through the &lt;a href="http://lowagie.com/iText/"&gt;iText&lt;/a&gt; &lt;a href="http://itext.ugent.be/library/api/index.html"&gt;javadocs&lt;/a&gt; and reading various tutorials it became obvious that Processing's &lt;a href="http://dev.processing.org/source/index.cgi/trunk/processing/pdf/src/processing/pdf/PGraphicsPDF.java?view=markup"&gt;PGraphicsPDF class&lt;/a&gt; had to be modified to give us access to the wrapped &lt;a href="http://itext.ugent.be/library/api/com/lowagie/text/pdf/PdfContentByte.html"&gt;PdfContentByte&lt;/a&gt; instance so that the hyperlink magic can happen. My modified version of Processing's PDF library can be downloaded from &lt;a href="http://toxi.co.uk/p5/pdf/pdf.jar"&gt;here&lt;/a&gt; (jar) and &lt;a href="http://toxi.co.uk/p5/pdf/PGraphicsPDF.java"&gt;there&lt;/a&gt; (source). The .jar has to be placed in the /libraries/pdf/library folder inside the Processing root, &lt;em&gt;but please make sure to keep a backup of the original.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The demo below is briefly showing how to create weblinks (here: to various del.icio.us users) and how to position these on the page. All should be pretty self-explanatory. Finally, here's an &lt;a href="http://toxi.co.uk/p5/pdf/test1187714656.pdf"&gt;example PDF&lt;/a&gt; generated with this demo.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;/**&lt;br /&gt; * iText/Processing PDF weblink demo&lt;br /&gt; * Builds a number of links on the fly and&lt;br /&gt; * positions them randomly on the page.&lt;br /&gt; *&lt;br /&gt; * CAUTION: This demo requires a modified version of&lt;br /&gt; * Processing's PGraphicsPDF class&lt;br /&gt; *&lt;br /&gt; * @author: info at toxi dot co dot uk&lt;br /&gt; */&lt;br /&gt;import processing.pdf.*;&lt;br /&gt;import com.lowagie.text.*;&lt;br /&gt;import com.lowagie.text.pdf.*;&lt;br /&gt;&lt;br /&gt;void setup() {&lt;br /&gt;  pageSize(com.lowagie.text.PageSize.A6,false,JAVA2D);&lt;br /&gt;  PGraphicsPDF pdf=(PGraphicsPDF)beginRecord(PDF,"test"+(System.currentTimeMillis()/1000)+".pdf");&lt;br /&gt;&lt;br /&gt;  // draw something in the background&lt;br /&gt;  for(int i=0; i &amp;lt; height; i+=10) {&lt;br /&gt;    line(0,0,width,i);&lt;br /&gt;    line(width,height,0,i);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  try {&lt;br /&gt;    // build hyperlinks for these del.icio.us users&lt;br /&gt;    String[] users=new String[] {&lt;br /&gt;      "adm",&lt;br /&gt;      "blackbeltjones",&lt;br /&gt;      "d3",&lt;br /&gt;      "garuda",&lt;br /&gt;      "golan",&lt;br /&gt;      "hahakid",&lt;br /&gt;      "jbleecker",&lt;br /&gt;      "lennyjpg",&lt;br /&gt;      "reas",&lt;br /&gt;      "toxi"&lt;br /&gt;    };&lt;br /&gt;    &lt;br /&gt;    for(int i=0; i &amp;lt; users.length; i++) {&lt;br /&gt;      // java colours are normalized 0.0 .. 1.0&lt;br /&gt;      Color linkCol = new Color(random(1), random(1), random(1));&lt;br /&gt;      Chunk c=new Chunk(users[i],FontFactory.getFont(FontFactory.HELVETICA, 14, com.lowagie.text.Font.UNDERLINE, linkCol));&lt;br /&gt;      c.setBackground(new Color(0,0,0),5,5,5,5);&lt;br /&gt;      c.setAnchor("http://del.icio.us/"+users[i]);&lt;br /&gt;      // this is using a hacked version of PGraphicsPDF to get access to the PDF content&lt;br /&gt;      PdfContentByte cb=pdf.getContent();&lt;br /&gt;      ColumnText ct = new ColumnText(cb);&lt;br /&gt;      float x=random(width-100);&lt;br /&gt;      float y=random(height-100);&lt;br /&gt;      ct.setSimpleColumn(new Phrase(c), x,y, x+100, y+50, 16, Element.ALIGN_CENTER);&lt;br /&gt;      ct.go();&lt;br /&gt;    }&lt;br /&gt;  } &lt;br /&gt;  catch(Exception e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;  endRecord();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// see link below for more info about this method:&lt;br /&gt;// http://www.toxi.co.uk/blog/2007/07/specifying-pdf-page-size-in-processing.htm&lt;br /&gt;void pageSize(com.lowagie.text.Rectangle r, boolean isLandscape, String renderer) {&lt;br /&gt;  if (isLandscape) {&lt;br /&gt;    size((int)r.top(),(int)r.right(),renderer);&lt;br /&gt;  } &lt;br /&gt;  else {&lt;br /&gt;    size((int)r.right(),(int)r.top(),renderer);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/itext" rel="tag"&gt;itext&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/pdf" rel="tag"&gt;pdf&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/library" rel="tag"&gt;library&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/code" rel="tag"&gt;code&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/hack" rel="tag"&gt;hack&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2894369322789426557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2894369322789426557'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/08/creating-weblinks-in-pdf-with-itext.htm' title='Creating weblinks in PDF with iText'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-9035838435293657160</id><published>2007-07-31T10:42:00.000+01:00</published><updated>2007-07-31T22:32:45.943+01:00</updated><title type='text'>Using JavaDB and db4o in Processing</title><content type='html'>Kind of as reply to &lt;a href="http://www.tom-carden.co.uk/2007/07/30/a-quick-note-on-using-sqlite-in-processing/"&gt;Tom's  mini howto&lt;/a&gt; for using SQLite with Processing, but also since I've been dabbling with it myself recently, here's an alternative take on using an embedded database from within Processing (or more generally in Java)...&lt;br /&gt;&lt;br /&gt;Mainly due to Java's strong focus on server side development, over the past few years there have been several large scale community efforts to create Java native database engines, which don't rely on underlying C code, are high performant and portable: the essence of the Java way. The other benefit is that such DB engines can be embedded and distributed with your application without requiring any further installation. One such development effort is &lt;a href="http://db.apache.org/derby/"&gt;Apache Derby&lt;/a&gt;, a project which started in 1996, swapped owners several times (amongst them IBM) and then became an incubator project at &lt;a href="http://apache.org"&gt;Apache&lt;/a&gt; in 2004. Sun also joined the project and has been bundling it as library (under the name &lt;a href="http://developers.sun.com/javadb/"&gt;JavaDB&lt;/a&gt;) as part of the JDK (v6+) since December 2006. So in other words if you have Java6 installed you also should have Derby. But even if you don't (for example Mac users), you can &lt;a href="http://db.apache.org/derby/derby_downloads.html"&gt;download Derby from here&lt;/a&gt; and unzip it to any folder on your hard drive.&lt;br /&gt;&lt;br /&gt;The following deals with setting up Processing to work with Derby:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a new folder structure &lt;tt&gt;/derby/library&lt;/tt&gt; within Processing's &lt;tt&gt;/libraries&lt;/tt&gt; folder&lt;/li&gt;&lt;li&gt;Copy the file &lt;tt&gt;derby.jar&lt;/tt&gt; from Derby's &lt;tt&gt;/lib&lt;/tt&gt; folder into the newly created folder&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Before we can start using the database now we first need to create a new database. Derby comes with its own commandline client "ij" which is located in the &lt;tt&gt;/bin&lt;/tt&gt; directory of the main Derby install dir (If you're going to use this tool more often it would make sense to add this &lt;tt&gt;/bin&lt;/tt&gt; directory to your system path).&lt;br /&gt;&lt;br /&gt;Launch &lt;tt&gt;ij&lt;/tt&gt; from the commandline and then create a new database with this command:&lt;br /&gt;&lt;pre&gt;ij&gt; connect 'jdbc:derby:/path/to/database;create=true';&lt;/pre&gt;&lt;br /&gt;Databases are just folders and can be stored anywhere. For example on Windows the path &lt;tt&gt;/dev/derby/mydb&lt;/tt&gt; would refer to &lt;tt&gt;C:\dev\derby\mydb&lt;/tt&gt;...&lt;br /&gt;&lt;br /&gt;Next create some a simple table in the new database and add some data:&lt;br /&gt;&lt;pre&gt;ij&gt; create table cities (&lt;br /&gt;cityID integer not null primary key,&lt;br /&gt;name varchar(32) not null&lt;br /&gt;);&lt;br /&gt;insert into cities values(1,'london');&lt;br /&gt;insert into cities values(2,'berlin');&lt;br /&gt;insert into cities values(3,'san francisco');&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Given that all worked fine so far we can finally move on to a small Processing demo to query our exciting dataset:&lt;br /&gt;&lt;pre&gt;import org.apache.derby.*;&lt;br /&gt;import java.sql.*;&lt;br /&gt;&lt;br /&gt;String driver = "org.apache.derby.jdbc.EmbeddedDriver";&lt;br /&gt;String connectID = "jdbc:derby:/derby/testdb";&lt;br /&gt;Connection conn;&lt;br /&gt;&lt;br /&gt;void setup() {&lt;br /&gt;  size(100,100);&lt;br /&gt;  try {&lt;br /&gt;    query();&lt;br /&gt;  }&lt;br /&gt;  catch(SQLException e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void query() throws SQLException {&lt;br /&gt;  try{&lt;br /&gt;    Class.forName(driver); &lt;br /&gt;  } &lt;br /&gt;  catch(java.lang.ClassNotFoundException e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  try {&lt;br /&gt;    conn = DriverManager.getConnection(connectID);&lt;br /&gt;    Statement st=conn.createStatement();&lt;br /&gt;    ResultSet results=st.executeQuery("SELECT * FROM cities");&lt;br /&gt;    while (results.next()){&lt;br /&gt;      println("City: "+results.getString("name"));&lt;br /&gt;    }&lt;br /&gt;    results.close();&lt;br /&gt;  }&lt;br /&gt;  catch (Exception e)  {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;  finally {&lt;br /&gt;    // always make sure we close the connection&lt;br /&gt;    if (conn!=null) conn.close();&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Now, this is obviously an absolute bare bones demo, however Florian Jennet wrote &lt;a href="http://www.bezier.de/mysql/"&gt;a little database library&lt;/a&gt; last year to hide all these excessive try/catch clauses. Unfortunately he's also hardcoded the database connection string to only work with MySQL and there's no source supplied with the library so one could change it and easily add support for other JDBC drivers... (nudge! :)&lt;br /&gt;&lt;br /&gt;Speaking of databases, here's another food for thought. SQLite, MySQL, Apache Derby et al are all based on the relational database model. Java on the other hand is object oriented and as you can see it takes a relative large effort to exchange data between both worlds without any further help. To ease these tasks there're various powerful &lt;a href="http://www.hibernate.org/"&gt;object relationship mappers&lt;/a&gt; available acting as translators between the worlds of objects and that of SQL. Last but not least, native object oriented databases are yet another alternative approach here which is far more aligned with the language. &lt;a href="http://www.db4o.com"&gt;db4o&lt;/a&gt; is such an object database and allows you to store and query complex object hierarchies in a most natural (in a Java context) way. For example with db4o you can store and restore the entire state of an application - &lt;em&gt;with just a single line of code.&lt;/em&gt; This in turn not just saves you a lot of time and headaches, but also enables building more complex, data intensive applications. If you're interested, the db4o site has a very easy to follow &lt;a href="http://www.db4o.com/community/testdrive/formulaonetutorial.aspx"&gt;tutorial&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/database" rel="tag"&gt;database&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/javadb" rel="tag"&gt;javadb&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/derby" rel="tag"&gt;derby&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/db4o" rel="tag"&gt;db4o&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/9035838435293657160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/9035838435293657160'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/07/using-javadb-and-db4o-in-processing.htm' title='Using JavaDB and db4o in Processing'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-8238099239946041127</id><published>2007-07-29T21:36:00.000+01:00</published><updated>2007-07-29T23:05:48.542+01:00</updated><title type='text'>String based designs</title><content type='html'>As we delve deeper into the realms of applied generative design and deal with a whole population of possible design outcomes, we often find ourselves preferring certain outcomes more than others and want to narrow down our explorations. So the identity of each such design plays an important role. Identity in this context can be defined by the set of input parameters used, but we also need to ensure the processing of these parameters is deterministic, meaning that even though we often use (pseudo)randomness as part of the algorithm, the outcome should be replicable for each set of parameters.&lt;br /&gt;&lt;br /&gt;Most (if not all) pseudo-random generators use the concept of a random seed which subsequently produces a unique (and deterministic) sequence of "random" numbers. In Processing you can use both &lt;tt&gt;randomSeed()&lt;/tt&gt; and &lt;tt&gt;noiseSeed()&lt;/tt&gt; to achieve this. Now while using numbers is all fine, and technically speaking, all digital media is just numbers - there're use cases where it'd be nicer to use e.g. text as seed directly. For example, the 20,000 designs of the &lt;a href="http://www.toxi.co.uk/blog/2007/04/lovebytes-2007-generative-ident.htm"&gt;Lovebytes fluffies&lt;/a&gt; are all based on their generated character name only. There're about 10 other parameters, but these too are chosen based on the random sequence seeded by the name. &lt;br /&gt;&lt;br /&gt;One way of turning a string into a number is by using message digests, like the popular &lt;a href="http://en.wikipedia.org/wiki/MD5"&gt;MD5&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/SHA-1"&gt;SHA1&lt;/a&gt; algorithms. A message digest takes any number of bytes as input and calculates a fixed length hash. MD5 results in a number 128 bits long and SHA1 160 bits. This is more data than we can cope with since most common random number generators only accept up to 64 bits as input. In Java/Processing this is equivalent to the &lt;a href="http://www.flickr.com/photos/toxi/613783248"&gt;long type&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The following function takes a string as input, computes the hash and then returns the first 8 bytes as long integer to be used as random seed. Because it doesn't use the full hash it's possible in theory to end up with the same result for different inputs. However, I've not yet managed to come across a collision with the relative short strings (names, sentences, phrases) used in my work.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;import java.security.*;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * Calculates the message digest of the given string and&lt;br /&gt; * returns the first 8 bytes packed into a long&lt;br /&gt; *&lt;br /&gt; * @param msg string to form hash from&lt;br /&gt; * @param digest message digest ID (e.g. "MD5" or "SHA1")&lt;br /&gt; * @return zero if failed, else partial digest as type long &lt;br /&gt; */&lt;br /&gt;long getLongHash(String msg, String digest) {&lt;br /&gt;  long result=0;&lt;br /&gt;  try {&lt;br /&gt;    MessageDigest md = MessageDigest.getInstance(digest);&lt;br /&gt;    md.update(msg.getBytes());&lt;br /&gt;    byte[] buffer=md.digest();&lt;br /&gt;    for(int i=0,bits=56; i&amp;lt;8; i++) {&lt;br /&gt;      long val=(buffer[i]&amp;lt;0 ? 0x100+buffer[i] : buffer[i]);&lt;br /&gt;      result|=val&amp;lt;&amp;lt;bits;&lt;br /&gt;      bits-=8;&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  catch(Exception e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;  return result;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;And again, use it like that:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;long seed=getLongHash("Hello world!","MD5"); // "SHA1" as alternative&lt;br /&gt;noiseSeed(seed);&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Btw. The default Java Random generator &lt;strong&gt;does not&lt;/strong&gt; guarantee to produce a deterministic sequence across all platforms. This means as long you're using Processing's default &lt;tt&gt;random()&lt;/tt&gt; or &lt;tt&gt;noise()&lt;/tt&gt; functions you're only guaranteed the same sequence as long as you stay on either Windows &lt;em&gt;or&lt;/em&gt; OSX &lt;em&gt;or&lt;/em&gt; Linux. Last year Marius wrote a &lt;a href="http://workshop.evolutionzone.com/2006/05/16/random-number-generator-mersenne-twister/"&gt;Processing wrapper&lt;/a&gt; for the famous &lt;a href="http://en.wikipedia.org/wiki/Mersenne_Twister"&gt;Mersenne Twister&lt;/a&gt; generator, however this one can only be used as alternative and in isolation. Processing's &lt;tt&gt;noise()&lt;/tt&gt; function is hardcoded to use the default Java generator...&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/generative" rel="tag"&gt;generative&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/randomness" rel="tag"&gt;randomness&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/md5" rel="tag"&gt;md5&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sha1" rel="tag"&gt;sha1&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/seed" rel="tag"&gt;seed&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/determinism" rel="tag"&gt;determinism&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/code" rel="tag"&gt;code&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/lovebytes" rel="tag"&gt;lovebytes&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/8238099239946041127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/8238099239946041127'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/07/string-based-designs.htm' title='String based designs'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-3967454032258863572</id><published>2007-07-25T18:45:00.001+01:00</published><updated>2007-07-25T19:11:51.963+01:00</updated><title type='text'>Specifying PDF page size in Processing</title><content type='html'>I've always been wondering if there's no easier way than trial &amp;amp; error to figure out the correct dimensions one has to specify in the &lt;tt&gt;size()&lt;/tt&gt; command to match a certain paper size for the generated PDF. Today I finally had a quick look at the source of the underlying &lt;a href="http://www.lowagie.com/iText/"&gt;iText&lt;/a&gt; library on which Processing's PDF wrapper is built. As expected it actually includes a convenience class which has &lt;a href="http://docjar.com/docs/api/com/lowagie/text/PageSize.html"&gt;presets for all common page formats&lt;/a&gt;. This is great, but to make this even slightly more user-friendly you can take this snippet and keep it:&lt;pre&gt;/**&lt;br /&gt;* Convenience method to be used instead of the normal size() command.&lt;br /&gt;* Creates window matched to a given paper size&lt;br /&gt;*&lt;br /&gt;* @param r a predefined constant of the iText PageSize class&lt;br /&gt;* @param isLandscape true, if you want landscape orientation&lt;br /&gt;* @param renderer class name of the Processing renderer to use&lt;br /&gt;*/&lt;br /&gt;void pageSize(com.lowagie.text.Rectangle r, boolean isLandscape, String renderer) {&lt;br /&gt;  if (isLandscape) {&lt;br /&gt;    size((int)r.top(),(int)r.right(),renderer);&lt;br /&gt;  } else {&lt;br /&gt;    size((int)r.right(),(int)r.top(),renderer);&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;And here're a couple of examples how this snippet would be used (make sure you import the PDF library):&lt;pre&gt;void setup() {&lt;br /&gt;  // create window @ A3 landscape using OPENGL&lt;br /&gt;  pageSize(com.lowagie.text.PageSize.A3,true,OPENGL);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void setup() {&lt;br /&gt;  // create window @ US Letter size, portrait using default renderer&lt;br /&gt;  pageSize(com.lowagie.text.PageSize.LETTER,false,JAVA2D);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/pdf" rel="tag"&gt;pdf&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/itext" rel="tag"&gt;itext&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/snippet" rel="tag"&gt;snippet&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/3967454032258863572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/3967454032258863572'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/07/specifying-pdf-page-size-in-processing.htm' title='Specifying PDF page size in Processing'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-8628400287721420517</id><published>2007-07-24T18:06:00.000+01:00</published><updated>2007-07-24T22:15:31.665+01:00</updated><title type='text'>Digital portfolio library for London College of Fashion</title><content type='html'>Rather late than never, here's finally some brief documentation of &lt;a href="http://movingbrands.com"&gt;Moving Brands&lt;/a&gt;' latest interactive installation, after &lt;a href="http://www.toxi.co.uk/blog/2007/04/kef-muon-launch.htm"&gt;Muon&lt;/a&gt; our second one this year...&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/x4E5tEfLXYE"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/x4E5tEfLXYE" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The brief and objectives set by the &lt;a href="http://www.fashion.arts.ac.uk/"&gt;London College of Fashion&lt;/a&gt; were similar to &lt;a href="http://www.toxi.co.uk/blog/2006/06/london-graduate-fashion-week.htm"&gt;last year's&lt;/a&gt;, only with the added challenge of having to show work of twice as many students (18 courses), almost 500 in total with 10+ images each. Our solution to that was a digital approach, housed within a 'library' setting where visitors could browse students work in two stages: First, scanning and selecting students of interest, followed by detailed browsing of their work. To reflect this, the library also consisted of two complementary parts, one "analog" and one "digital". Each student is represented by a post-card sized tag which is located on the installation walls. On the back of each card is a unique pair of identifier tags, so when the card is placed on one of the four interactive tables the student's work is revealed. The cards also acted as student "business cards" (with their contact details) and could be taken away by visitors, which often were recruiters.&lt;br /&gt;&lt;br /&gt;After lots of deliberation the software side of the installation was developed using the fabulous &lt;a href="http://mtg.upf.edu/reactable/?software"&gt;reacTIVision&lt;/a&gt; &amp; &lt;a href="http://processing.org"&gt;Processing&lt;/a&gt;. The former is used to analyse and identify the printed markers, however the major problem we had to overcome was that the tool only comes with a set of 90 markers, whereas we needed close to 500. After initially considering the definition of custom markers, I then opted for combining 2 markers into pairs (hierarchical index) and so end up with a maximum of 45*45 = 2025 possible identities (due to the special cases caused by the fixed usage scenario of the tables we could theoretically reach a higher number). The next challenge then was to identify pairs from a given set of visible markers (easy) and robustly track these as single entity over time (not as easy), especially since the software was built to support a multi-user scenario. Delaying and aggregating events broadcast by reacTIVision to Processing made all the difference and helped tackling the temporary breaking up of groups do to sub-optimal light conditions and/or user actions.&lt;br /&gt;&lt;br /&gt;So as soon as a group of markers is identified, a background thread is started to load in the various portfolio images of the related student. This multi-threaded approach is important so that any ongoing animation isn't suddenly interrupted. However since the images loaded are quite large the loading process can sometimes take several seconds and the preloader becomes quite obvious when browsing several students in a row. Caching to the rescue! After some googling I found &lt;a href="https://whirlycache.dev.java.net/"&gt;Whirlycache&lt;/a&gt;, a very easy to use Java object cache with multiple purging policies. It only took me 3 lines to integrate into my application and since the installation machines had 2GB of RAM, many images could be kept in memory and the preloader disappeared for most users. Yeah!&lt;br /&gt;&lt;br /&gt;Finally, as with last year's table we tried to increase the tactile feeling of the interaction and where we've used a visual response (soft surface simulation) in the past, this year we've opted for sound to make the experience seem more physical. We developed a sound palette for moments when cards are placed on the table, cards are rotated and removed - all with a noticeable positive difference.&lt;br /&gt;&lt;br /&gt;Some more images of the installation are on &lt;a href="http://www.flickr.com/photos/toxi/sets/72157600697564448/"&gt;F&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/panjapop/sets/72157600703151180/"&gt;l&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/joandpaul/sets/72157600592380591/"&gt;i&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/57525883@N00/sets/72157600714439065/"&gt;c&lt;/a&gt; &lt;a href="http://www.flickr.com/photos/eveleighevans/sets/72157600792090425/"&gt;k&lt;/a&gt; r...&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/lcf" rel="tag"&gt;lcf&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/interaction" rel="tag"&gt;interaction&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/installation" rel="tag"&gt;installation&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/fashion" rel="tag"&gt;fashion&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/portfolio" rel="tag"&gt;portfolio&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/library" rel="tag"&gt;library&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/movingbrands" rel="tag"&gt;movingbrands&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/reactivision" rel="tag"&gt;reactivision&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/8628400287721420517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/8628400287721420517'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/07/digital-portfolio-library-for-london.htm' title='Digital portfolio library for London College of Fashion'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-4231312648365997719</id><published>2007-07-22T00:12:00.000+01:00</published><updated>2007-07-22T04:15:28.172+01:00</updated><title type='text'>Sustainablity and generative design</title><content type='html'>&lt;a href="http://teemingvoid.blogspot.com/"&gt;Mitchell&lt;/a&gt; asked in a comment to the &lt;a href="http://www.toxi.co.uk/blog/2007/07/technology-is-knowledge-is-power.htm"&gt;Technology is knowledge is power&lt;/a&gt; post:&lt;blockquote&gt;How does this all reflect on your own practice as an artist/designer? What does *sustainable* generative design look like? Open source is perhaps one answer...&lt;/blockquote&gt;It's a hard question to answer really how this reflects on me personally since am still only coming to grips with it slowly... It's not that most of this was truly new to me, but I've been doing lots of reading &amp; thinking about these things only recently, and so haven't managed to form a full opinion yet. I think all the real answers to the sustainability question are hidden below the usual layers of conversation and discussion had, and hence why I quoted Illich in the post. Like a good visualization piece he manages to give you a view of the data from a totally different angle. Generally I agree with many of his points about the formal western school system ultimately fulfilling a more profound function in our society of encouraging (and persisting) a class system based on certification, (over)production, consumption and compliance. This is especially true when "exporting" this system to the Third World. (Btw. Seeing school's role more in terms of teaching compliance to established norms vs. current reality also moves &lt;a href="http://en.wikipedia.org/wiki/Attention-deficit_hyperactivity_disorder"&gt;ADD&lt;/a&gt; into a different light. &lt;a href="http://www.stoweboyd.com"&gt;Stowe Boyd&lt;/a&gt; has &lt;a href="http://video.google.com/videoplay?docid=-4649359414711652737&amp;hl=en"&gt;more about it&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;As long as consumption remains the main engine of our society it's hard to seriously address sustainability. The problem is also further complicated that much of the current sustainability discussion is about the purely environmental aspects of the concept, whereas these issues are just a part of the bigger picture. This is why we need to generally acquire a better global understanding of the complex interlinked nature of the systems we live in: The systems we built ourselves only recently and the ones which pre-date us but of which we only realize now to which extent we have changed and shaped them...&lt;br /&gt;&lt;br /&gt;Every tool requires a certain level of literacy to be used creatively and I think it's wrong to assume that we as societies at large have acquired these skills and mindsets to a level that they can be creatively used as tool by as many members of society as possible. Governments and mainstream media with their tendency to either ignore or to create spin around these complex issues are totally throwing spanners in the works. The "simplicity" term has already started being subverted by marketing and this is also why I'm very wary of it being preached as the main answer if the questions needing to be tackled are some of the biggest and complex we've ever faced. Simplicity is relative - reaching for better levels of literacy in systems might be more fruitful than risking important concepts being unwillingly dumbed down and diluted.&lt;br /&gt;&lt;br /&gt;Not using this as an excuse, but partly being a product of my environment I can't say that in the past I actively cared that much for sustainability myself (above and beyond recycling, public transport, energy saving etc.). Yet I've always believed in learning by doing and I quit college for the same reason. Most of the valuable things I've learned and the ones I'm most proud of, are the result of self-initiated projects and sleep deprivation fed by a genuine hunger for trying to uncover hidden layers &amp; systems in nature. Probably like many others in this field (generative design) I've always had more interest in the synthesis and simulation of (new?) concepts vs. sampling "cultural" symbols and trends. Yet am often also wondering if this discipline has not positioned itself in a vacuum if the knowledge we acquire by doing this isolated artistic research will never filter into something more important. ?!?!&lt;br /&gt;&lt;br /&gt;Given that computers and software are our current state-of-the-art tools for problem solving, all in all I'd like to believe that a continued cultural rise and awareness of open source, hacking, informal learning, workshops, blogging, tool making, digital fabrication, generative design can be and already is all part of the bigger solution:&lt;ul&gt;&lt;li&gt;Code literacy requires good skills in the abstraction and decomposition of ideas and acknowledges the process nature and connectivity of systems&lt;/li&gt;&lt;li&gt;A designer's appreciation and sensitivity of form and aesthetics informs adaptable software architectures required for building modular and agile tools.&lt;/li&gt;&lt;li&gt;Open Source tools acts as platform builders (technically and socially), distribute development costs and reduce the entry threshold by enabling anyone with an interest and access to hardware to become part of ongoing projects and communities.&lt;/li&gt;&lt;li&gt;Hardware initiatives (e.g. &lt;a href="http://laptop.org/"&gt;OLPC&lt;/a&gt;, &lt;a href="http://arduino.org"&gt;Arduino&lt;/a&gt;) and communal digital fabrication centres allow for grassroots education, experimentation and production of tools for fulfilling local/individual needs not catered for by corporations.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/sustainability" rel="tag"&gt;sustainability&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/generative" rel="tag"&gt;generative&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/opensource" rel="tag"&gt;opensource&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/education" rel="tag"&gt;education&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/fabbing" rel="tag"&gt;fabbing&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/literacy" rel="tag"&gt;literacy&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/olpc" rel="tag"&gt;olpc&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/illich" rel="tag"&gt;illich&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/4231312648365997719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/4231312648365997719'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/07/sustainablity-and-generative-design.htm' title='Sustainablity and generative design'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-6951724190698283717</id><published>2007-07-18T10:50:00.000+01:00</published><updated>2007-07-19T07:24:59.755+01:00</updated><title type='text'>Adobe says: The picture is now complete.</title><content type='html'>This is how Adobe's newsletter from this morning starts. And indeed, the picture &lt;strong&gt;is&lt;/strong&gt; complete now, just see for yourself:&lt;br /&gt;&lt;h3&gt;$2,499.00&lt;/h3&gt;&lt;br /&gt;That is the price US designers have to splash out for obtaining the new CS3 Master Collection. Since Adobe announced the first CS3 products earlier this year it became clear that creatives outside the homeland will be facing an increasingly unfair pricing policy. Even though there were various &lt;a href="http://www.gopetition.com/online/11698.html"&gt;petitions&lt;/a&gt; with over 10,000 signatories to reject the proposed pricing structure or &lt;strong&gt;at least provide a sound explanation for the drastic increases&lt;/strong&gt;, Adobe hasn't changed much and only provided mushy arguments as reasons. The prices below are correct as of today (July 18, 2007)...&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tr&gt;&lt;th&gt;country&lt;/th&gt;&lt;th&gt;local price&lt;/th&gt;&lt;th&gt;price in USD&lt;/th&gt;&lt;th&gt;increase&lt;/th&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;Germany / France / Spain&lt;/td&gt;&lt;td&gt;2,999 EUR&lt;/td&gt;&lt;td&gt;$4,142&lt;/td&gt;&lt;td&gt;66%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;UK&lt;/td&gt;&lt;td&gt;1,969 UKP&lt;/td&gt;&lt;td&gt;$4,043&lt;/td&gt;&lt;td&gt;62%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Australia&lt;/td&gt;&lt;td&gt;4,455 AUD&lt;/td&gt;&lt;td&gt;$3,913&lt;/td&gt;&lt;td&gt;57%&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Switzerland&lt;/td&gt;&lt;td&gt;4,227 CHF&lt;/td&gt;&lt;td&gt;$3,529&lt;/td&gt;&lt;td&gt;41%&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Some &lt;a href="http://www.amanwithapencil.com/adobe.html"&gt;explanations offered by Adobe&lt;/a&gt; include:&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;It costs Adobe 5 times more to manufacture and manage inventory in Europe because:&lt;ul&gt;&lt;li&gt;We must maintain different sku's for each language version to support different labeling requirements, support information, and sales requirements.&lt;/li&gt;&lt;li&gt;We maintain smaller quantities per language, in keeping with market sizes, which increases costs for printing, inventory management, and inventory disposal.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;The costs associated with our value-added reseller channels are 25% higher.&lt;/li&gt;&lt;li&gt;We maintain 2.5 times as many field marketing employees in Europe as in North America to support our creative business at a certain level of quality across local markets. However, the revenue per employee is smaller, so the overall costs per unit of revenue is 4:1 in Europe compared to North America&lt;/li&gt;&lt;li&gt;Variable marketing expenses are 46% higher&lt;/li&gt;&lt;li&gt;Development costs are approximately $2.5-$3 million per language for each of the 14 languages Adobe Creative Suite supports.&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;However shocking these figures are, I guess some of them are somewhat valid points. But they also lead to even further questions. For example how does a 57% higher price in Australia fit in? Why is the Swiss version (German &amp;amp; French) 25% cheaper than in Germany or France? And using the reasoning given, why does it seem like Non-American, but English-speaking customers are subsidizing the higher cost of other localized versions, whereas US customers don't (after all the US version is also offered in French and Spanish - without any price increase!)...?&lt;br /&gt;&lt;br /&gt;This all wouldn't be this bad or as important wasn't it for the fact that Adobe pretty much "owns" the Creative industry of the world. The industrialized world that is. There're major territories where the pricing of such tools is prohibitive and does nothing but encouraging piracy. Also, by superimposing the conceptual framework, metaphors and features of their products onto the creative process Adobe effectively shapes the ideas and defines the benchmark &amp; quasi-status-quo of what is (supposedly) be possible and can be realized by a mass market of designers. Of course every tool has this effect, yet no other player in this market has as much impact on the resulting outcomes as has Adobe.&lt;br /&gt;&lt;br /&gt;There's nothing wrong with Adobe's tools per se: they're very powerful and generally well thought out. For me the problem is that for years, a lot of designers have been conditioned (by using mainly the same tool(s) on a daily basis) to unconsciously restrict their thinking and creative output to the style choices invisibly encouraged by the metaphors and features of Flash, Illustrator &amp; friends. New features added to these packages are quickly turned into the latest design fad by the starved minds of designer-consumers whose attention span shortens and desire for ever new features leads to ever faster release cycles.&lt;br /&gt;&lt;br /&gt;I dare to say, along with Mac PowerBooks, Adobe products are the chosen drugs for the vast majority of creative professionals today. &lt;br /&gt;&lt;br /&gt;Proprietary software has (at least) 2 negative aspects:&lt;ul&gt;&lt;li&gt;pricing policies and (group) licensing costs&lt;/li&gt;&lt;li&gt;lock-in effect (people building livelihoods on top of particular tools)&lt;/li&gt;&lt;/ul&gt;All this really makes me think how important an investment into a better open source tool chain is for the creative minds of the world (and especially to those Europeans). How much money could be saved and re-channelled into the actual creative process and design research if there was a set of free tools, able to compete qualitatively with current proprietary software. Community owned and focused, development costs of new features (localization and documentation too) can be (and is) distributed to a much wider group of people, and as result products wouldn't become as bloated &amp;amp; suffer the level of feature creep, Photoshop (for example) has suffered in recent years... Various successful open source projects for the creative worker have been in existence for quite some time, however in order to realistically compete they need more global interest of both users and developers willing to give their time to the improvement of these tools. To most individuals, the cost of these tasks (ranging from advertising, user feedback, education, bug reports, UI design to development and testing) will be negligible compared to the prices quoted above.&lt;br /&gt;&lt;br /&gt;There're numerous successful examples showing the Open Source concept works well in practice also in the creative market, most notably &lt;a href="http://blender.org/"&gt;Blender&lt;/a&gt;, &lt;a href="http://inkscape.org/"&gt;InkScape&lt;/a&gt;, &lt;a href="http://www.gimp.org/"&gt;Gimp&lt;/a&gt; - &lt;a href="http://processing.org"&gt;Processing&lt;/a&gt; - all have very active communities which are involved at various levels of support &amp;amp; development. Of course, proprietary products have very large and active communities too, however these are restricted to feedback &amp;amp; discussion and else have the privilege of being passive consumers. Very creative indeed! I still vividly remember the regular furore caused by new product improvement announcements (actually the lack of such) on various Macromedia Director mailing lists... This mentality simply doesn't exist in the Open Source world.&lt;br /&gt;&lt;br /&gt;One of my colleagues found this great quote by &lt;a href="http://en.wikipedia.org/wiki/Jeff_Bezos"&gt;Jeff Bezos&lt;/a&gt;, CEO of Amazon:&lt;blockquote&gt;"Most people, unleashed, are innovators. We're this great species of tool-using animal who likes to make our world better. The companies that can unleash that particular animal instinct are the ones that will thrive."&lt;/blockquote&gt;&lt;br /&gt;I fully agree with this and I find it plain weird the so called "Creative class" is full of consumers who like to swallow those bitter pills and at the same like to call those people who actually are truly innovative and creative, geeks.&lt;br /&gt;&lt;br /&gt;If you want to see for yourself what's possible with current Open Source solutions today, check out &lt;a href="http://ubuntustudio.org/"&gt;Ubuntu Studio&lt;/a&gt;, the multi-media edition of &lt;a href="http://ubuntu.com"&gt;the most user-friendly Linux distribution&lt;/a&gt; to date.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/adobe" rel="tag"&gt;adobe&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/opensource" rel="tag"&gt;opensource&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/ubuntu" rel="tag"&gt;ubuntu&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/blender" rel="tag"&gt;blender&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/inkscape" rel="tag"&gt;inkscape&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/gimp" rel="tag"&gt;gimp&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/6951724190698283717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/6951724190698283717'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/07/picture-is-now-complete.htm' title='Adobe says: The picture is now complete.'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-3222684912695455731</id><published>2007-07-15T19:17:00.001+01:00</published><updated>2007-07-16T09:27:59.463+01:00</updated><title type='text'>Technology is knowledge is power</title><content type='html'>&lt;a href="http://www.we-make-money-not-art.com/"&gt;Regine&lt;/a&gt; has posted a report about &lt;a href="http://www.haque.co.uk/"&gt;Usman Haque's&lt;/a&gt; &lt;a href="http://www.we-make-money-not-art.com/archives/009631.php"&gt;I hate technology&lt;/a&gt; talk at &lt;a href="http://blinkmedia.org/welovetechnology/"&gt;We love technology&lt;/a&gt; up in Huddersfield last week.&lt;br /&gt;&lt;br /&gt;Usman argues the meaning of the word "technology" has changed and he refers to an older era (presumably pre-industrial) when the word used to imply "knowledge" and the study of making things. These days, in our consumerist society, we on the other hand tend to think of (and mainly also encounter) technology only as products, which I think is really not surprising since "technology" itself has become a commodity. But it's not only that, we also equally deal with "knowledge" as product. This too comes complete with a hefty price tag, namely the cost of education required and this is where, for me at least, the story slowly unfolds....&lt;br /&gt;&lt;br /&gt;In the past year I've been reading 2 books which have pretty much completely transformed my views and understanding of the role of being a designer in a technocracy as ours:&lt;br /&gt;&lt;br /&gt;First there was &lt;a href="http://blog.wired.com/sterling/"&gt;Bruce Sterling's&lt;/a&gt; pamphlet &lt;a href="http://www.amazon.co.uk/gp/product/0262693267?ie=UTF8&amp;tag=toxicouk-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0262693267"&gt;Shaping Things&lt;/a&gt; about a future class of products, and more generally, of objects (&lt;a href="http://en.wikipedia.org/wiki/Spime"&gt;Spimes&lt;/a&gt;) and the societal changes their advent will equally require and trigger. While it's an absolutely fascinating and mindblowing 100 pages it is about scenarios 10-30 years still ahead of us.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.doorsofperception.com/"&gt;John Thackara's&lt;/a&gt; &lt;a href="http://www.amazon.co.uk/gp/product/0262701154?ie=UTF8&amp;tag=toxicouk-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0262701154"&gt;"In the Bubble: Designing in a Complex World"&lt;/a&gt; on the other hand is dealing in the &lt;a href="http://www.digitalsouls.com/2001/Brian_Eno_Big_Here.html"&gt;Big Here&lt;/a&gt; and &lt;a href="http://www.flickr.com/photos/toxi/613783248"&gt;Long Now&lt;/a&gt;, quite literally. This is the first book about the design discipline in general which sent shimmers down my spine every couple of pages. The chapters are dealing with these topics: &lt;strong&gt;Lightness, Speed, Mobility, Locality, Situation, Conviviality&lt;/strong&gt; (more about this below), &lt;strong&gt;Learning, Literacy, Smartness and Flow.&lt;/strong&gt; A Potent combination of topics.&lt;br /&gt;Even though I've been re-reading the book twice since the beginning of the year I'm still having a hard time summarizing the immense amount of insight, the examples given, the quotes, statistics, gems of wisdom and the important questions asked, for example:&lt;br /&gt;&lt;blockquote&gt;"...addressing the question "Where do we want to be?" brings us up against an innovation dilemma. We've built a technology-focused society that is remarkable on means, but hazy about ends. It's no longer clear to which question all this stuff - tech -is an answer, or what value it adds to our lives. Too many people I meet assume that being innovative means "adding technology to it". Technology has become a powerful, self-replicating system that is accustomed to respect and receives the lion's share of research funding. In NASDAQ, tech even has its own stock exchange." (p.2)&lt;/blockquote&gt;&lt;br /&gt;Some of the material presented early on in the book can induce a sense of global doom and depression, however the sheer number of truly innovative examples is making the book a celebration and wake-up call to focus more on human centred approaches to design. And "human centred" not only from a perspective as &lt;a href="http://lawsofsimplicity.com/"&gt;Maeda&lt;/a&gt; is approaching it (Yes, more simplicity is needed in a complex world, but I'm equally dreading over-simplification of things which are inherently complex). Human centred design also means designing for sustainability, both social and environmental versions.&lt;br /&gt;&lt;br /&gt;With regards to this post, he too has very interesting things to say about the state of education in our society. Throughout the book he's citing several powerful quotes by &lt;a href="http://en.wikipedia.org/wiki/Ivan_Illich"&gt;Ivan Illich&lt;/a&gt;, described by &lt;a href="http://www.guardian.co.uk/print/0,3858,4563612-103684,00.html"&gt;The Guardian&lt;/a&gt; as:&lt;br /&gt;&lt;blockquote&gt;"...one of the world's great thinkers, a polymath whose output covered vast terrains. He worked in 10 languages; [...] Best known for his polemical writings against western institutions from the 1970s, which were easily caricatured by the right and were, equally, disdained by the left for their attacks on the welfare state, in the last 20 years of his life he became an officially forgotten, troublesome figure (like Noam Chomsky today in mainstream America)."&lt;/blockquote&gt;&lt;br /&gt;I found &lt;a href="http://del.icio.us/toxi/illich"&gt;several of his texts&lt;/a&gt; online and they indeed are rocking the boat of many of our societal institutions. In the foreword to his book "Celebration for awareness" he writes:&lt;br /&gt;&lt;blockquote&gt;"Each chapter of this volume records an effort of mine to question the nature of some certainty. Each therefore deals with deception - the deception embodied in one of our institutions. Institutions create certainties, and taken seriously, certainties deaden the heart and shackle the imagination. It is always my hope that my statements, angry or passionate, artful or innocent, will also provide a smile, and thus a new freedom - even though the freedom come at a cost."&lt;/blockquote&gt;&lt;br /&gt;Here're a few more of my favourite quotes of these texts which might be helpful in explaining why the meaning of the word "technology" has changed, more or less directly caused by how we've been approaching education through institutionalizing "schooling" for the past 150 years.&lt;br /&gt;&lt;blockquote&gt;"The modern university confers the privilege of dissent on those who have been tested and classified as potential money-makers or power-holders. No one is given tax funds for the leisure in which to educate himself or the right to educate others unless at the same time he can also be certified for achievement. Schools select for each successive level those who have, at earlier stages in the game, proved themselves good risks for the established order. Having a monopoly on both the resources for learning and the investiture of social roles, the university coopts the discoverer and the potential dissenter. A degree always leaves its indelible price tag on the curriculum of its consumer. Certified college graduates fit only into a world which puts a price tag on their heads, thereby giving them the power to define the level of expectations in their society. In each country the amount of consumption by the college graduate sets the standard for all others; if they would be civilized people on or off the job, they will aspire to the style of life of college graduates." &amp;mdash; &lt;a href="http://reactor-core.org/deschooling.html#chapter3"&gt;Ivan Illich - Deschooling Society&lt;/a&gt;&lt;/blockquote&gt;&lt;blockquote&gt;"In a consumer society there are inevitably two kinds of slaves: the prisoners of addiction and the prisoners of envy. [...] Man must choose whether to be rich in things or in the freedom to use them." &amp;mdash; Ivan Illich, Tools for Coniviviality&lt;/blockquote&gt;&lt;br /&gt;Reading the above about lack of interest in funding education outside institutions I had to immediately think of &lt;a href="http://www.ted.com/index.php/talks/view/id/90"&gt;Neil Gershenfeld's TED talk&lt;/a&gt; and his problem of sourcing major funding for his global "Fab labs" - simply because the currently existing institutions are too rigid, specialized and mutually exclusive to deal with such new educational and social development efforts. So even though Illich had his hay day in the 70s - not much seems to have changed since...&lt;br /&gt;&lt;br /&gt;Finally, to close the arc of this rather long post - another great quote by another great thinker, Guy Debord in The Society of Spectacle, Thesis n°6:&lt;br /&gt;&lt;blockquote&gt;"Understood in its totality, the spectacle is both the result and the goal of the dominant mode of production. It is not a mere decoration added to the real world. It is the very heart of this real society's unreality. In all of its particular manifestations - news, propaganda, advertising, entertainment - the spectacle represents the dominant model of life. It is the omnipresent affirmation of the choices that have already been made in the sphere of production and in the consumption implied by that production. In both form and content the spectacle serves as a total justification of the conditions and goals of the existing system. The spectacle also represents the constant presence of this justification since it monopolizes the majority of the time spent outside the production process."&lt;/blockquote&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/technology" rel="tag"&gt;technology&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/education" rel="tag"&gt;education&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/school" rel="tag"&gt;school&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/institution" rel="tag"&gt;institution&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/thackara" rel="tag"&gt;thackara&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sterling" rel="tag"&gt;sterling&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/illich" rel="tag"&gt;illich&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/deborge" rel="tag"&gt;deborge&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/books" rel="tag"&gt;books&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/society" rel="tag"&gt;society&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/product" rel="tag"&gt;product&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/consume" rel="tag"&gt;consume&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/3222684912695455731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/3222684912695455731'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/07/technology-is-knowledge-is-power.htm' title='Technology is knowledge is power'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-2939867955575873461</id><published>2007-05-21T11:53:00.000+01:00</published><updated>2007-05-21T14:12:26.517+01:00</updated><title type='text'>BD4D London, this Friday.</title><content type='html'>1.5 years since their last event, &lt;a href="http://bd4d.com/"&gt;By Designers For Designers&lt;/a&gt; returns to London's ICA this Friday, this time featuring the following people &amp; their short presentations:&lt;br /&gt;&lt;blockquote&gt;Motion designers Rob Chiu and Chris Hewitt from &lt;a href="http://www.devoidofyesterday.com/"&gt;Devoid of Yesterday&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The interactive work of Karsten Schmidt (erm, that's me... :) at &lt;a href="http://toxi.co.uk/"&gt;toxi&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Steve Price from &lt;a href="http://www.plan-bstudio.com/"&gt;Plan B studio&lt;/a&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Exploring interaction between man and machine with Andreas Muller of &lt;a href="http://www.nanikawa.com/"&gt;Nanika&lt;/a&gt; / &lt;a href="http://hi-res.net"&gt;Hi-Res&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Marc and Tommi, ex-hi-res creatives who are starting a new and exciting venture together.&lt;br /&gt;&lt;br /&gt;Interactive media artist and researcher (and fellow contributor to MB's &lt;a href="http://www.toxi.co.uk/blog/2007/04/kef-muon-launch.htm"&gt;KEF installation&lt;/a&gt;) &lt;a href="http://www.chrisoshea.org/"&gt;Chris O'Shea&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Tim Nolan of &lt;a href="http://www.spent2000.com/"&gt;Spent 2000&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.markhough.com/"&gt;Mark Hough&lt;/a&gt;: design and moving image.&lt;/blockquote&gt;&lt;br /&gt;More info &amp; tickets here: &lt;a href="http://www.bd4d.com/events/eventUpcoming.php?iEventID=125"&gt;BD4D&lt;/a&gt; and &lt;a href="http://www.ica.org.uk/By%20Designers%20For%20Designers%20London+13571.twl"&gt;ICA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you fancy coming along, make sure to book ahead to avoid disappointment. I've been told seating is strictly limited and at least 1/3 of tickets are sold already...&lt;br /&gt;&lt;br /&gt;Maybe see you there?!&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/bd4d" rel="tag"&gt;bd4d&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/london" rel="tag"&gt;london&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/ica" rel="tag"&gt;ica&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/event" rel="tag"&gt;event&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2939867955575873461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2939867955575873461'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/05/bd4d-london-this-friday.htm' title='BD4D London, this Friday.'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-2706809198633818706</id><published>2007-04-26T00:10:00.000+01:00</published><updated>2007-04-26T03:16:08.224+01:00</updated><title type='text'>Lovebytes 2007 generative ident</title><content type='html'>Over at &lt;a href="http://universaleverything.com/"&gt;Universal Everything&lt;/a&gt;, Matt just published the &lt;a href="http://universaleverything.com/recent_activity/205"&gt;furry fruits&lt;/a&gt; of our most recent combined efforts, an identity generator for this year's edition of the &lt;a href="http://festival2007.lovebytes.org.uk/"&gt;Lovebytes&lt;/a&gt; digital arts festival, suitably themed: Process.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/sets/72157600122947693/" title="Lovebytes photo set"&gt;&lt;img src="http://farm1.static.flickr.com/193/471806721_7e501d8e92_m.jpg" width="180" height="240" alt="Ms. Caaciwa" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/sets/72157600122947693/" title="Lovebytes photo set"&gt;&lt;img src="http://farm1.static.flickr.com/213/471805751_ec76073d99_m.jpg" width="180" height="240" alt="Senor Vivagisu" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/sets/72157600122947693/" title="Lovebytes photo set"&gt;&lt;img src="http://farm1.static.flickr.com/198/471791024_f8e309e678_m.jpg" width="180" height="240" alt="Mr. Mic" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The theme couldn't have been more fitting this time, since even though the project had to be turned over quite quickly, it yet again involved an interesting process and journey till the final execution (Not even mentioning Processing as tool used ;). Initially inspired by some of my &lt;a href="http://toxi.co.uk/p5/sonicHair/noaudio/"&gt;old experiments&lt;/a&gt; with &lt;a href="http://toxi.co.uk/p5/remixed/hair/"&gt;hairy aesthetics&lt;/a&gt; and driven by the idea of generating a large(ish) population of (at least 20,000) unique, cuddly, cute monsters, we started thinking how to best allow enough variations to emerge and ensure every generated monster "feels" like an individual...&lt;br /&gt;&lt;br /&gt;We looked at some &lt;a href="http://www.levitated.net/bones/walkingFaces/"&gt;"classic" examples&lt;/a&gt; by &lt;a href="http://complexification.net"&gt;Jared Tarbell&lt;/a&gt; using a templated approach and also some of the more interesting &lt;a href="http://www.splitbrain.org/blog/2007-01/20_monsterid_as_gravatar_fallback"&gt;recent spin-off's&lt;/a&gt; dealing with online identity &lt;a href="http://www.docuverse.com/blog/donpark/2007/01/18/visual-security-9-block-ip-identification"&gt;inspired by&lt;/a&gt; &lt;a href="http://www.docuverse.com/blog/donpark/2004/05/03/secure-ui-9-block-phishmarks"&gt;this&lt;/a&gt;  and &lt;a href="http://www.levitated.net/daily/lev9block.html"&gt;another of Jared's experiments&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/sets/72157600122947693/" title="Lovebytes photo set"&gt;&lt;img src="http://farm1.static.flickr.com/223/472867805_4742d7021e_m.jpg" width="180" height="240" alt="Hairy potato"/&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/sets/72157600122947693/" title="Lovebytes photo set"&gt;&lt;img src="http://farm1.static.flickr.com/175/472352969_fbc4c4d435_m.jpg" width="162" height="240" alt="Monster process" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/sets/72157600122947693/" title="Lovebytes photo set"&gt;&lt;img src="http://farm1.static.flickr.com/179/472335852_ed02fc36e9_m.jpg" width="170" height="240" alt="Monster process" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Yet, being someone who prefers using code (over predefined assets) for as many parts of a project as possible, I started with my usual approach of isolating and defining a set of suitable design parameters and then went on choosing value ranges for each: head shape (radius, subdivisions, curvaceousness), eyes (count, shape, pupils, direction), colour ways (head vs. hair), hair properties (position, spread, density, curl, gravity, gradient etc.)... Not all of the parameters listed in the sketch were actually used in the end, because  most of them are interdependent in some form and having too few or too many such parameters would possibly limit the number of possible outcomes or alternatively explode that "search space" beyond your control and you'll end up spending most of your time literally searching for an optimal "region of interest" in which your chosen parameters work nicely together and complement each other. That case is then pretty much the inversion of the &lt;a href="http://en.wikipedia.org/wiki/Pareto_principle"&gt;Pareto principle&lt;/a&gt; if you spend 80% of your time getting 20% right...&lt;br /&gt;&lt;br /&gt;In any way, I like thinking about design as this space of opportunities and this parametric approach allows me to separate the design process from the design model. It also allows me to test parameter combinations at their extreme values and so narrow down the "search space" of possible design outcomes created by these parameters and align it with my expectations. The approach is based on defining designs as choices and &lt;strong&gt;can be&lt;/strong&gt; far more powerful and flexible when it comes to art direction requests and/or automation. In many cases it helped me avoiding to change any real code last minute and so possibly introduce new bugs.&lt;br /&gt;&lt;br /&gt;Since we wanted to create true characters we needed to define and assign another important parameter to each monster: Names. Each name is generated using a few very basic rules, sometimes resulting in hilarious outcomes and unexpectedly suitable names...&lt;br /&gt;&lt;br /&gt;Our basic rule of naming is consonant-vowel-consonant, plus a few more extra rules as filters applied on top, e.g.:&lt;br /&gt;&lt;br /&gt;* Not every letter (but both vowels and consonants) can be doubled up&lt;br /&gt;* There's usage limit of every letter per name&lt;br /&gt;* Monsters do have gender. Female names end with "a" or "i", males are ignorant about that aspect...&lt;br /&gt;* Letter "q" is always followed by "u"&lt;br /&gt;* Names vary in length between 3 and 11 chars&lt;br /&gt;* etc.&lt;br /&gt;&lt;br /&gt;In hindsight, some of these rules definitely seem to be enforcing (unintentionally) a White-European naming convention... No offence, please! (Here am too wondering if spammers are using similar non-list based name generators for their products. Well, do you?!)&lt;br /&gt;&lt;br /&gt;Last but not least, there're currently 20,000 postcards circulating around the globe and I'd absolutely appreciate if proud owners of these cards could contribute pictures of them to this specially created &lt;a href="http://www.flickr.com/groups/lovebytesmonstersclub/"&gt;flickr group&lt;/a&gt;... Thank you kindly!&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/lovebytes" rel="tag"&gt;lovebytes&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/universaleverything" rel="tag"&gt;universaleverything&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/generative" rel="tag"&gt;generative&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/process" rel="tag"&gt;process&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/branding" rel="tag"&gt;branding&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/art" rel="tag"&gt;art&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/event" rel="tag"&gt;event&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sheffield" rel="tag"&gt;sheffield&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2706809198633818706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/2706809198633818706'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/04/lovebytes-2007-generative-ident.htm' title='Lovebytes 2007 generative ident'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-3817894371909057176</id><published>2007-04-20T11:56:00.000+01:00</published><updated>2007-04-30T01:47:40.625+01:00</updated><title type='text'>KEF Muon launch</title><content type='html'>&lt;span style="font-weight:bold;"&gt;UPDATE: &lt;/span&gt;A short documentation video of the launch event and installation is now available on the &lt;a href="http://www.movingbrands.com/pages/home/news?flash=1&amp;newsid=58&amp;page="&gt;Moving Brands website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Just returned from Milan yesterday where I have spent the last few days as part of the &lt;a href="http://www.movingbrands.com"&gt;Moving Brands&lt;/a&gt; team creating an audio-responsive installation for the launch of the most amazing (and tallest) speakers I've ever seen. Engineered by the high-end audio manufacturer &lt;a href="http://www.kef.com"&gt;KEF&lt;/a&gt; and designed by legendary &lt;a href="http://www.rosslovegrove.com/"&gt;Ross Lovegrove&lt;/a&gt;, these speakers really are quite a sound and sight to behold.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://flickr.com/photos/toxi/sets/72157600087671752/" title="KEF Muon"&gt;&lt;img src="http://farm1.static.flickr.com/200/463383081_8758b67796_m.jpg" width="240" height="180" alt="Kef Muon @ Sala del cenacolo, Milano" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://flickr.com/photos/toxi/sets/72157600087671752/" title="KEF Muon"&gt;&lt;img src="http://farm1.static.flickr.com/171/465458717_f5df46c1c4_m.jpg" width="240" height="180" alt="Kef Muon @ Sala del cenacolo, Milano" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://flickr.com/photos/toxi/sets/72157600087671752/" title="KEF Muon"&gt;&lt;img src="http://farm1.static.flickr.com/225/463375310_5c837385ab_m.jpg" width="240" height="180" alt="Kef Muon @ Sala del cenacolo, Milano" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;The incredible Sala del Cenacolo hall at the Milan Science Museum had been chosen as space for  the launch event and provided the perfect contrasting backdrop to the minimal design of the speakers and installation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/toxi/465542804/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/185/465542804_0d426acea5.jpg" width="500" height="234" alt="Sala del Cenacolo, Milano" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Our installation is using a gigantic LED screen (built by &lt;a href="http://www.ctlondon.com/"&gt;Creative Technology&lt;/a&gt;) of 5 x 10 meters to visualize the music played through the speakers in realtime. We decided on the concept of fluid forms flowing/emanating from the positions of the speakers as well as complimenting the Muon design language. The software was developed in Processing by &lt;a href="http://chrisoshea.org/"&gt;Chris O'Shea&lt;/a&gt; under my supervision and creative direction by David Eveleigh-Evans.&lt;br /&gt;&lt;br /&gt;More images on Flickr: &lt;a href="http://flickr.com/photos/toxi/sets/72157600087671752/"&gt;Toxi&lt;/a&gt;, &lt;a href="http://www.flickr.com/photos/pixelsumo/sets/72157600110130473/"&gt;Chris&lt;/a&gt; &amp; &lt;a href="http://www.flickr.com/photos/20441729@N00/sets/72157600110778471/"&gt;David&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wallpaper.com/blog/index.php?blog=7"&gt;Meirion Pritchard&lt;/a&gt; of Wallpaper Magazine has posted a short (overexposed) &lt;a href="http://www.youtube.com/watch?v=-dMIAjsOAn4"&gt;video on YouTube&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-dMIAjsOAn4"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/-dMIAjsOAn4" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/KEF" rel="tag"&gt;KEF&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/mb.com" rel="tag"&gt;mb.com&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/lovegrove" rel="tag"&gt;lovegrove&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/milan07" rel="tag"&gt;milan07&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/audio" rel="tag"&gt;audio&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/responsive" rel="tag"&gt;responsive&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/installation" rel="tag"&gt;installation&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/muon" rel="tag"&gt;muon&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/pixelsumo" rel="tag"&gt;pixelsumo&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/3817894371909057176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/3817894371909057176'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/04/kef-muon-launch.htm' title='KEF Muon launch'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-117641277506122510</id><published>2007-04-14T12:00:00.000+01:00</published><updated>2007-11-08T07:05:30.397Z</updated><title type='text'>Breaking the silence: Audi TT, New Shoots and more</title><content type='html'>It's almost impossible to believe the Easter holidays are already over and this past week were my first few days "offline" this year: from work and literally. Ok, I had a few seconds of (mobile) online experience here &amp; there, it's hard to let go...&lt;br /&gt;&lt;br /&gt;The ironic thing is my version of 2007 started at such full speed that I've been finding myself in a situation where for the past year at work I've been advocating a more open (as in sharing experiences) creative development process which, where possible, would provide some more insight and behind-the-scenes type info about our process and general approach. And whilst things really started actively getting ready &amp; moving into this "new" direction at work, personally I seem to be increasingly heading, unwillingly, in the opposite direction. I find this extremely unsettling and unfulfilling.&lt;br /&gt;&lt;br /&gt;So here're some attempts to remedy this situation and at least document some of the things I've completed recently and others which are still in the pipe. In chronological order:&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://universaleverything.com/recent_activity/204"&gt;Audi TT Movement&lt;/a&gt; for &lt;a href="http://universaleverything.com"&gt;Universal Everything&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/418262677/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/166/418262677_cc01c496b7_m.jpg" width="240" height="135" alt="audi_hd2" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/418261768/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/173/418261768_7e710ff009_m.jpg" width="240" height="135" alt="audi_hd4" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/418261322/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/164/418261322_1bc0b4f5ce_m.jpg" width="240" height="135" alt="audi_hd5" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Recently I completed my first collaboration with &lt;a href="http://universaleverything.com"&gt;Matt Pyke&lt;/a&gt;, a 50 second viral ad for the launch of the new Audi TT (and a related art prize) in Australia. The project was commissioned by &lt;a href="http://www.theonecentre.com/"&gt;The One Centre&lt;/a&gt; in Sydney and the clip has been making the &lt;a href="http://technorati.com/search/universaleverything.com%2Frecent_activity%2F204"&gt;rounds &lt;/a&gt; around the &lt;a href="http://technorati.com/search/ttmovement.com"&gt;blogosphere&lt;/a&gt; for past couple of months.&lt;br /&gt;&lt;br /&gt;The first time I met Matt was in September 2005 when we were both involved with some Nokia project. We never really stayed in touch though until last summer when he proposed a &lt;a href="http://advancedbeauty.org"&gt;collaborative audiovisual DVD project&lt;/a&gt; with about 15 other people around the globe involved. Check the website for updates soon.&lt;br /&gt;&lt;br /&gt;Last December he sent me a storyboard for an ad he was working on. An absolutely beautiful, simple, amazing idea: streamlines slowly revealing the shape of a car, shaded &amp; rendered in the style of scientific imaging applications. He also asked if I think it'd be doable (apparently a few 3D studios turned the idea down). I said yes straight away, then only knowing this was right and doable in principle. It was the perfect brief for a computational approach and I immediately decided employing Processing to create the design and video. It's great to see people like Matt, who are not involved in the computational/generative design community, being able to gauge and use Code as abstract concept in the creative direction stage of a project, being able to understand its potential as creative tool and then develop ideas around it. This has not strictly to do with Processing alone, yet I believe Processing has been providing and becoming an ever more popular cultural touchpoint for "external" people to start considering Code in such a way. This is all good!&lt;br /&gt;&lt;br /&gt;The video below is a brief 2 minute journey through the development process and the different stages of the project, each with brief commentary/subtitles. Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="768" height="448" codebase="http://www.apple.com/qtactivex/qtplugin.cab"&gt;&lt;param name="src" value="http://toxi.co.uk/mov/poster_audi_makingof.mov"/&gt;&lt;param name="href" value="http://s3.amazonaws.com/co.uk.toxi/ue/audi/makingof_640x360.mov" /&gt;&lt;param name="autoplay" value="true"/&gt;&lt;param name="target" value="myself"/&gt;&lt;param name="controller" value="true" /&gt;&lt;embed src="http://toxi.co.uk/mov/poster_audi_makingof.mov" href="http://s3.amazonaws.com/co.uk.toxi/ue/audi/makingof_640x360.mov" target="myself" width="768" height="448" autoplay="true" controller="true" pluginspage="http://www.apple.com/quicktime/download/"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;h3&gt;"New Shoots" intro sequence for &lt;a href="http://thisisrealart.com"&gt;This Is Real Art&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/456471122/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/227/456471122_dfdf870a2e_m.jpg" width="240" height="135" alt="ns20070410-0079" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/456471284/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/182/456471284_ba90ae3ab5_m.jpg" width="240" height="135" alt="ns20070410-0121" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/456487319/" title="Photo Sharing"&gt;&lt;img src="http://farm1.static.flickr.com/179/456487319_65978636e4_m.jpg" width="240" height="135" alt="New shoots, frame 191" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;New Shoots is a new Sunday morning series (8:20am) on Channel4 showing films by disabled directors. After seeing some of my &lt;a href="http://flickr.com/photos/toxi/359058592"&gt;grown type&lt;/a&gt; &lt;a href="http://flickr.com/photos/toxi/345830208"&gt;experiments&lt;/a&gt; on flickr, This Is Real Art commissioned me to create a short animation using the same technique for the title sequence of this series.&lt;br /&gt;&lt;br /&gt;Here's how it looks moving:&lt;br /&gt;&lt;object classid="clsid:02bf25d5-8c17-4b23-bc80-d3488abddc6b" width="768" height="448" codebase="http://www.apple.com/qtactivex/qtplugin.cab"&gt;&lt;param name="src" value="http://toxi.co.uk/mov/poster_newshoots.mov"/&gt;&lt;param name="target" value="myself"/&gt;&lt;param name="href" value="http://toxi.co.uk/mov/ns20070410_768x432_25fps_h264.mov" /&gt;&lt;param name="autoplay" value="true"&gt;&lt;param name="controller" value="true" /&gt;&lt;embed src="http://toxi.co.uk/mov/poster_newshoots.mov" href="http://toxi.co.uk/mov/ns20070410_768x432_25fps_h264.mov" width="768" height="448" target="myself" autoplay="true" controller="true" pluginspage="http://www.apple.com/quicktime/download/"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Here's is how it works: The type is actually made up of tiny little 3D particles/spheres which attach themselves one-by-one to the (invisible) outline of the logo and to already existing particles. The process is making use of &lt;a href="http://en.wikipedia.org/wiki/Diffusion-limited_aggregation"&gt;Diffusion Limited Aggregation&lt;/a&gt; (DLA short) and because of its nature is extremely slow and CPU intensive. At the final frame of the animation the particle count stands at 4.36 million or roughly 50MB of pure 3D data per frame. Once the growth process is completed in Processing, the frames have to be rendered in Sunflow making use of this renderers amazing lighting and shading quality... I've started working on this app over Christmas and now have extended the system to be able to adjust various parameters influencing the characteristics and order of the growth process, e.g. being able to modulate the density, spawn/escape radius, particle stickiness, outline alignment factor etc. I find it incredibly interesting how even a small number of parameters opens up these huge spaces of opportunities and variations... I won't be opening up old wounds again at this occasion, but to me it's projects like Audi or this one which truly hammer home the importance of good, reusable OOP'ed code to let you more focus on your ideas, make these journeys possible (in time) and all the more enjoyable. Enough said! Almost.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;a href="http://code.google.com/p/toxiclibs/"&gt;ToxicLibs @ GoogleCode&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;Second last thing for today, and directly related to the previous sentence. I've started putting up some of my Processing/Java tidbits to GoogleCode (it was simply easier/faster to setup than sf.net). This is not a collection of libraries, but a slowly growing SVN repository of classes I've written over the past year or so and been finding myself re-using a lot. A couple of them are still quite buggy too, unfortunately.&lt;br /&gt;&lt;br /&gt;So please consider this more of a heads up rather than an official launch. Some of the stuff is not usable from within the default Processing IDE, some classes rely on the "new" Java5 syntax features, but still might be helpful to somebody (e.g. Eclipse users). Included in this loose collection are general purpose classes like: &lt;ul&gt;&lt;li&gt;&lt;a href="http://toxiclibs.googlecode.com/svn/trunk/toxiclibs/src/toxi/geom/Vec3D.java"&gt;a comprehensive 3D Vector class&lt;/a&gt; with many methods available in mutable and unmutable versions. It also has some basic collision/intersection testing methods included which I needed for the Audi project above. Javadoc is incl. in the &lt;a href="http://code.google.com/p/toxiclibs/downloads/list"&gt;download&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href="http://toxiclibs.googlecode.com/svn/trunk/toxiclibs/src/toxi/util/datatypes/"&gt;wave oscillators&lt;/a&gt;. All based on a common framework, new wave types can be added easily. &lt;/li&gt;&lt;li&gt;&lt;a href="http://toxiclibs.googlecode.com/svn/trunk/toxiclibs/src/toxi/image/util/"&gt;greyscale image filters&lt;/a&gt; used by the newer version of my libcv library.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.toxi.co.uk/blog/2006/04/colour-code-snippets.htm"&gt;colour palette utilities&lt;/a&gt;&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt; Have a browse through and let me know any probs via the &lt;a href="http://code.google.com/p/toxiclibs/issues/list"&gt;issue tracker&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;Last but not least then, the &lt;a href="http://www.toxi.co.uk/blog/2006/06/london-graduate-fashion-week.htm"&gt;interactive table for London College of Fashion&lt;/a&gt; I've worked on last year at Moving Brands has been nominated in 2 categories for this year's D&amp;AD awards. Oh, fingers crossed, please, please!&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/audi" rel="tag"&gt;audi&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/universaleverything" rel="tag"&gt;universaleverything&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sunflow" rel="tag"&gt;sunflow&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/dla" rel="tag"&gt;dla&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/opensource" rel="tag"&gt;opensource&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/117641277506122510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/117641277506122510'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/04/breaking-silence-audi-tt-new-shoots.htm' title='Breaking the silence: Audi TT, New Shoots and more'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-116974287231141827</id><published>2007-01-26T07:00:00.000Z</published><updated>2007-01-26T18:05:51.323Z</updated><title type='text'>Maintenance &amp; brief status updates</title><content type='html'>I always seem to forget how busy I'm usually becoming at the beginning of each new year. There does seem to be a pattern emerging or maybe it has to do with a combination of long winter nights and my lack of new years resolutions (okay, I've got a single one: need new website!) which keep other people &lt;a href="http://twitter.com/RandomEtc"&gt;busy&lt;/a&gt; with other things in January. Am currently engaged in various really exciting (albeit commercial) projects again and so any noticeable developments on the Sunflow P5 library front had to be delayed before I feel more comfortable to release it publicly. The important stuff works already (i.e. exporting triangles), however camera support, shaders and lighting still are an incomplete mess... There's also a separate command line tool I've written to batch renderer frame sequences. Working on this stuff in my spare time also makes it really quite hard to realistically predict when things become ready. Someday I'll learn not to do that anymore... ;)&lt;br /&gt;&lt;br /&gt;Speaking of &lt;a href="http://sunflow.sourceforge.net/"&gt;Sunflow&lt;/a&gt; though, Christopher has released a new version (0.07.1) of the renderer and the website has been overhauled too. There's also talk about &lt;a href="http://sourceforge.net/forum/message.php?msg_id=4114468"&gt;changing the scene file format&lt;/a&gt; and Stephen Williams of &lt;a href="http://www.fluidforms.at/"&gt;Fluidforms&lt;/a&gt; is interested in writing/collaborating on a generic (RenderMan format based) external renderer for Processing. All great stuff on the horizon!&lt;br /&gt;&lt;br /&gt;Speaking of more maintenance, &lt;a href="http://www.bezier.de/"&gt;Florian Jennett&lt;/a&gt; has kindly modded the &lt;a href="http://processing.org/discourse/"&gt;Processing forums&lt;/a&gt; to export the most recent posts as RSS. This is great stuff, since my current feed of the same content (&lt;a href="http://www.toxi.co.uk/blog/2005/01/processingorg-rss-feeds.htm"&gt;launched almost exactly 2 years ago&lt;/a&gt;) was semi-broken for quite a while now, ever since the forum's HTML template changed last. I've tried to keep up with these changes initially, but had to succumb sometime last year. Unlike this old feed which was created via screen-scraping, the &lt;a href="http://processing.org/discourse/yabb_beta/YaBB.cgi?action=rss"&gt;new one&lt;/a&gt; is coming straight out of the forum, so hopefully will not miss out posts or truncate them anymore...&lt;br /&gt;&lt;br /&gt;Finally, my "digital self" is still fragmenting more &amp;amp; more since I've started contributing to &lt;a href="http://universaleverything.com/"&gt;Matt Pyke's&lt;/a&gt; &lt;a href="http://everyoneforever.com"&gt;Everyoneforever&lt;/a&gt; group blog.&lt;br /&gt;&lt;br /&gt;&lt;span class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/rss" rel="tag"&gt;rss&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sunflow" rel="tag"&gt;sunflow&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/everyoneforever" rel="tag"&gt;everyoneforever&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116974287231141827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116974287231141827'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2007/01/maintenance-brief-status-updates_26.htm' title='Maintenance &amp; brief status updates'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-116619531199244160</id><published>2006-12-15T12:13:00.000Z</published><updated>2006-12-15T15:12:28.153Z</updated><title type='text'>Point cloud experiments with Sunflow</title><content type='html'>This is just a quick heads up about my &lt;a href="http://www.toxi.co.uk/blog/2006/11/processing-meets-radiosity.htm"&gt;ongoing efforts&lt;/a&gt; to create a Processing library to integrate &lt;a href="http://sunflow.sf.net"&gt;Sunflow&lt;/a&gt;, an opensource &lt;a href="http://en.wikipedia.org/wiki/Global_illumination"&gt;global illumination&lt;/a&gt; renderer, into my toolchain. Initially, I'm only after exporting generated 3D scenes/geometry, shaders and various render specific settings to Sunflow's scene description format.&lt;br /&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/322553577/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/144/322553577_806fe609af_m.jpg" width="240" height="135" alt="ultimate bling" /&gt;&lt;/a&gt;&lt;br/&gt;using a glass shader&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/322121597/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/133/322121597_40343acd71_m.jpg" width="240" height="135" alt="macro molecular #1" /&gt;&lt;/a&gt;&lt;br/&gt;&lt;a href="http://en.wikipedia.org/wiki/Ambient_occlusion"&gt;ambient occlusion&lt;/a&gt; (AO)&lt;/td&gt;&lt;br /&gt;&lt;td&gt;&lt;a href="http://www.flickr.com/photos/toxi/322016975/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/128/322016975_a918ad97e1_m.jpg" width="240" height="135" alt="macro molecular #2" /&gt;&lt;/a&gt;&lt;br/&gt;AO &amp; depth of field&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;This series and the previous images (with the random triangles) were fully rendered &lt;strong&gt;outside&lt;/strong&gt; Processing. Currently this is far more flexible than my other plan to have Sunflow wrapped in a PGraphics. For one, the export option allows for easier tweaking the scene parameters (the global illumination lighting models have a lot of parameters and options to explore) as well as batch rendering frame sequences from the command line. This is far more resource friendly and efficient than handling the rendering directly from within a PApplet context, especially with high quality rendering times often lasting several hours per frame (you can get decent preview within seconds/minutes though).&lt;br /&gt;&lt;br /&gt;So the library currently only supports triangulated geometry and I still need to make a decision &amp;amp; come up with a better mechanism to support various Sunflow primitive object types. This decision might involve breaking away from the restrictions imposed by my current implementation, which is based on Processing's &lt;code&gt;beginRaw()&lt;/code&gt; mechanism, just like the existing DXF/PDF export libraries. What's fine for these other formats is not quite good enough for my case. For example, using &lt;code&gt;sphere()&lt;/code&gt; together with &lt;code&gt;beginRaw()&lt;/code&gt; in Processing will currently export a triangulated version of the sphere, not the pure mathematical surface. The problem is, there don't seem to be any API hooks in PGraphics for various drawing commands and or state changes (&lt;code&gt;box()&lt;/code&gt; is similar, but not problematic in this case). Unless I'm really missing something quite obvious, "recorder" PGraphics classes only get involved with and get access to the final, world transformed geometry. For my purposes I'd also like to get access to the current fill/stroke colours and transform matrices. Because PGraphics has "protected" access and doesn't provide any getters for these properties, users are currently forced to duplicate some of these drawing commands in order to keep the library in synch with the "main" PGraphics instance used. So am still wading through the source(s) and trying to come up with a more user friendly solution...&lt;br /&gt;&lt;br /&gt;By popular demand, here's some more background info about the making of the 3 images above.&lt;br /&gt;&lt;br /&gt;The lastest version of Sunflow (still unreleased, need to check out from SVN) is featuring a new ParticleSurface object primitive, which is the basis for the images above. Reading through the source code, I quickly figured out this type of object is  only based on 2 parameters: a "point cloud" of 3d particles and a global radius size used for each particle. In order to quickly test drive &amp; define some point clouds of my own, I wrote this absolute basic generator script below:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;// point cloud generator for&lt;br /&gt;// Sunflow's (v0.7.0+) ParticleSurface primitive&lt;br /&gt;void setup() {&lt;br /&gt;  try {&lt;br /&gt;    FileOutputStream fs = new FileOutputStream("c:/molecule_"+(System.currentTimeMillis()/1000)+".pointcloud");&lt;br /&gt;    DataOutputStream ds = new DataOutputStream(fs);&lt;br /&gt;    float x=0,y=0,z=0; // start at origin&lt;br /&gt;    float scl=0.25;&lt;br /&gt;    float dim=50;&lt;br /&gt;    for (int i = 0; i &lt; 250000; i++) {&lt;br /&gt;      // randomly progress within the bounding box&lt;br /&gt;      x=max(-dim,min(dim,x+random(-1,1)*scl));&lt;br /&gt;      y=max(-dim,min(dim,y+random(-1,1)*scl));&lt;br /&gt;      z=max(-dim,min(dim,z+random(-1,1)*scl));&lt;br /&gt;      // write out coordinates as raw floats&lt;br /&gt;      ds.writeFloat(x);&lt;br /&gt;      ds.writeFloat(y);&lt;br /&gt;      ds.writeFloat(z);&lt;br /&gt;    }&lt;br /&gt;    ds.flush();&lt;br /&gt;    ds.close();&lt;br /&gt;    println("done.");&lt;br /&gt;  } &lt;br /&gt;  catch (Exception e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The next step then is to reference this generated data from a Sunflow scene file (You'll need to edit the file name near the end)...&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;/*&lt;br /&gt;pointcloudtest.sc&lt;br /&gt;sunflow test scene skeleton&lt;br /&gt;2006-12-13 toxi.co.uk&lt;br /&gt;*/&lt;br /&gt;image {&lt;br /&gt;   resolution 768 432&lt;br /&gt;   % resolution 1920 1080&lt;br /&gt;   aa 1 2&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;background {&lt;br /&gt;    color 1 1 1&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;accel kdtree&lt;br /&gt;filter gaussian 2 2&lt;br /&gt;bucket 128 hilbert&lt;br /&gt;&lt;br /&gt;%% camera definitions&lt;br /&gt;&lt;br /&gt;% uncomment this one to enable depth-of-field&lt;br /&gt;/* camera {&lt;br /&gt;   type thinlens&lt;br /&gt;   eye 0 10 70&lt;br /&gt;   target -20 -20 0&lt;br /&gt;   up 0 1 0&lt;br /&gt;   fov 60&lt;br /&gt;   aspect 1.7777777&lt;br /&gt;   fdist 27&lt;br /&gt;   lensr 0.85&lt;br /&gt;} */&lt;br /&gt;&lt;br /&gt;camera {&lt;br /&gt;   type pinhole&lt;br /&gt;   eye    0 10 70&lt;br /&gt;   target -20 -20 0&lt;br /&gt;   up 0 1 0&lt;br /&gt;   fov 60&lt;br /&gt;   aspect 1.7777777&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;%% define a simple area light for soft shadows&lt;br /&gt;&lt;br /&gt;light {&lt;br /&gt;   type meshlight&lt;br /&gt;   name l1&lt;br /&gt;   emit 1 1 1&lt;br /&gt;   radiance 48&lt;br /&gt;   samples 32&lt;br /&gt;   points 3&lt;br /&gt;      -60 20 60&lt;br /&gt;      0 60 -60&lt;br /&gt;      60 20 60&lt;br /&gt;   triangles 1&lt;br /&gt;      0 1 2&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;shader {&lt;br /&gt;  name a&lt;br /&gt;  type amb-occ&lt;br /&gt;  bright   .4 .9 1&lt;br /&gt;  dark     0 0 0&lt;br /&gt;  samples  128&lt;br /&gt;  dist     16&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;object {&lt;br /&gt;    shader a&lt;br /&gt;    type dlasurface&lt;br /&gt;    % need edit this file path&lt;br /&gt;    filename c:/molecule_1166058556.dat&lt;br /&gt;    radius 0.125&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Save this file using the ".sc" extension and open it in Sunflow. Use the "IPR" renderer for easier previewing. You might need to adjust camera settings to better fit your generated particles.&lt;br /&gt;&lt;br /&gt;If you end up successfully rendering something and have a flickr account, please do submit images to the newly created &lt;a href="http://flickr.com/groups/sunflow"&gt;Sunflow group pool&lt;/a&gt;. Thanks!&lt;br /&gt;&lt;br /&gt;Finally, I'm no expert in global illumination (in fact playing around with Sunflow are my very 1st baby steps with that technology). Everything I know so far about the SC file format is collected from examining the source code of the &lt;a href="http://sunflow.svn.sourceforge.net/viewvc/sunflow/trunk/src/org/sunflow/core/parser/SCParser.java?view=markup"&gt;SCParser class&lt;/a&gt; and the demo files you can download. If you have any questions about rendering with Sunflow (not related to the tie-in with Processing), please check the official &lt;a href="http://sourceforge.net/forum/forum.php?forum_id=291739"&gt;forum&lt;/a&gt; @ sourceforge...&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/sunflow" rel="tag"&gt;sunflow&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/GI" rel="tag"&gt;GI&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/library" rel="tag"&gt;library&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/3d" rel="tag"&gt;3d&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/tutorial" rel="tag"&gt;tutorial&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/opensource" rel="tag"&gt;opensource&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116619531199244160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116619531199244160'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/12/point-cloud-experiments-with-sunflow.htm' title='Point cloud experiments with Sunflow'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-116342509787646820</id><published>2006-11-13T13:23:00.000Z</published><updated>2006-11-13T13:41:11.066Z</updated><title type='text'>Java, free at last!</title><content type='html'>So today is a historic day for Java. In just a few hours (17:30 GMT) Sun will officially announce that Java is released under GPL from now on. &lt;a href="http://www.sun.com/opensource/java"&gt;Free at last!&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Not only does this mean bugs will most likely be fixed far quicker than ever before, but now Java will also get much better support under Linux, Ubuntu and other open source OS environments. So this is an interesting bit for artsy folk too, since that might have impact on which tool/language to chose/support on these platforms. Being able to freely distribute Java yourself also removes another stumbling block for producing standalone apps.&lt;br /&gt;&lt;br /&gt;In general it really seems this decision will help Java to "thrive" even more (incl. on even more platforms), or if you're more pessimistic, at least give it better chances of survival. Being a programming language, it makes sense to hand over control to the people who are using it the most... That is not to say Sun hasn't been quite good with that in the past (better than M$ or Adobe in any way). And even though you're free to branch off and create your own fork of the language, the Java name &amp;amp; brand will remain under Sun's control in order to ensure compatibility and their business. That's not a bad thing at all.&lt;br /&gt;&lt;br /&gt;(via &lt;a href="http://www.tbray.org/ongoing/When/200x/2006/11/12/OSS-Java"&gt;ongoing&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;On another slightly related note, Adobe has recently contributed parts of their AS3 virtual machine, dubbed AVM2, to a new OSS project hosted on Mozilla.org, called &lt;a href="http://www.mozilla.org/projects/tamarin/"&gt;Tamarin&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;"Source code from AVM2 being contributed to the Tamarin project implements ECMAScript 4th edition language features such as namespaces, classes, and optional strongly typed variables, and includes a Just In Time (JIT) compiler that translates ActionScript bytecode to native machine code for maximum execution speed.&lt;br /&gt;&lt;br /&gt;The Tamarin project will result in an ECMAScript 4th edition engine that Mozilla will use within the next-generation of SpiderMonkey, the core JavaScript engine embedded in Firefox®, Mozilla's free Web browser, and other products based on Mozilla technology. The code will continue to be used by Adobe as part of the ActionScript Virtual Machine." (from the &lt;a href="http://www.mozilla.org/projects/tamarin/faq.html#details"&gt;FAQ&lt;/a&gt;)&lt;/blockquote&gt;&lt;br /&gt;Safety in numbers. It's interesting to see how both Sun and Adobe at least in parts have taken the risk to engage in a symbiosis with the Open Source world in order to protect themselves and/or even gain advantages over competitors. Microsoft's Sparkle is posing a serious (potential) risk to Adobe's product offering (Flash/Director). However, by open sourcing their development efforts, both Sun and Adobe have gained access to a potentially vastly increased community of contributors. It seems the repeated success of concerted and well managed large-scale open source efforts demonstrated by Mozilla and Eclipse (Callisto) is finally gaining momentum and support from other areas of the industry.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/opensource" rel="tag"&gt;opensource&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/tamarin" rel="tag"&gt;tamarin&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/collaboration" rel="tag"&gt;collaboration&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116342509787646820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116342509787646820'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/11/java-free-at-last.htm' title='Java, free at last!'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-116307665445721164</id><published>2006-11-09T12:37:00.000Z</published><updated>2006-11-09T12:53:15.446Z</updated><title type='text'>Processing meets radiosity</title><content type='html'>In the last few days I've been doing some more research about getting higher quality 3D images out of Processing and had another closer look at &lt;a href="http://sunflow.sf.net"&gt;Sunflow&lt;/a&gt;, a very fine Java based open source radiosity renderer.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://www.flickr.com/photos/toxi/292980250/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/99/292980250_694690a890_m.jpg" width="240" height="135" alt="triangles_AOCC_gloss_HD" /&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://www.flickr.com/photos/toxi/292979892/" title="Photo Sharing"&gt;&lt;img src="http://static.flickr.com/107/292979892_1df014d4fe_m.jpg" width="240" height="135" alt="triangles_AOCC_SD" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;These are some of the first test images I created with my upcoming library (using beginRaw()) to output Sunflow scene description files for later use/rendering. I've also written a little command line tool to batch render exported sequences and am enquiring the use of &lt;a href="http://www.network.com"&gt;Sun's grid computing facility&lt;/a&gt; as renderfarm ($1 per CPU hour, pay-as-you-go) for these type of jobs...&lt;br /&gt;&lt;br /&gt;Being 100% Java, Sunflow could also be integrated as renderer into the Processing tool chain directly by wrapping it inside a PGraphics class. Sunflow's architecture is &lt;strong&gt;very&lt;/strong&gt; clean and easy to use and customize via its API. Scenes and all elements can also be directly created and manipulated procedurally via Java. Adjusting quality settings, one could initially render at very low res to achieve near realtime previews and then switch to fullres (with supersampling/antialiasing) when exporting frames (also available as &lt;a href="http://www.openexr.com/"&gt;OpenEXR&lt;/a&gt;/HDR)... Watch this space!&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sunflow" rel="tag"&gt;sunflow&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/radiosity" rel="tag"&gt;radiosity&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/sungrid" rel="tag"&gt;sungrid&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/renderfarm" rel="tag"&gt;renderfarm&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116307665445721164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/116307665445721164'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/11/processing-meets-radiosity.htm' title='Processing meets radiosity'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-115583430944873897</id><published>2006-08-17T17:35:00.000+01:00</published><updated>2006-08-17T18:31:58.070+01:00</updated><title type='text'>Film Friends Forever Boat Party</title><content type='html'>This is just a quick heads up for Londoners that I'll be doing a small gig this Saturday night (August, 19th, 7:45pm-8:30pm) at this &lt;a href="http://filmfriendsforever.com/index.php?option=com_content&amp;task=blogcategory&amp;id=33&amp;Itemid=45"&gt;mini film festival&lt;/a&gt; on the &lt;a href="http://www.hmspresident.com/"&gt;HMS President&lt;/a&gt;, organized by some &lt;a href="http://imperialleisure.com/"&gt;friends&lt;/a&gt;/&lt;a href="http://www.myspace.com/scanone"&gt;coworkers&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;Date: 19th August 2006&lt;br /&gt;Time:  3pm till late&lt;br /&gt;Venue: HMS President, Victoria Embankment EC4Y 0HJ&lt;br /&gt;Admission: &amp;pound;5 before 5, &amp;pound;7 after, invite only, email: &lt;a href="mailto:getin@filmfriendsforever.com"&gt;getin@filmfriendsforever.com&lt;/a&gt; for invites.&lt;br /&gt;&lt;br /&gt;Summer's here and Film Friends Forever is throwing a daytime boat party on Saturday 19th August on the HMS President. We're celebrating all things sunshine, film, music and food. In keeping with the tradition of our monthly film night at The Parlour in Sketch, the boat party is an opportunity all our friends and their friends to wind down and tantalise your creative senses with ground breaking audio visual work, DJs from renowned labels and cutting edge VJs.&lt;/blockquote&gt;&lt;br /&gt;I'll probably mainly be showing older, &lt;a href="http://toxi.co.uk/hub/"&gt;existing stuff&lt;/a&gt; I did with Director, since my more recent Processing pieces are still pretty much in - pieces...&lt;br /&gt;&lt;br /&gt;Line up currently includes: &lt;a href="http://www.hexstatic.tv/"&gt;Hexstatic&lt;/a&gt;, &lt;a href="http://www.shelleyparker.co.uk/"&gt;Shelley Parker&lt;/a&gt;, &lt;a href="http://www.myspace.com/scanone"&gt;Scanone&lt;/a&gt;, &lt;a href="http://www.combatrecords.net"&gt;Stormfield&lt;/a&gt;, &lt;a href="http://www.colonyproductions.net/"&gt;Abstrakt Knights&lt;/a&gt; and a whole bunch of other quality people...&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;tags: &lt;a href="http://www.technorati.com/tags/vj" rel="tag"&gt;vj&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/dj" rel="tag"&gt;dj&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/film" rel="tag"&gt;film&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/cinema" rel="tag"&gt;cinema&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/music" rel="tag"&gt;music&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/boat" rel="tag"&gt;boat&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/party" rel="tag"&gt;party&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/gig" rel="tag"&gt;gig&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/toxi" rel="tag"&gt;toxi&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/london" rel="tag"&gt;london&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/director" rel="tag"&gt;director&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115583430944873897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115583430944873897'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/08/film-friends-forever-boat-party.htm' title='Film Friends Forever Boat Party'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-115532237786318115</id><published>2006-08-11T18:46:00.000+01:00</published><updated>2006-08-11T19:55:07.186+01:00</updated><title type='text'>My 12 favourite demos</title><content type='html'>Often, when asked for my background, I often refer to my teenage days in the Atari demo scene - which is equally often causing raised eyebrows and shrugging shoulders. If you don't know what "demos" are, I recommend reading up on it over at &lt;a href="http://demoscene.info/"&gt;demoscene.info&lt;/a&gt; first...&lt;br /&gt;&lt;br /&gt;Most of the things and tricks I know about programming I've learned between the age of 13-18, when I and my friends were not so much playing with, but trying to tickle as much weird and wonderful things out of our expensive &lt;a href="http://home.planet.nl/~os000193/ataripower.gif"&gt;"power without the price"&lt;/a&gt; hardware. Writing demos forced me to engage with and understand topics I and others hated at school, like: geometry, trigonometry, physics, electronics etc. The good thing about that was, that suddenly there was a real-world relationship for all these things, something your average teacher in these subjects often seriously lacked to communicate. For example, understanding Sine and Cosine maybe had the most profund impact on me back then, since it opened the mental doors to experiment with animation, mathematical curves (how do you draw a circle on screen in assembler?), 3D projection, audio synthesis/sampling (my brother then kindly built a 4bit sampler  for me, which connected to the atari's joystick port) etc. One thing lead(s) to the other...&lt;br /&gt;&lt;br /&gt;My point though is, the demoscene arose as informal and highly competitive platform for creative expressions using software long before the (relatively) recent (re?)current mainstream interest in "computational design/art" (in the widest possible meaning) errupted. The development of algorithms, hacks, the procedural approaches and styles created by sceners have been contributing and driven much of the aesthetics of modern video games in particular, also way before Will Wright's Spore efforts. The competitive environment and elitist culture of this scene has been providing a great nurturing ground for experimentation of computational techniques in many fields, not only graphical/audiovisual. It has been doing so for over 15 years and it also somehow has preserved a somewhat closed world.&lt;br /&gt;&lt;br /&gt;So, the reason for this post was another &lt;a href="http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Contribution_3DOpenGL;action=display;num=1155197712#5"&gt;public prompt&lt;/a&gt; to point someone to interesting demos. Below is my hastily compiled and highly subjective list&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=9450"&gt;fr-025: The popular demo&lt;/a&gt; by &lt;a href="http://www.theprodukkt.com/"&gt;Farbrausch&lt;/a&gt;&lt;br /&gt;Nothing but respect for being so dedicated to Kitsch and deliberately taking it to new extremes.&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=5569"&gt;fr-019: Poem to a horse&lt;/a&gt; by &lt;a href="http://www.theprodukkt.com/"&gt;Farbrausch&lt;/a&gt;&lt;br /&gt;Another Farbrausch quality and milestone production. 64KB of procedural modelling, texturing and pristine audio synthesis. I'm still getting goose bumps when thinking about how effectively Code can be used to express and store that much information as well as emotion in only 65,536 bytes. GIF banners, anyone?&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=10546"&gt;I Feel Like A Computer&lt;/a&gt; by &lt;a href="http://www.melondezign.com/"&gt;Melon Dezign&lt;/a&gt;&lt;br /&gt;Fabulous &amp; quirky 3D pixel graphics with physics, Travolta, King Kong and a Teddy Bear. Great storytelling too!&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=8282"&gt;A Deepness In The Sky&lt;/a&gt; by &lt;a href="http://mfx.scene.org/"&gt;mfx&lt;/a&gt;&lt;br /&gt;This is one of my favourites for creating an absolute exhausting AV synch. Pure hypnosis. Strickly not for Rockers, though! :)&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=9471"&gt;Protozoa&lt;/a&gt; by &lt;a href="http://www.kewlers.scene.org/"&gt;Kewlers&lt;/a&gt;&lt;br /&gt;Quite a few Kewlers productions have great particle effects. This one is one of them. Also a good example of creating complexity purely through good texturing work.&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=18766"&gt;Final Audition&lt;/a&gt; by &lt;a href="http://plastic.pl"&gt;Plastic&lt;/a&gt;&lt;br /&gt;If you want to see the power of modern graphics cards and like metaballs, you'll like this one. Maybe the best (and most) realtime metaballs I've seen.&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=87"&gt;KKowboy&lt;/a&gt; by Blasphemy + Purple&lt;br /&gt;This one created paradigm shift in the demo scene and gave rise to productions more dedicated to graphic design skills, rather than geekery. From 1998, everything is software rendered.&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=13028"&gt;We Cell&lt;/a&gt; by &lt;a href="http://www.kewlers.scene.org/"&gt;Kewlers&lt;/a&gt;&lt;br /&gt;Another biology inspired production. No mindblowing effects, but overall great flow.&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=4771"&gt;Medium&lt;/a&gt; by &lt;a href="http://einklang.net"&gt;Einklang&lt;/a&gt;&lt;br /&gt;This is the only demo Einklang ever did. Great AV synch and a major influence to my own &lt;a href="http://toxi.co.uk/macronaut/"&gt;Macronaut&lt;/a&gt;. &lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=4658"&gt;b10&lt;/a&gt; by &lt;a href="http://www.satori.sk/"&gt;Zden Satori&lt;/a&gt;&lt;br /&gt;Now this, dear reader, is the PERFECT synesthesia. Every musical element has its own visual counter part. CAUTION: Epilepsy warning!&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.pouet.net/prod.php?which=10063"&gt;d796&lt;/a&gt; by &lt;a href="http://www.crsn.com/kosmoplovci"&gt;Kosmoplovci&lt;/a&gt;&lt;br /&gt;2001 space odysee in black &amp;amp; white. Headphones are adviced and try to watch it all.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;    &lt;li&gt;&lt;a href="http://pouet.net/prod.php?which=7119"&gt;Chimera&lt;/a&gt; by &lt;a href="http://www.halcyon.scene.org/"&gt;Halycon&lt;/a&gt;&lt;br /&gt;This production needs you to take some time out. Amazingly simple and stunning ambient visuals. It shouldn't be last in the list, but it is since it's the perfect chillout.&lt;br /&gt;    &lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;Tags: &lt;a href="http://www.technorati.com/tags/demoscene" rel="tag"&gt;demoscene&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/generative" rel="tag"&gt;generative&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/aesthetics" rel="tag"&gt;aesthetics&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115532237786318115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115532237786318115'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/08/my-12-favourite-demos.htm' title='My 12 favourite demos'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-115400692617073308</id><published>2006-07-27T14:09:00.000+01:00</published><updated>2006-07-27T14:28:46.186+01:00</updated><title type='text'>The Ask Later, not (T**** K****)©™ event</title><content type='html'>Am currently uploading my video "bootleg" of a fine, little &lt;a href="http://www.pecha-kucha.org/"&gt;Pecha Kucha&amp;trade;&lt;/a&gt; &lt;strong&gt;inspired&lt;/strong&gt; event from Tuesday night at Westminster University. &lt;a href="http://www.asklater.com/steve/blog/"&gt;SteveC&lt;/a&gt; and &lt;a href="http://www.tom-carden.co.uk"&gt;TomC&lt;/a&gt;, of &lt;a href="http://www.openstreetmap.org"&gt;Open Streetmap&lt;/a&gt; (amongst others) fame, have managed to organize a fabulous lineup of speakers talking about everything from the political decline in the UK (not just), Extreme-Suduko cheating/hacking with handmade OCR in Ruby, &lt;a href="http://toplap.org/"&gt;livecoding&lt;/a&gt; music with &lt;a href="http://haskell.org/"&gt;Haskell98&lt;/a&gt; (&lt;a href="http://yaxu.org/"&gt;Alex&lt;/a&gt;, you've got to check out &lt;a href="http://en.wikipedia.org/wiki/Brainfuck"&gt;Brainfuck&lt;/a&gt;), Harry Potter &amp;amp; &lt;a href="http://www.framestore-cfc.com/"&gt;3D scanning entire buildings&lt;/a&gt;, levels of indirection and comparing programming languages to football teams, &lt;a href="http://www.yoz.com/"&gt;cloning applications&lt;/a&gt; and the links &lt;a href="http://ning.com"&gt;Ning&lt;/a&gt; has with &lt;a href="http://www.lambdamoo.info/"&gt;LambdaMOO&lt;/a&gt;; more about &lt;a href="http://ubuntu.com"&gt;ubuntu&lt;/a&gt;, &lt;a href="http://www.rubyonrails.org/"&gt;Rails&lt;/a&gt; and using &lt;a href="http://www.paulhammond.org"&gt;constraints for your own benefit&lt;/a&gt; (also &lt;a href="http://www.toxi.co.uk/blog/2005/08/remembering-your-limits.htm"&gt;read here&lt;/a&gt;), &lt;a href="http://www.imdb.com/title/tt0165798/"&gt;Ghost dog&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Hagakure"&gt;Hagakure&lt;/a&gt;, &lt;a href="http://people.cs.uchicago.edu/~wiseman/vehicles/"&gt;Braitenberg&lt;/a&gt;, &lt;a href="http://www.maedastudio.com"&gt;Maeda&lt;/a&gt; and the  general &lt;a href="http://www.tom-carden.co.uk"&gt;interconnectness&lt;/a&gt; of things, &lt;a href="http://simon.incutio.com/"&gt;the joy of functional programming&lt;/a&gt; (in JavaScript), Topic maps (vs. RDF), usability testing and especially usability issues with mapping, &lt;a href="http://www.infovore.org/"&gt;story-driven software development&lt;/a&gt;, allowing user narratives to unfold online etc....&lt;br /&gt;&lt;br /&gt;All in all there were 13 speakers and I have to say it was ++good and highly inspiring. The chosen presentation format really kept everyone's attention focused. I was meant to be a speaker myself, but sadly had to cop-out last minute. I really hope this will become a regular event... Congrats to all involved!&lt;br /&gt;&lt;br /&gt;The above mentioned &lt;a href="http://toxi.co.uk/blog/uploads/asklater_20060725.3gp"&gt;video&lt;/a&gt; was recorded with my 6680. I managed to fill up the whole memory card, but only got the first ~50 mins of the event...&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;tags: &lt;a href="http://www.technorati.com/tags/london" rel="tag"&gt;london&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/event" rel="tag"&gt;event&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/hacking" rel="tag"&gt;hacking&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/javascript" rel="tag"&gt;javascript&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/ruby" rel="tag"&gt;ruby&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/haskell" rel="tag"&gt;haskell&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/3d" rel="tag"&gt;3d&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/design" rel="tag"&gt;design&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/books" rel="tag"&gt;books&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/mapping" rel="tag"&gt;mapping&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/usability" rel="tag"&gt;usability&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115400692617073308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115400692617073308'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/07/ask-later-not-t-k-event.htm' title='The Ask Later, not (T**** K****)&amp;copy;&amp;trade; event'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-115228102729108166</id><published>2006-07-07T14:44:00.000+01:00</published><updated>2006-07-07T18:24:54.026+01:00</updated><title type='text'>"I am a consciousness, a strange creature which resides nowhere and can be everywhere present in intention."</title><content type='html'>Ever since I started working with computers I've developed a somewhat latent, yet nevertheless recurrent interest in philosophy and psychology. I always found asking questions (and reading them) about the nature of the mind most inspiring and helpful creatively, as well as for finding and questioning my own personal way(s). For the past few weeks I've been feeling the need to satisfy my appetite once more and finally got hold again of a book which I simply had to put down after the first few pages when studying Philosophy at A-levels, some 14 years ago.&lt;br /&gt;&lt;br /&gt;The book is &lt;a href="http://www.amazon.co.uk/exec/obidos/redirect?link_code=ur2&amp;tag=toxicouk-21&amp;camp=1634&amp;creative=6738&amp;path=http%3A%2F%2Fwww.amazon.co.uk%2Fgp%2Fproduct%2F0415278414"&gt;"Phenomenology of Perception"&lt;/a&gt; by &lt;a href="http://en.wikipedia.org/wiki/Maurice_Merleau-Ponty"&gt;Maurice Merleau-Ponty&lt;/a&gt;. Written in 1945, it starts with an incredibly dense cross-examination of the definitions and supposed acts of perception, the role of reflection, as seen by different schools of philosophy &amp;mdash; before developing a radical definition of perception around the "embodied mind", by using (amongst others) studies of brain damaged survivors of WW1 (which did remind me of similar experiences reported in &lt;a href="http://en.wikipedia.org/wiki/Oliver_Sacks"&gt;Oliver Sacks&lt;/a&gt;' books).&lt;br /&gt;&lt;br /&gt;In any way, I'm still only near the beginning and this is not a review of the book (due to lack of qualifications), but I did already find some very inspiring quotes, which also do prove the fact the text is still timely and relevant today.&lt;br /&gt;&lt;br /&gt;Even though the below quote is slightly taken out of context (from a much wider definition of "data"), yet I think there's some truth in there in respect to developments in information/data visualization:&lt;br /&gt;&lt;blockquote&gt;"It would follow... the mind runs over isolated impressions and gradually discovers the meaning of the whole as the scientist discovers the unknown factors in virtue of the data of the problem. Now here the data of the problem are not prior to its solution, and perception is just the act which creates at a stroke, along with the cluster of data, the meaning which unites them &amp;mdash; indeed which not only discovers the meaning &lt;em&gt;which they have&lt;/em&gt;, but moreover sees to it &lt;em&gt;that they have a meaning.&lt;/em&gt;" (p. 42, not my emphasis)&lt;/blockquote&gt;&lt;br /&gt;I find that last statement certainly fitting for some of my own work and also to art in general. We can create anything and our minds will always find ways to project some meaning onto (into?) it... We construct meaning, and not "aquire" it from data directly.&lt;br /&gt;&lt;br /&gt;Here're some more of his thoughts for your perusal:&lt;br /&gt;&lt;blockquote&gt;"Pure sensation, defined as the action of stimuli on our body, is the 'last effect' of knowledge, particularly of scientific knowledge, and it is an illusion (a not unnatural one, moreover) that causes us to put it at the beginning and to believe that it precedes knowledge. It is the necessary, and necessarily misleading way in which a mind see its own history." (p.43)&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;"[But] in reality I would not know that I possess a true idea if my memory did not enable me to relate what is now evident with what was evident a moment ago, and, through the medium of words, correlate my evidence with that of others[...] For never, as Descartes and Pascal realized, can I at one stroke coincide with the pure thought which constitutes even a simple idea. My clear and distinct thought always uses thoughts already formulated by myself or others, and relies on my memory, that is, on the &lt;em&gt;nature of my mind&lt;/em&gt;, or else on the memory of the community of thinkers, that is, upon the &lt;em&gt;objective mind&lt;/em&gt;. To take for granted that we &lt;em&gt;have&lt;/em&gt; a true idea is to believe in uncritical perception." (p.46)&lt;/blockquote&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;tags: &lt;a href="http://www.technorati.com/tags/philosophy" rel="tag"&gt;philosophy&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/perception" rel="tag"&gt;perception&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/consciousness" rel="tag"&gt;consciousness&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/creativity" rel="tag"&gt;creativity&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/ideas" rel="tag"&gt;ideas&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/books" rel="tag"&gt;books&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/people" rel="tag"&gt;people&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115228102729108166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115228102729108166'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/07/i-am-consciousness-strange-creature.htm' title='&quot;I am a consciousness, a strange creature which resides nowhere and can be everywhere present in intention.&quot;'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-115027970157380243</id><published>2006-06-14T10:33:00.000+01:00</published><updated>2006-06-14T11:09:42.340+01:00</updated><title type='text'>Meet FMJ, opensource version of JMF</title><content type='html'>Even though I've &lt;a href="http://toxi.co.uk/p5/libcv"&gt;just released a library&lt;/a&gt; using Sun's JMF hours ago, I didn't actually explain too well the fact of it being a fairly dead technology, last updated in 2004. On the other hand JMF did have huge potential as framework, especially for streaming, mixing and (re)encoding timebased media.&lt;br /&gt;&lt;br /&gt;The whole situation reminds me of Macrodobe Director. There's a great product with huge potential being killed off slowly, slowly, very slowly due to corporate internal politics. To their defence, at least Director still is receiving updates, with doubtful new features, though, instead of improving keyfeatures like the 3D engine, which hasn't been updated since sometime around 2001(?). Both products still have quite an active development community. Unlike in Lingoland, some members in the JMF camp started taking things into their own hands and started re-implementing JMF from scratch as opensource initiative. Their project is called &lt;a href="http://fmj.sf.net"&gt;Freedom for Media in Java (FMJ)&lt;/a&gt; and its first release has just been announced.&lt;br /&gt;&lt;br /&gt;Quoting from &lt;a href="http://archives.java.sun.com/cgi-bin/wa?A2=ind0606&amp;L=jmf-interest&amp;F=&amp;S=&amp;P=3577"&gt;Ken Larson's announcement&lt;/a&gt; this morning, this looks very promising:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1. Video capture on Windows, Mac OS X, and Linux&lt;br /&gt;2. Audio and Video playback on Windows, Mac OS X, and Linux. DirectShow and Quicktime are wrapped used by FMJ on Windows and Mac OS X, respectively. Linux video playback currently requires JMF for demux/codec.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Audio Formats supported:&lt;/strong&gt;&lt;br /&gt;WAV, AU, AIFF, MP3, OGG.  Some WAV formats may not work yet, as WAV is a container format with many internal formats.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Video Formats supported:&lt;/strong&gt;&lt;br /&gt;On Windows and Mac OS X: any format supported by the native system (DirectShow/Quicktime).&lt;/blockquote&gt;&lt;br /&gt;Way to go! I'll testdrive if I can get my stuff to work with this asap...&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;technorati tags: &lt;a href="http://www.technorati.com/tags/fmj" rel="tag"&gt;fmj&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/jmf" rel="tag"&gt;jmf&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/opensource" rel="tag"&gt;opensource&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/director" rel="tag"&gt;director&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/video" rel="tag"&gt;video&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/capture" rel="tag"&gt;capture&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/library" rel="tag"&gt;library&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/framework" rel="tag"&gt;framework&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115027970157380243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115027970157380243'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/06/meet-fmj-opensource-version-of-jmf.htm' title='Meet FMJ, opensource version of JMF'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-6064652.post-115022954871064427</id><published>2006-06-13T20:51:00.000+01:00</published><updated>2006-06-13T21:14:42.103+01:00</updated><title type='text'>LibCV and JMFSimpleCapture</title><content type='html'>Trying to keep up with &lt;a href="http://toxi.co.uk/blog/2006/04/jmf-based-video-capture-teaser-post.htm"&gt;promises given&lt;/a&gt;, I've just uploaded the 1st public release of &lt;a href="http://toxi.co.uk/p5/libcv/"&gt;my shamefully basic video capture and computer vision library&lt;/a&gt;. All info, examples, docs and source are over there for your perusal.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;I especially would like to encourage mac and linux users to give it a spin, since I have no way of testing the code on these platforms.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Also, let me say right here that I don't intend to actively develop or maintain this library (unless I require some things personally). There're still a bunch of filters waiting for release, which could be quite helpful in this context, but most likely will remain independent from this library.&lt;br /&gt;&lt;br /&gt;Having said that, the stuff is released under the &lt;a rel="license" href="http://creativecommons.org/licenses/LGPL/2.1/"&gt;LGPL&lt;/a&gt;. So I encourage anyone interested to build upon this basic framework and see if it can be(come) a viable alternative to the QT4Java approach of Processing's built-in video capture library.&lt;br /&gt;&lt;br /&gt;&lt;div class="tag_list"&gt;technorati tags: &lt;a href="http://www.technorati.com/tags/processing.org" rel="tag"&gt;processing.org&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/jmf" rel="tag"&gt;jmf&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/java" rel="tag"&gt;java&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/video" rel="tag"&gt;video&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/capture" rel="tag"&gt;capture&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/libcv" rel="tag"&gt;libcv&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/opensource" rel="tag"&gt;opensource&lt;/a&gt;, &lt;a href="http://www.technorati.com/tags/library" rel="tag"&gt;library&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115022954871064427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6064652/posts/default/115022954871064427'/><link rel='alternate' type='text/html' href='http://www.toxi.co.uk/blog/2006/06/libcv-and-jmfsimplecapture.htm' title='LibCV and JMFSimpleCapture'/><author><name>toxi</name><uri>http://www.blogger.com/profile/14302893383561071878</uri><email>noreply@blogger.com</email></author></entry></feed>