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

<channel>
	<title>toxiclibs &#187; Community</title>
	<atom:link href="http://toxiclibs.org/category/community/feed/" rel="self" type="application/rss+xml" />
	<link>http://toxiclibs.org</link>
	<description>Building blocks for computational design</description>
	<lastBuildDate>Tue, 20 Dec 2011 17:03:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Upcoming Processing &amp; toxiclibs workshops in London</title>
		<link>http://toxiclibs.org/2011/09/london-workshops/</link>
		<comments>http://toxiclibs.org/2011/09/london-workshops/#comments</comments>
		<pubDate>Wed, 28 Sep 2011 14:01:58 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=548</guid>
		<description><![CDATA[Here&#8217;re some details about two upcoming workshop opportunities in London town this autumn: The joys of Processing @ onedotzero Dates: 26 &#038; 27 November 2011 (10am &#8211; 5pm) Location: BFI Southbank Limit: 20 people (TBC) Level: Beginner Price: TBC This year marks the 10th anniversary of Processing and onedotzero are doing their bit to help [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;re some details about two upcoming workshop opportunities in London town this autumn:</p>
<h2>The joys of Processing @ onedotzero</h2>
<p>Dates: 26 &#038; 27 November 2011 (10am &#8211; 5pm)<br />
Location: BFI Southbank<br />
Limit: 20 people (TBC)<br />
Level: Beginner<br />
Price: TBC</p>
<p>This year marks the 10th anniversary of Processing and <a href="http://onedotzero.com" onclick="pageTracker._trackPageview('/outgoing/onedotzero.com?referer=');">onedotzero</a> are doing their bit to help celebrating this occasion with a weekend workshop and public panel discussion as part of this year&#8217;s festival at the BFI Southbank. </p>
<p>In this 2-day weekend workshop we will explore how we can use Processing to express ourselves in code form and create small audio-visual performance tools, both reactive &#038; interactive. You&#8217;ll be introduced to creating 2D &#038; 3D shapes and compositions dynamically, play back samples, create complex animations by adding behaviours, export animations as video and control your code using external inputs (e.g. microphone, webcam, OSC/MIDI). There will also be a panel discussion following the workshop on Sunday evening.</p>
<p>Tickets will go on sale later this week via the <a href="http://www.bfi.org.uk/" onclick="pageTracker._trackPageview('/outgoing/www.bfi.org.uk/?referer=');">BFI box office</a>. Please note that BFI members will get priority!</p>
<h2>Digital fabrication with Processing &#038; toxiclibs</h2>
<p>Dates: 3 &#038; 10 December 2011 (10am &#8211; 6pm)<br />
Location: Metropolitan Works, Whitechapel<br />
Level: Intermediate<br />
Limit: 20 people<br />
Price: £175</p>
<p><a href="http://arthurmani.com/" onclick="pageTracker._trackPageview('/outgoing/arthurmani.com/?referer=');">Arthur Mamou-Mani</a>, lecturer in the Architecture department at University of Westminster and London Metropolitan University, recently approached me to run a workshop around using Processing &#038; toxiclibs for digital fabrication. Using the facilities at Metropolitan Works, we will be applying generative &#038; parametric design approaches to work with different physical materials (2D &#038; 3D) and fabrication techniques (laser cutting, CNC and 3D printing) and refine these explorations into a small, custom design tool, complete with graphical user interface. These high level topics will also include a discussion about using the different material constraints as guiding factors for our design process and learn how to use extensible software structures to customize and combine existing solutions to our specific needs.</p>
<p>We will introduce you to all those concepts in a learning-by-doing manner, but since this workshop only has a 2-day duration, you&#8217;re encouraged to prepare yourself beforehand (in the interest of the whole group) and familiarize (not become proficient!) with the following topics:</p>
<ul>
<li>Processing syntax &#038; environment</li>
<li>Check out some of the examples bundled with toxiclibs</li>
<li>Learn about basic geometry concepts (coordinate systems, vectors etc.)</li>
<li>Object oriented thinking</li>
</ul>
<p>For more details &#038; booking, please head over to the <a href="http://arthurmani.com/?p=1423" onclick="pageTracker._trackPageview('/outgoing/arthurmani.com/?p=1423&amp;referer=');">workshop page</a> on Arthur&#8217;s website.</p>
<p>If you have any questions about either workshop, please add a comment below! Thanks &#038; hope to see you soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2011/09/london-workshops/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The road ahead</title>
		<link>http://toxiclibs.org/2011/09/the-road-ahead/</link>
		<comments>http://toxiclibs.org/2011/09/the-road-ahead/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 19:21:19 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=503</guid>
		<description><![CDATA[I thought it will be very useful to give a better overview of the current development tasks (and challenges) for the near future. The diagram hopefully visualizes this current state quite well and this mega post discusses the most important points in more detail.]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;m using any spare moment to continue working on getting the next release ready for public consumption, I thought it will be very useful to give a better overview of the current development tasks (and challenges) for the near future. The diagram below hopefully visualizes this current state quite well and maybe even encourages one or two brave souls to lend a helping hand as toxiclibs is slowly but steadily breaking out of its initial Java shell and starts integrating more publicly into other languages and application contexts other than Processing.</p>
<div class="wp-caption aligncenter" style="width: 650px"><a href="http://www.flickr.com/photos/toxi/6173214240/sizes/o/" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/6173214240/sizes/o/?referer=');"><img class=" " title="toxiclibs roadmap Q4/2011 - Q2/2012" src="http://farm7.static.flickr.com/6175/6173214240_80a07fb1f5_z.jpg" alt="roadmap diagram" width="640" height="358" /></a><p class="wp-caption-text">toxiclibs roadmap Q4/2011 - Q2/2012 (click to enlarge)</p></div>
<h2>A bit of philosophy</h2>
<p>From the very outset, the creation of design oriented, composable and reusable data structures and algorithms for manipulating them has been the main aim of this project and also one of the most obvious counter approaches to the way people traditionally work with Processing (hitherto the most used environment for the libs). Even though the majority of classes provided by toxiclibs can have a visual representation, there&#8217;s a strict exclusion of any rendering related code in the core packages of the library, since these often carry a vast amount of secondary dependencies, eventually binding the library to a large, rigid environment. Me not likey. Almost all toxiclibs classes are &#8220;pure&#8221; models which can be queried, transformed, combined and otherwise manipulated as abstract entities. They&#8217;re usable as a tool for solving (design) problems, not only for drawing. They are the M in <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Model_E2_80_93view_E2_80_93controller?referer=');">MVC</a>. If one of them ever needs to be drawn/rendered, a 3rd party component is required (the V in MVC, e.g. Processing or straight OpenGL), but toxiclibs does not prescribe how this drawing should be done (but it provides optional tools to support that task). This separation of concerns really has been the #1 feature aimed at making it as easy as possible (and encouraging) to enter this next stage of the project: systematically porting to other languages.</p>
<h2>Polyglot toxiclibs</h2>
<p><strong>JavaScript</strong></p>
<p>In the past, myself and other people have done half-baked attempts to port selected classes to other languages (ActionScript, JavaScript, C++). However, all of them were just isolated fragments needed for specific projects and never approached general library status even closely. As most people are surely aware of by now, since the beginning of the year Mr. <a href="http://haptic-data.com/" onclick="pageTracker._trackPageview('/outgoing/haptic-data.com/?referer=');">Kyle Philips</a> has been doing a stellar effort systematically <a href="http://haptic-data.com/toxiclibsjs/" onclick="pageTracker._trackPageview('/outgoing/haptic-data.com/toxiclibsjs/?referer=');">porting large parts of the toxiclibs core and physics classes to JavaScript</a> and due to the popularity of that language this port is gaining huge traction. That&#8217;s exactly what I&#8217;ve been hoping for to happen as an eventual consequence of the above design points, so I&#8217;m super happy to see this effect kicking in. JavaScript however does not only mean in-browser usage, even though in combination with WebGL and libraries like <a href="https://github.com/mrdoob/three.js/" onclick="pageTracker._trackPageview('/outgoing/github.com/mrdoob/three.js/?referer=');">three.js</a> &amp; <a href="http://processingjs.org/" onclick="pageTracker._trackPageview('/outgoing/processingjs.org/?referer=');">Processing.js</a> the number of potential use cases is huge (I&#8217;d say even more so than in the traditional Processing tied context). JavaScript&#8217;s reach is massive and it also has deservedly gained traction outside the browser as general purpose language (largely thanks to <a href="http://code.google.com/p/v8/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/v8/?referer=');">V8</a> based platforms, like <a href="http://nodejs.org/" onclick="pageTracker._trackPageview('/outgoing/nodejs.org/?referer=');">Node.js</a>, but also <a href="http://www.deanmcnamee.com/" onclick="pageTracker._trackPageview('/outgoing/www.deanmcnamee.com/?referer=');">Dean McNamee</a>&#8216;s <a href="http://plask.org" onclick="pageTracker._trackPageview('/outgoing/plask.org?referer=');">Plask</a> as a more related example). I think toxiclibs can contribute and actively support new developments on these platforms.</p>
<p>In terms of similarity and porting, JavaScript is one of the closest things to Java there is, but it also has unique deployment issues and there&#8217;s some substantial organizational effort needed to create a better system for splitting the codebase into modules and integrating the JS port with existing coding standards (<a href="http://commonjs.org/" onclick="pageTracker._trackPageview('/outgoing/commonjs.org/?referer=');">CommonJS</a>) and module managers/loaders (e.g. <a href="http://npmjs.org/" onclick="pageTracker._trackPageview('/outgoing/npmjs.org/?referer=');">NPM</a>, <a href="http://requirejs.org/" onclick="pageTracker._trackPageview('/outgoing/requirejs.org/?referer=');">RequireJS</a>), incl. to start thinking about adopting <a href="http://code.google.com/closure/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/closure/?referer=');">Google Closure</a> conventions to harness the optimizations achievable by that compiler (e.g. <a href="http://en.wikipedia.org/wiki/Dead_code_elimination" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Dead_code_elimination?referer=');">dead code removal</a>, a huge benefit for large libraries as this).</p>
<p>Good API design requires a clean, consistent ethos, a worldview and opinion which not only is carried through and made visible throughout a project, but also leads users of that API to write their own software in a certain/similar manner. To achieve that goal is often a long, winding road and takes much longer to get right than writing actual code, but I think by now, toxiclibs does provide a decent set of consistently used patterns (excluding a few edge cases). Having such a familiar set of classes &amp; APIs available in multiple languages is a serious benefit for users and makes it much easier to experiment &amp; switch between environments, and that without forcing users to stay in a sandbox of sorts (e.g. as ProcessingJS does). I think, having a familiar API too needs to be complimented &amp; balanced with the unique features, idioms and development practices of the host language to allow both code &amp; coder live up to their full potential. For JS these differences are still relatively harmless, but even there we should embrace them more.</p>
<p><strong>Clojure</strong></p>
<p>Ever since college, I had an ongoing, if usually fleeting, fascination with <a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Lisp_programming_language?referer=');">Lisp</a> and its seemingly alien, stripped down approach to syntax, its obsession with brackets and generally doing things &#8220;the way round&#8221;, at least compared to common (imperative) languages. I never considered Lisp as a serious contender for my own development arsenal until earlier this summer, when I stumbled across <a href="http://clojure.org/" onclick="pageTracker._trackPageview('/outgoing/clojure.org/?referer=');">Clojure</a>, a modern dialect of Lisp running on the JVM (get a detailed feature overview on their website, it&#8217;s worth reading). This time I immediately was struck by its elegance, the resulting concise code and the many other features this language brings to the table, especially for working with collections, data processing &amp; concurrency. Many data munging tasks can be solved in approx. 30-50% code than in Java/Processing, very useful for dataviz. So I made an effort to get into it more seriously. Then I read <a href="http://www.defmacro.org/ramblings/lisp.html" onclick="pageTracker._trackPageview('/outgoing/www.defmacro.org/ramblings/lisp.html?referer=');">this article</a> and when I hit this quote, I felt in very similar shoes:</p>
<blockquote><p>&#8220;Many extremely intelligent people I knew and had much respect for were praising Lisp with almost religious dedication. There had to be something there, something I couldn&#8217;t afford not to get my hands on! Eventually my thirst for knowledge won me over. I took the plunge, bit the bullet, got my hands dirty, and began months of mind bending exercises. It was a journey on an endless lake of frustration. I turned my mind inside out, rinsed it, and put it back in place. I went through seven rings of hell and came back. And then I got it.</p>
<p>The enlightenment came instantaneously. One moment I understood nothing, and the next moment everything clicked into place. I&#8217;ve achieved nirvana.&#8221;</p></blockquote>
<p>Similar to <a href="http://www.scala-lang.org/" onclick="pageTracker._trackPageview('/outgoing/www.scala-lang.org/?referer=');">Scala</a>, Clojure compiles directly into JVM byte code and therefore provides comparable speed and can easily interoperate with the vast amount of Java libraries available. Unlike Java, Clojure is focused on immutable data and provides a functional approach to computing, an antidote to living a <a href="http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html" onclick="pageTracker._trackPageview('/outgoing/steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html?referer=');">kingdom of nouns</a>. Common to all Lisps also is the <a href="http://en.wikipedia.org/wiki/Read-eval-print_loop" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Read-eval-print_loop?referer=');">REPL</a>, offering livecoding features as part of the core development process. Lisp/Clojure code is data is code. I don&#8217;t need to point out, how exciting this is for people in our field. Besides that though, my main excitement is about the forward thinking take on concurrency/multicore support (agents/futures/atoms/refs) and the ability to easily create domain specific languages. Community activity around the language seems to be glowing hot and is sporting an impressive ecosystem of libraries and amazing support tools, making open source development true fun. Some noteworthy introductory links, should you feel inclined to give it a spin too:</p>
<ul>
<li><a href="http://java.ociweb.com/mark/clojure/article.html" onclick="pageTracker._trackPageview('/outgoing/java.ociweb.com/mark/clojure/article.html?referer=');">Clojure &#8211; Functional programming for the JVM</a></li>
<li><a href="http://joyofclojure.com/" onclick="pageTracker._trackPageview('/outgoing/joyofclojure.com/?referer=');">The Joy of Clojure</a></li>
<li><a href="http://www.lisperati.com/clojure-spels/casting.html" onclick="pageTracker._trackPageview('/outgoing/www.lisperati.com/clojure-spels/casting.html?referer=');">Casting Spels in Clojure</a></li>
<li><a href="http://learn-clojure.com/" onclick="pageTracker._trackPageview('/outgoing/learn-clojure.com/?referer=');">learn-clojure.com</a></li>
<li><a href="http://4clojure.com/" onclick="pageTracker._trackPageview('/outgoing/4clojure.com/?referer=');">4clojure</a></li>
</ul>
<p><strong>ClojureScript</strong></p>
<p><a href="https://github.com/clojure/clojurescript" onclick="pageTracker._trackPageview('/outgoing/github.com/clojure/clojurescript?referer=');">ClojureScript</a> is a recent addition to the Clojure ecosystem and potentially something to keep watching closely for the purposes of porting: Clojure compiled into JavaScript. I know it sounds like herasy, but in some respects it seems ClojureScript does &#8220;better&#8221; JavaScript than the original, providing all the intelligent language features of Clojure (e.g. namespaces, <a href="http://clojure.org/special_forms#Special Forms--(let [bindings* ] exprs*)" onclick="pageTracker._trackPageview('/outgoing/clojure.org/special_forms_Special_Forms--_let_bindings_exprs?referer=');">destructuring</a>, <a href="http://java.ociweb.com/mark/clojure/article.html#DefiningFunctions" onclick="pageTracker._trackPageview('/outgoing/java.ociweb.com/mark/clojure/article.html_DefiningFunctions?referer=');">function overloading</a>, <a href="http://clojure.org/atoms" onclick="pageTracker._trackPageview('/outgoing/clojure.org/atoms?referer=');">atoms</a>, <a href="http://java.ociweb.com/mark/clojure/article.html#Macros" onclick="pageTracker._trackPageview('/outgoing/java.ociweb.com/mark/clojure/article.html_Macros?referer=');">macros</a>) and generating JavaScript in a format targeted to <a href="http://code.google.com/closure/compiler/docs/gettingstarted_ui.html" onclick="pageTracker._trackPageview('/outgoing/code.google.com/closure/compiler/docs/gettingstarted_ui.html?referer=');">Google&#8217;s Closure compiler</a>, allowing for vastly better optimizations of large applications than handwritten JavaScript (which can only fully utilize the compiler if you stick to the necessary conventions in ALL your code). I&#8217;m in no position yet to actually back any of that with my own experience so far, but it&#8217;s an exciting development for sure. Here&#8217;s also a video of the launch event of ClojureScript at Google: <a href="http://blip.tv/clojure/rich-hickey-unveils-clojurescript-5399498" onclick="pageTracker._trackPageview('/outgoing/blip.tv/clojure/rich-hickey-unveils-clojurescript-5399498?referer=');">Rich Hickey (creator of Clojure) unveils ClojureScript</a> and the <a href="http://clojure.com/blog/2011/07/22/introducing-clojurescript.html" onclick="pageTracker._trackPageview('/outgoing/clojure.com/blog/2011/07/22/introducing-clojurescript.html?referer=');">official announcement with more links</a>.</p>
<h2>Keeping in sync &amp; documentation</h2>
<p>The next major set of tasks related to porting is figuring out ways to keep the different ports in sync or at least better document which parts of the library are available in which port. For that purpose, I started prototyping a new web app (<a href="http://webnoir.org" onclick="pageTracker._trackPageview('/outgoing/webnoir.org?referer=');">WebNoir</a> + <a href="http://couchbase.org/" onclick="pageTracker._trackPageview('/outgoing/couchbase.org/?referer=');">CouchDB</a>) which will collect metadata from the different source codes and automatically produce a port coverage/sync report. Kyle started manually producing a top-level version of this for his JS port, but its <a href="https://github.com/hapticdata/toxiclibsjs/blob/master/README.md" onclick="pageTracker._trackPageview('/outgoing/github.com/hapticdata/toxiclibsjs/blob/master/README.md?referer=');">granularity is only at class level</a>, whereas we really do need that information per function/method to be truly useful. This is also because there are still some areas of the original Java version, which will receive further updates and bug fixes and at current there&#8217;s no system to mark those places in the code as needing to be reflected in the other ports. Serious development of this tool is top priority after v0021 is out.</p>
<p>Related to that also is documentation, the historically slowest evolving aspect of the whole project. One of the comments I hear most often is <em>&#8220;Javadocs suck&#8221;</em>. They suck even more so, since for many library classes they&#8217;re not even existing or if so only superficially. So in a way I couldn&#8217;t agree more, but then again, for the past four years these libraries have largely evolved around my own needs and client projects and I&#8217;ve relied on users to consult the <a href="http://hg.postspectacular.com/toxiclibs/src/tip/examples/" onclick="pageTracker._trackPageview('/outgoing/hg.postspectacular.com/toxiclibs/src/tip/examples/?referer=');">95+ examples bundled with each release</a> (or attend my workshops) in order to learn the basic usage patterns. Whilst I still believe the latter (learning by example) is by far the most efficient way of learning (having done so my entire career), I also think things can be vastly improved by offering documentation in several formats, all cross-referenced between: actual running examples with source code, a literate programming style doc system (e.g. <a href="http://jashkenas.github.com/docco/" onclick="pageTracker._trackPageview('/outgoing/jashkenas.github.com/docco/?referer=');">Docco</a>/<a href="http://fogus.me/fun/marginalia/" onclick="pageTracker._trackPageview('/outgoing/fogus.me/fun/marginalia/?referer=');">Marginalia</a> based, very good for workshops) and the traditional javadoc style, for integrating the docs in an IDE setup.</p>
<div id="attachment_515" class="wp-caption aligncenter" style="width: 690px"><img class="size-full wp-image-515 " title="marginalia_toxicore" src="http://toxiclibs.org/wp-content/uploads/2011/09/marginalia_toxicore.png" alt="" width="680" height="740" /><p class="wp-caption-text">Example output of running an early(ier) Clojure porting effort through Marginalia to produce nice, easy to read documentation next to source code.</p></div>
<p>IMHO the reason Javadocs are soooo unsuccessful amongst Processing users is actually largely down to the lack of Javadoc support in the Processing PDE. If people would use IDEs like <a href="http://eclipse.org/" onclick="pageTracker._trackPageview('/outgoing/eclipse.org/?referer=');">Eclipse</a> showing Javadocs in-situ within the editor context by simply hovering over class names, I believe people would see them for what they really are: kind of awesome!</p>
<div id="attachment_533" class="wp-caption aligncenter" style="width: 690px"><img class="size-full wp-image-533" title="javadocs_eclipse" src="http://toxiclibs.org/wp-content/uploads/2011/09/javadocs_eclipse1.png" alt="" width="680" height="200" /><p class="wp-caption-text">Eclipse screenshot with Javadocs in editor context.</p></div>
<p>So in conjunction with the task of <em>adding metadata to every method of every public class</em> in the codebase, all methods will also be receiving full documentation. These docs will then also link to existing examples using the particular method. This will be the second main focal point of the v0022 release (the one after next).</p>
<h2>Versioning &amp; repositories</h2>
<p>Speaking of version numbers: Again, due to the organic and isolated growth of this project and my own past development practice, the linear versioning scheme was quite sufficient for now. As we all learn new things and our development tactics change, so too will the versioning for this project have to change to something more meaningful. Enter <a href="http://semver.org/" onclick="pageTracker._trackPageview('/outgoing/semver.org/?referer=');">semantic versioning</a>. The idea is nothing new and I&#8217;ve been using it for most other projects in the past, but I think this time the reasoning behind it is somewhat different:</p>
<ol>
<li>Currently there&#8217;s toxiclibs support for 2.1 languages (the Clojure port is not quite there yet to fully count)</li>
<li>Development outside the Processing IDE is far more dependent on build management tools, open source repositories and module managers (e.g. <a href="http://maven.apache.org/" onclick="pageTracker._trackPageview('/outgoing/maven.apache.org/?referer=');">Maven</a>, <a href="http://npmjs.org/" onclick="pageTracker._trackPageview('/outgoing/npmjs.org/?referer=');">NPM</a>, <a href="https://github.com/technomancy/leiningen" onclick="pageTracker._trackPageview('/outgoing/github.com/technomancy/leiningen?referer=');">Leiningen</a>)</li>
<li>Different projects are created at different times and might require different versions of the libraries and</li>
<li>I&#8217;d really love to get to a point where there&#8217;ll be synchronised releases in order to reduce build &amp; documentation complexity and avoid confusion for users so that they can assume v1.0.0 of a module will contain the same features in all (sup)ported languages.</li>
</ol>
<p>Semantic versioning is the lowest common denominator between all current module managers/repositories and hence will be introduced with the next release. As a result, users will have a much easier way to integrate the libraries into their own (non-Processing) projects, since they will also be available via the major existing open source repositories for the various languages (<a href="https://repository.sonatype.org/" onclick="pageTracker._trackPageview('/outgoing/repository.sonatype.org/?referer=');">Sonatype</a> [Java/Maven], <a href="http://npmjs.org/doc/registry.html" onclick="pageTracker._trackPageview('/outgoing/npmjs.org/doc/registry.html?referer=');">NPM registry</a> (JS), <a href="http://clojars.org" onclick="pageTracker._trackPageview('/outgoing/clojars.org?referer=');">Clojars</a> [Clojure/Leiningen]). Apparently, Processing 2.0 will feature its own centralized library management system, but from what I gather it will not offer any integration with any of these existing open source repositories.</p>
<h2>New website &amp; tutorials</h2>
<p>The current WordPress based setup is not the best platform for integrating all the planned new documentation, tutorials and other features like the bundled example &amp; user galleries. I&#8217;ve been test driving <a href="http://atlassian.com/software/confluence/" onclick="pageTracker._trackPageview('/outgoing/atlassian.com/software/confluence/?referer=');">Confluence</a> on a private dev server and found this more promising (at least for the documentation &amp; tutorial side), so I might adopt this in the near future. The other (more appealing) alternative is to extend the new CouchDB based sync/doc tool into a more generic web app and add wiki &amp; blogging features. The main issue for that will be increased hosting costs, which I will need to think about more how they can be better balanced. The new website will also host as many of the bundled examples as possible, effectively deprecating the current gallery on <a href="http://openprocessing.org/portal/userID=4530" onclick="pageTracker._trackPageview('/outgoing/openprocessing.org/portal/userID=4530?referer=');">openprocessing.org</a>, which is impossible to batch update and therefore can&#8217;t reflect any API changes in older examples (which causes unnecessary comments). To better integrate community contributions, that new system will also be used to provide a user gallery.</p>
<p><strong>Furthermore, if you&#8217;re like the amazing <a href="http://amnonp5.wordpress.com/" onclick="pageTracker._trackPageview('/outgoing/amnonp5.wordpress.com/?referer=');">Amnon Owed</a>, and feel like creating super useful tutorials for the libraries, please start doing so. Any help on increasing the number of learning resources would be an amazing contribution to this project and will play a major role on the new site.</strong> Speaking of tutorials, I really do think there also is a <strong>big need</strong> for a general knowledge tutorial about how to make the most of open source libraries like this from a user perspective and encourage people to contribute (even if in the most indirect ways). Much of the feedback and comments I receive, hints at a large knowledge gap about how to even go about finding out (in a self guided manner) about existing resources, updates, work with the source code, work with issue trackers etc. This generally seems to be a far bigger problem with users in the Processing camp than I&#8217;m aware of from other environments. Food for thought!</p>
<h2>Summary &amp; next steps</h2>
<p>Well, this is the closest thing to a sharable master plan as I could get to for now. Before most of these things will/can be addressed, other minor tasks need to be completed to get 0021 out of the door first. A brief, non-exhaustive overview of new features is here:</p>
<ul>
<li>Initial support for NURBS curves and surfaces is the biggest new addition and still requires some more testing and internal restructuring. Supported operations are:
<ul>
<li>Curve builders for circles, arcs and creating curves from a list of points, joining curves</li>
<li>Surface builders: extrude curve, revolve curve, construct surface from a grid of points/control mesh</li>
<li>Convert surface into TriangleMesh instance (variable resolution &amp; UV coordinate generation)</li>
</ul>
</li>
<li>Several important additions to the Polygon2D class:
<ul>
<li>construct regular polygons from a given base line segment (useful for creating tesselations)</li>
<li>rotate/scale/translate polygons</li>
<li>pick random points within a polygon (useful for color sampling)</li>
<li>retrieving edge list</li>
</ul>
</li>
<li>Tesselate polygons using Delaunay triangulation with flexible grid resolutions</li>
<li>Addition of ConvexPolygonClipper to clip a polygon to the shape of another</li>
<li>New BezierCurve2D/3D classes in addition to existing Spline2D/3D</li>
<li>Implementing Visitor pattern for PointQuadtree/PointOctree</li>
<li>Adding UV coordinate generation to SurfaceMeshBuilder</li>
<li>Adding PLYWriter for exporting 3D meshes in Standard Polygon format</li>
<li>ToxiclibsSupport line drawing now supports decorators for dashed lines and arrow heads (customizable)</li>
<li>Custom DXFWriter for 2D shapes with DXF layer support</li>
<li>Improving precision/reducing rounding errors for VolumetricBrush</li>
<li>Adding FluidSolver3D</li>
</ul>
<p>There&#8217;re also a ton of other smaller additions and bug fixes plus approx. 10-15 new examples. Let me also point you again to the repository of workshop projects at <a href="http://learn.postspectacular.com/hg/" onclick="pageTracker._trackPageview('/outgoing/learn.postspectacular.com/hg/?referer=');">learn.postspectacular.com</a>, which contains also several larger projects than the examples bundled with the release.</p>
<h2>Showreel</h2>
<p>A few people have been asking about sending in stuff for this year&#8217;s showreel. Of course, I do intend to produce one again (it&#8217;s one of the highlights of the year), though I can only realistically get to this in Nov/Dec, hopefully making it a nice video for the Holiday season. I will send out a proper call for submissions in the next month, but if you have stuff ready, please send it along already. Specs will be the same as previously: Video assets 1280&#215;720 (if possible), still images are fine too and of course please add some brief description &amp; credits.</p>
<p>Any feedback, suggestions &amp; help offers are highly appreciated! So long&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2011/09/the-road-ahead/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tutorials galore</title>
		<link>http://toxiclibs.org/2011/05/tutorials-galore/</link>
		<comments>http://toxiclibs.org/2011/05/tutorials-galore/#comments</comments>
		<pubDate>Tue, 10 May 2011 22:08:28 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Usage]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=476</guid>
		<description><![CDATA[The ongoing lack of tutorials is still one of the most pressing issues to resolve for me &#038; everyone else using (or trying to use) these libraries. Add to this the recent lack of updates to this blog, it all might give the illusion the project itself is stagnating. This couldn&#8217;t be further from the [...]]]></description>
			<content:encoded><![CDATA[<p>The ongoing lack of tutorials is still one of the most pressing issues to resolve for me &#038; everyone else using (or trying to use) these libraries. Add to this the recent lack of updates to this blog, it all might give the illusion the project itself is stagnating. This couldn&#8217;t be further from the truth. In fact, the past few months have seen an incredible uptake of interest as well as development effort (93 revisions since beginning of the year), but I&#8217;m also close to reaching the point where I&#8217;ll impose a temporary new feature freeze as soon as version 0021 has been released within the next 6 weeks. 0022 will most likely be far more focused on a new, much improved system for documentation and a new website&#8230;</p>
<p>In the meanwhile, I&#8217;ve been doing my best to respond to concrete issues &#038; tasks people were trying solve on the Processing forums as well as the issue tracker. The <a href="http://openprocessing.org/portal/?userID=4530" onclick="pageTracker._trackPageview('/outgoing/openprocessing.org/portal/?userID=4530&amp;referer=');">list of demos on OpenProcessing</a> has grown too. And thanks to personal heroes of mine, like <a href="http://www.flong.com/" onclick="pageTracker._trackPageview('/outgoing/www.flong.com/?referer=');">Golan Levin</a>, <a href="http://shiffman.net" onclick="pageTracker._trackPageview('/outgoing/shiffman.net?referer=');">Daniel Shiffman</a> and their students, there&#8217;re also a number of very interesting student projects this year, which are utilising the libraries and (in some cases) have their code explorations shared (like good citizens tend to do :). A round-up post of these will follow shortly.</p>
<p>Speaking of missing examples and small projects, teaching workshops has been another well under-documented effort of mine. For most of them, I&#8217;ve created a Mercurial repository on <a href="http://learn.postspectacular.com/hg/" onclick="pageTracker._trackPageview('/outgoing/learn.postspectacular.com/hg/?referer=');">this website</a> and I&#8217;d encourage you to download and play with these examples as well. A lot of them are more advanced than the examples bundled with each release, some utilize 3rd party libraries and all are generally full of comments, not just about library specific topics. Please also send your virtual thanks to all the unis &#038; institutions allowing this material to be shared!</p>
<p>Workshop repositories: <a href="http://learn.postspectacular.com/hg/" onclick="pageTracker._trackPageview('/outgoing/learn.postspectacular.com/hg/?referer=');">http://learn.postspectacular.com/hg/</a> &#8211; <strong>All source code is LGPL licensed unless stated otherwise.</strong></p>
<p>Before I get to the compiled list of mini-tutorials and discussions from the Processing forum, Amnon Owed has recently produced two excellent tutorials for this project and I sincerely hope his efforts will inspire other users to follow suit:</p>
<p><a href="http://amnonp5.wordpress.com/2011/04/23/working-with-toxiclibs/" onclick="pageTracker._trackPageview('/outgoing/amnonp5.wordpress.com/2011/04/23/working-with-toxiclibs/?referer=');">Working with toxiclibs, part #1</a> (polygons, voronoi explosions)<br />
<a href="http://www.creativeapplications.net/processing/working-with-toxiclibs-processing-tutorial/" onclick="pageTracker._trackPageview('/outgoing/www.creativeapplications.net/processing/working-with-toxiclibs-processing-tutorial/?referer=');">Working with toxiclibs &#038; Processing, part #2</a> (physics, colors, zoomlens)</p>
<p><iframe src="http://player.vimeo.com/video/22772055" width="680" height="382" frameborder="0"></iframe></p>
<p>List of recent forum threads (including lots of source code), sorted by subject:</p>
<h2>Interaction, events, multi-threading</h2>
<p><a href="http://forum.processing.org/topic/ipad-tuio-toxi-physics2d-concurrentmodificationexception#25080000000852035" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/ipad-tuio-toxi-physics2d-concurrentmodificationexception_25080000000852035?referer=');">iPad, TUIO &amp; particles with dynamic attraction behaviors</a><br />
<a href="http://forum.processing.org/topic/custom-events-event-listener#25080000000727107" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/custom-events-event-listener_25080000000727107?referer=');">Custom Events + Event listener?</a></p>
<p><img src="http://toxiclibs.org/wp-content/uploads/2011/05/voronoi.png" alt="" title="voronoi" width="600" height="600" class="aligncenter size-full wp-image-486" /></p>
<h2>Geometry</h2>
<p><a href="http://forum.processing.org/topic/toxiclib-voronoi-example-sketch" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/toxiclib-voronoi-example-sketch?referer=');">How to use the Toxiclibs Voronoi class?</a><br />
<a href="http://forum.processing.org/topic/2d-collision-detection-irregular-shapes-computer-vision-blobs" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/2d-collision-detection-irregular-shapes-computer-vision-blobs?referer=');">2D Collision detection &#8211; irregular shapes (computer vision blobs)</a><br />
<a href="http://forum.processing.org/topic/octree-visualization-toxiclibs#25080000000842257" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/octree-visualization-toxiclibs_25080000000842257?referer=');">Octree Visualization</a><br />
<a href="http://forum.processing.org/topic/toxiclibs-perlinnoise-to-specified-target-destination#25080000000764005" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/toxiclibs-perlinnoise-to-specified-target-destination_25080000000764005?referer=');">PerlinNoise to specified target destination</a><br />
<a href="http://forum.processing.org/topic/what-does-vec2d-heading-in-toxiclibs-do-exactly" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/what-does-vec2d-heading-in-toxiclibs-do-exactly?referer=');">What does Vec2D.heading() in Toxiclibs do exactly?</a><br />
<a href="http://forum.processing.org/topic/how-to-calculate-the-tangent-line-of-a-circle" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/how-to-calculate-the-tangent-line-of-a-circle?referer=');">How to calculate the tangent line of a circle?</a><br />
<a href="http://forum.processing.org/topic/mouse-within-a-certain-area#25080000000731001" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/mouse-within-a-certain-area_25080000000731001?referer=');">Mouse within a certain area</a><br />
<a href="http://forum.processing.org/topic/using-toxiclibs-geomutils-to-solve-the-pulley-problem#25080000000727111" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/using-toxiclibs-geomutils-to-solve-the-pulley-problem_25080000000727111?referer=');">using toxiclibs geomutils to solve the &#8220;pulley problem&#8221;</a></p>
<p><img src="http://toxiclibs.org/wp-content/uploads/2011/05/gpsflickr-680x510.jpg" alt="" title="gpsflickr" width="680" height="510" class="alignnone size-large wp-image-488" /></p>
<h2>Geo location (Twitter &amp; Flickr)</h2>
<p><a href="http://forum.processing.org/topic/gps-to-spherical-coordinates-with-vec3d-toxilibs#25080000000756005" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/gps-to-spherical-coordinates-with-vec3d-toxilibs_25080000000756005?referer=');">GPS to spherical coordinates with Vec3D &#038; toxilibs</a><br />
<a href="http://forum.processing.org/topic/geolocation-twitter-search-twitter4j#25080000000834814" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/geolocation-twitter-search-twitter4j_25080000000834814?referer=');">GeoLocation Twitter Search: Twitter4j</a><br />
<a href="http://forum.processing.org/topic/geolocation#25080000000772027" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/geolocation_25080000000772027?referer=');">Simple mapping of geolocated tweets</a></p>
<p><iframe src="http://player.vimeo.com/video/23319820" width="680" height="382" frameborder="0"></iframe></p>
<h2>Color</h2>
<p><a href="http://www.creativeapplications.net/processing/working-with-toxiclibs-processing-tutorial/" onclick="pageTracker._trackPageview('/outgoing/www.creativeapplications.net/processing/working-with-toxiclibs-processing-tutorial/?referer=');">Working with toxiclibs &#038; Processing, part #2</a><br />
<a href="http://forum.processing.org/topic/question-on-toxiclibs-colorutils-histogram#25080000000721113" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/question-on-toxiclibs-colorutils-histogram_25080000000721113?referer=');">Question on toxiclibs colorutils Histogram</a></p>
<p><img src="http://toxiclibs.org/wp-content/uploads/2011/05/andres-680x372.jpg" alt="" title="volumetric glgraphics" width="680" height="372" class="alignnone size-large wp-image-491" /></p>
<h2>Rendering</h2>
<p><a href="http://forum.processing.org/topic/glgraphics-toxiclibs-volumeutils" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/glgraphics-toxiclibs-volumeutils?referer=');">GLGraphics + Toxiclibs Volumeutils</a> (also see post on <a href="http://codeanticode.wordpress.com/2011/03/28/integrating-toxilibs-and-glgraphics/" onclick="pageTracker._trackPageview('/outgoing/codeanticode.wordpress.com/2011/03/28/integrating-toxilibs-and-glgraphics/?referer=');">codeanticode</a>)<br />
<a href="http://forum.processing.org/topic/drawing-a-dotted-dashed-arc#25080000000715416" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/drawing-a-dotted-dashed-arc_25080000000715416?referer=');">Drawing a dotted/dashed arc</a><br />
<a href="http://forum.processing.org/topic/library-with-box-x-y-z-function#25080000000717206" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/library-with-box-x-y-z-function_25080000000717206?referer=');">Library with box(x,y,z) function?</a></p>
<h2>Math</h2>
<p><a href="http://forum.processing.org/topic/can-toxi-spline2d-be-use-for-more-than-vector-positions#25080000000749048" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/can-toxi-spline2d-be-use-for-more-than-vector-positions_25080000000749048?referer=');">Can toxi Spline2D be use for more than Vector positions?</a><br />
<a href="http://forum.processing.org/topic/convert-0-54321-to-0-54-and-convert-2-to-100#25080000000749044" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/convert-0-54321-to-0-54-and-convert-2-to-100_25080000000749044?referer=');">convert 0.54321 to 0.54 and convert 2 to 100</a></p>
<h2>XML (JAXB)</h2>
<p>These two threads are about JAXB, which is indirectly referenced by various toxiclibs geometry types in order to store them as XML. In anyway, many users are interested in data visualization and JAXB is lightyears ahead of the default XML library bundled with Processing&#8230;</p>
<p><a href="http://forum.processing.org/topic/jaxb-tutorial-xml-parsing-with-style" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/jaxb-tutorial-xml-parsing-with-style?referer=');">JAXB tutorial: XML parsing with style</a><br />
<a href="http://forum.processing.org/topic/jaxb-tutorial-question" onclick="pageTracker._trackPageview('/outgoing/forum.processing.org/topic/jaxb-tutorial-question?referer=');">JAXB tutorial question</a></p>
<p>Last, but not least: If you have any similar questions, interest in running workshops at your university/company or any small tutorials to share, please do get in touch! ¡Muchas gracias!</p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2011/05/tutorials-galore/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CfP: Community showreel 2010</title>
		<link>http://toxiclibs.org/2010/08/cfp-community-showreel-2010/</link>
		<comments>http://toxiclibs.org/2010/08/cfp-community-showreel-2010/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 02:42:04 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Showcase]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=431</guid>
		<description><![CDATA[It&#8217;s this time of the year again &#8211; Showreel time! By now the project has grown to over 270+ classes distributed in 8 sub-libraries and especially this past year has seen the potential &#038; impact of these libs realised in different fields from architecture, education, generative product design to interactive installations, and that not just [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s this time of the year again &#8211; Showreel time! By now the project has grown to over 270+ classes distributed in 8 sub-libraries and especially this past year has seen the potential &#038; impact of these libs realised in different fields from architecture, education, generative product design to interactive installations, and that not just in the Processing based core-community.</p>
<p>So just like last year&#8217;s effort, I&#8217;d very much wish for and would like to produce another showreel of all the recent interesting projects &amp; experiments done by YOURSELVES with the various library packages. The aim of this undertaking is simply to create a record, a snapshot, some overview and inspiration for other (possibly new) users of these libs. <strong>To make this happen I really do need your help &amp; generous contributions in the form of footage, both video and still image assets.</strong> Finished projects are desirable, but often the work-in-progress stages are highly interesting too, so if possible, please do include these too. All work will be clearly credited and the reel will be premiered during <a href="http://www.flashonthebeach.com/sessions/index.php?pageid=2208" onclick="pageTracker._trackPageview('/outgoing/www.flashonthebeach.com/sessions/index.php?pageid=2208&amp;referer=');">my talk</a> at <a href="http://www.flashonthebeach.com" onclick="pageTracker._trackPageview('/outgoing/www.flashonthebeach.com?referer=');">Flash On The Beach</a> on September 27, 2010. Afterwards the video will be hosted on Vimeo.</p>
<p>Like last year, the guidelines are remaining as follows:</p>
<ul>
<li>only submit projects you&#8217;ve worked on/own rights to/have permission to include</li>
<li>project name, client (if any), year, author(s), project URL</li>
<li>list of toxiclibs package(s) used</li>
<li>video resolution 1280&#215;720 (if possible, lower res might be fine too)</li>
<li>screenshots/photos (if you have stills only, more than one would be extremely helpful)</li>
<li>(optional) your vimeo username for crediting using their system</li>
</ul>
<p><strong>Please get in touch via email: toxiclibs at postspectacular dot com</strong></p>
<p>I can provide FTP upload space if you don&#8217;t have any yourself. Alternatively, you might want to sign up with <a href="http://aws.amazon.com/s3/" onclick="pageTracker._trackPageview('/outgoing/aws.amazon.com/s3/?referer=');">Amazon S3</a>, <a href="http://dropbox.com/" onclick="pageTracker._trackPageview('/outgoing/dropbox.com/?referer=');">Dropbox</a>, <a href="http://box.net" onclick="pageTracker._trackPageview('/outgoing/box.net?referer=');">Box.net</a> or similar services&#8230;</p>
<p><strong>UPDATE!!! Entry deadline is: Thu 23 Sep 2010, 09:00 GMT</strong> <del datetime="2010-09-21T02:00:17+00:00">Monday 20 September 2010, 12:00pm GMT</del></p>
<p>Your help is v.appreciated &#038; I shall thank you dearly!!!!</p>
<p>Once more for the record, here&#8217;s the previous reel from 2009&#8230;</p>
<p><iframe src="http://player.vimeo.com/video/6644720" width="680" height="382" frameborder="0"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2010/08/cfp-community-showreel-2010/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Olhares de Processing: Porto workshop</title>
		<link>http://toxiclibs.org/2010/06/olhares-de-processing-porto-workshop/</link>
		<comments>http://toxiclibs.org/2010/06/olhares-de-processing-porto-workshop/#comments</comments>
		<pubDate>Tue, 15 Jun 2010 16:14:04 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=336</guid>
		<description><![CDATA[Before it gets too quiet here (sorry about that recent work &#38; travel-induced hiatus, there&#8217;re loads of updates coming), I&#8217;m super happy to announce details of the next workshop related to this project, incl. a preliminary outline/focus topics for us to get our teeth into. This upcoming workshop is entitled Olhares de Processing (Glimpses of [...]]]></description>
			<content:encoded><![CDATA[<p>Before it gets too quiet here (sorry about that recent work &amp; travel-induced hiatus, there&#8217;re <strong>loads</strong> of updates coming), I&#8217;m super happy to announce details of the next workshop related to this project, incl. a preliminary outline/focus topics for us to get our teeth into. This upcoming workshop is entitled <a href="http://bit.ly/olharesdeprocessing" onclick="pageTracker._trackPageview('/outgoing/bit.ly/olharesdeprocessing?referer=');">Olhares de Processing</a> (Glimpses of Processing) and will take place at the <a href="http://artes.ucp.pt/en/" onclick="pageTracker._trackPageview('/outgoing/artes.ucp.pt/en/?referer=');">School of Arts @ Universidade Católica Portuguesa Porto</a> in conjunction with the <a href="http://olhares-outono.ucp.pt" onclick="pageTracker._trackPageview('/outgoing/olhares-outono.ucp.pt?referer=');">Festival de Artes Digitais Olhares de Outono</a>.</p>
<p>Mark these dates in your calendar: <strong>July 12-18th 2010</strong> &#8211; It&#8217;s going to be a whole 7 long days of code crafting in the north of Portugal and I&#8217;m looking very forward to it! The workshop is limited to 14 participants. Bookings are handled by the University and should be done via their <a href="http://bit.ly/olharesdeprocessing" onclick="pageTracker._trackPageview('/outgoing/bit.ly/olharesdeprocessing?referer=');">special website</a>. Thank you dearly!</p>
<p>The planned outline is below the poster I made for this unique occasion, so please do read on:</p>
<p><img class="alignnone size-full wp-image-345" title="olhares_poster_a0" src="http://toxiclibs.org/wp-content/uploads/2010/06/olhares_poster_a0.jpg" alt="Workshop poster" width="680" height="920" /></p>
<p>The general idea is to split our time into 4 days of intense tutorials and hands-on examination of core principles &amp; techniques of the computational design approach in the context of creating &#8220;generative identities&#8221;, without prescribing too much what shape &amp; form these should take. Part of our workshop&#8217;s remit is also to enquire the current possibilities. The final 3 days will then be used to build your own project(s) to be use for the Olhares de Outono festival later in November.</p>
<p>The topics listed below are not set in stone and we&#8217;ll decide as group on what to focus (much depends on the skills &amp; interests of the participants). Similarly, if you&#8217;d like to experiment/include external devices into your project (Wiimote, Arduino), please bring them along. The workshop space is equipped with iMacs, but there&#8217;re also a couple of spaces to use your own machine as well&#8230; At the end of the workshop, we all should have at least one completed (if not polished) project for the festival, and should strive to document it (the project) too.</p>
<h3>Day 1: Getting ready</h3>
<h4 id="Processing">Processing</h4>
<ul>
<li>recap of basics
<ul>
<li>types</li>
<li>structures</li>
<li>working with libraries</li>
<li>exporting</li>
</ul>
</li>
</ul>
<ul>
<li>scope
<ul>
<li>learning curve</li>
<li>use as environment (PDE)</li>
<li>use online vs. offline</li>
<li>use as library in larger frameworks</li>
<li>P5 within the bigger picture
<ul>
<li>JavaScript</li>
<li>Java (Android)</li>
<li>OpenFrameworks</li>
<li>Cinder</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 id="Toxiclibs">Toxiclibs</h4>
<ul>
<li>Overview</li>
<li>Recent updates</li>
<li>Philosophy</li>
<li>Resources</li>
<li>Use cases</li>
<li>Exercises
<ul>
<li>Key techniques/classes</li>
<li>Layering processes/Combining modules</li>
<li>Easier handling in Processing</li>
</ul>
</li>
</ul>
<h4 id="OOP">OOP</h4>
<ul>
<li>Concepts
<ul>
<li>Interfaces</li>
<li>Inheritance</li>
<li>Polymorphism</li>
<li>Encapsulation</li>
</ul>
</li>
</ul>
<ul>
<li>Best practices
<ul>
<li>Events</li>
<li>Architecture</li>
<li>Design patterns</li>
<li>Anti patterns</li>
<li>Reusability</li>
<li>Open source</li>
</ul>
</li>
</ul>
<h4 id="Eclipse">Eclipse</h4>
<ul>
<li>overview</li>
<li>project setup</li>
<li>using Processing as lib only</li>
<li>editor features
<ul>
<li>code completion</li>
<li>navigation</li>
<li>refactoring</li>
</ul>
</li>
</ul>
<h3 id="Day2Workingwithdata">Day 2: Working with data</h3>
<h4 id="datamodellingprocessing">Data modelling/processing</h4>
<ul>
<li>Collections
<ul>
<li>Hashmaps
<ul>
<li>Histograms:
<ul>
<li>Images, FFT</li>
<li>Tag clouds</li>
</ul>
</li>
</ul>
</li>
<li>Lists
<ul>
<li>Iterators</li>
</ul>
</li>
<li>Queues
<ul>
<li>Priority based processing</li>
<li>Pipes</li>
<li>Stacks</li>
</ul>
</li>
<li>Trees
<ul>
<li>recursion</li>
<li>sorted sets using comparators
<ul>
<li>sort by custom criteria</li>
<li>spatial subdivision (quadtree, octree etc.)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>XML
<ul>
<li>standard formats
<ul>
<li>Atom</li>
<li>RSS</li>
</ul>
</li>
<li>code generation from data model
<ul>
<li>XML Schema</li>
<li>JAXB</li>
</ul>
</li>
<li>Defining your own formats
<ul>
<li>Loading/saving app state</li>
<li>Presets</li>
<li>Configuration</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li>Aggregation
<ul>
<li>merging of sources and/or time samples</li>
<li>set theory
<ul>
<li>union</li>
<li>intersection</li>
<li>difference</li>
<li>relationships (1:1, 1:N, N:M)</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 id="Visualisation">Visualisation</h4>
<ul>
<li>basic graph theory</li>
<li>finding &amp; creating metaphors</li>
<li>techniques
<ul>
<li>geometry basics</li>
<li>coordinate systems
<ul>
<li>spherical (Geomapping example)</li>
<li>polar (color transforms)</li>
<li>cartesian</li>
</ul>
</li>
<li>vector maths</li>
<li>mapping/geometric transformations
<ul>
<li>M-&gt;N dimensions</li>
<li>time -&gt; space</li>
</ul>
</li>
<li>mesh generation</li>
</ul>
</li>
<li>animation
<ul>
<li>interpolation curves</li>
<li>state transitions</li>
<li>viewport changes
<ul>
<li>transformation matrix</li>
<li>camera control (e.g. 3rd person camera)</li>
</ul>
</li>
</ul>
</li>
<li>exporting data
<ul>
<li>high res bitmap</li>
<li>PDF</li>
<li>image sequence + automatic FFMPEG assembly</li>
<li>3D data for digital fabrication</li>
</ul>
</li>
</ul>
<h3 id="Day3Interactions">Day 3: Interactions</h3>
<p>Building on previous day exercises</p>
<h4 id="HCI">HCI</h4>
<ul>
<li>Wiimote</li>
<li>Mobile</li>
<li>Computer vision</li>
<li>TUIO / OSC
<ul>
<li>
<ul>
<li>multitouch</li>
<li>reacTIVision</li>
<li>external devices</li>
</ul>
</li>
</ul>
</li>
<li>QRCodes</li>
<li>Location triggers
<ul>
<li>GPS/compass based AR</li>
</ul>
</li>
<li>Serial input
<ul>
<li>Firmata</li>
</ul>
</li>
</ul>
<h4 id="Machinemachineinteractions">Machine-machine interactions</h4>
<ul>
<li>asynchronous event handling
<ul>
<li>twitter updates</li>
<li>reacting to Pachube sensor data</li>
</ul>
</li>
<li>multi-threading</li>
<li>network communications/protocols
<ul>
<li>UDP</li>
<li>OSC</li>
</ul>
</li>
</ul>
<h3 id="Day4Generativetechniques">Day 4: Generative techniques</h3>
<p>Building on previous day exercises</p>
<h4 id="Processesasdesigntools">Processes as design tools</h4>
<ul>
<li>inputs
<ul>
<li>observation</li>
<li>abstraction</li>
<li>mental model building</li>
</ul>
</li>
<li>behaviour
<ul>
<li>parametrization</li>
<li>rules</li>
<li>feedback</li>
</ul>
</li>
<li>simulation
<ul>
<li>agents</li>
<li>automata</li>
<li>erosion</li>
<li>fluids</li>
<li>particles</li>
<li>physics</li>
</ul>
</li>
<li>randomness
<ul>
<li>balance of control</li>
<li>bias</li>
<li>chaos vs. determinism</li>
<li>role of authorship?</li>
<li>techniques &amp; differences</li>
</ul>
</li>
</ul>
<h3 id="Day57Workonownprojects">Day 5-7: Work on own projects</h3>
<h4>Process</h4>
<ul>
<li>If possible form pairs/groups</li>
<li>2 reviews/status reports/discussion per day with all<br />
participants</li>
<li>Karsten giving help &amp; support to all groups</li>
<li>Final review and presentation on Sunday PM</li>
<li>Project documentations</li>
</ul>
<p>And once again, please head over to <a href="http://bit.ly/olharesdeprocessing" onclick="pageTracker._trackPageview('/outgoing/bit.ly/olharesdeprocessing?referer=');">this site</a> for further organisational things &amp; the signup form&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2010/06/olhares-de-processing-porto-workshop/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Processing Paris workshop</title>
		<link>http://toxiclibs.org/2010/04/processing-paris-workshop/</link>
		<comments>http://toxiclibs.org/2010/04/processing-paris-workshop/#comments</comments>
		<pubDate>Tue, 13 Apr 2010 01:44:33 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=306</guid>
		<description><![CDATA[After several earlier announcements on Twitter &#38; the Processing forums, here&#8217;s another (last) call for people who&#8217;d still like to be part of this (at the time of writing less than 5 places are left): On April 23 &#38; 24, 2010 I&#8217;ll be teaching an advanced Processing, Eclipse &#38; toxiclibs workshop as part of the [...]]]></description>
			<content:encoded><![CDATA[<p>After several earlier announcements on <a href="http://twitter.com/processingparis" onclick="pageTracker._trackPageview('/outgoing/twitter.com/processingparis?referer=');">Twitter</a> &amp; the <a href="http://processing.org/discourse/yabb2/YaBB.pl?num=1267779630" onclick="pageTracker._trackPageview('/outgoing/processing.org/discourse/yabb2/YaBB.pl?num=1267779630&amp;referer=');">Processing forums</a>, here&#8217;s another (last) call for people who&#8217;d still like to be part of this (at the time of writing less than 5 places are left):</p>
<p>On April 23 &amp; 24, 2010 I&#8217;ll be teaching an advanced Processing, Eclipse &amp; toxiclibs workshop as part of the <a href="http://processingparis.ning.com" onclick="pageTracker._trackPageview('/outgoing/processingparis.ning.com?referer=');">Processing Paris</a> activities organized by the talented <a href="http://cargocollective.com/mwebster" onclick="pageTracker._trackPageview('/outgoing/cargocollective.com/mwebster?referer=');">Mr. Webster</a> &amp; David Abouna-Tomé from <a href="http://offf.ws" onclick="pageTracker._trackPageview('/outgoing/offf.ws?referer=');">OFFF</a>.</p>
<p><a href="http://www.flickr.com/photos/toxi/4516505474" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/4516505474?referer=');"><img class="aligncenter size-large wp-image-309" title="the memory tree (sketch)" src="http://toxiclibs.org/wp-content/uploads/2010/04/tree-1271117113-680x382.png" alt="" width="680" height="382" /></a></p>
<h2>The Memory Tree</h2>
<p>During the 2 days of the <a href="http://processingparis.ning.com/profiles/blogs/atelier-advanced-content" onclick="pageTracker._trackPageview('/outgoing/processingparis.ning.com/profiles/blogs/atelier-advanced-content?referer=');">advanced Processing Paris workshop</a> we will create an interactive installation called The Memory Tree. The installation will consist of a large projection of a generative, slowly growing 3D tree whose leaves are all made up from messages/thoughts left by visitors and workshop participants.</p>
<p>These messages can either be submitted as voice via mobile phones, Skype or IM, but will also be harvested automatically via tagged content from Flickr and Twitter. The tree will grow and become more complex with every new message collected and so slowly form a browsable history of its creation during the workshop, but also document the reactions of exhibition visitors. Visitors can interact with the installation via a mouse (or Wiimote, if we&#8217;re quick&#8230;) to change the view of the tree, zoom in, and focus particular messages/images or play recorded voice messages. There could also be a mode where the user directs a &#8220;cursor&#8221; freely between the various tree branches and listens to all voice messages associated with leaves in the cursor&#8217;s proximity. This playback would use 3D audio so that when the focal point is moved, the recorded voices move around in space accordingly and are creating an immersive audio collage. Voices closer to the cursor will play louder than ones further away.</p>
<p>The installation concept will nicely combine a number of different concepts, technologies and programming techniques. It&#8217;ll also educate participants about the distributed nature of technologies available and the importance of open standards acting as technological glue between them.</p>
<p><a href="http://www.flickr.com/photos/toxi/4515869669" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/4515869669?referer=');"><img class="aligncenter size-large wp-image-311" title="The Memory Tree (sketch)" src="http://toxiclibs.org/wp-content/uploads/2010/04/tree-1271117014-680x382.png" alt="" width="680" height="382" /></a></p>
<h2>Scope</h2>
<p>Amongst other things, we will cover:</p>
<ul>
<li>core 3D geometry techniques: vectors, matrices, quaternions, cameras, curves, texture mapping</li>
<li>complex mesh creation with volumetric modelling</li>
<li>working with OpenGL</li>
<li>dealing with parallel processes using multi-threading</li>
<li>working with 3rd party libraries (mainly from toxiclibs.org)</li>
<li>multi-channel audio playback</li>
<li>working with XML efficiently (using JAXB)</li>
<li>parsing RSS/Atom feeds (Flickr, Twitter integration)</li>
<li>working with (and creating) REST based web services</li>
<li>designing an application data model</li>
<li>object oriented architecture as key enabler for flexible designs</li>
</ul>
<p>The installation will be obviously using Processing as core platform, however we will use <a href="http://eclipse.org" onclick="pageTracker._trackPageview('/outgoing/eclipse.org?referer=');">Eclipse</a> as development environment to make development faster, easier and more efficient. Participants should have a medium/firm grasp of Processing and feel comfortable with experimenting with new concepts &amp; techniques with a looming deadline.</p>
<p>If you want to sign up for this, please head over to: <a href="http://processingparis.ning.com" onclick="pageTracker._trackPageview('/outgoing/processingparis.ning.com?referer=');">processingparis.ning.com</a></p>
<p>The images are above and below are some very early explorations of a deterministic random 3D tree generator. I&#8217;m currently working on a proof-of-concept of some of the above ideas, mainly in order to help us be as efficient as possible on these two workshop days&#8230;</p>
<p>The images below are showing the combination of the generated tree structures above with <a href="http://toxiclibs.org/category/volumeutils/">volumeutils</a> to create 3D meshes of the trees&#8230;</p>
<p><a href="http://www.flickr.com/photos/toxi/4516521668" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/4516521668?referer=');"><img class="aligncenter size-large wp-image-312" title="tree-1271103530" src="http://toxiclibs.org/wp-content/uploads/2010/04/tree-1271103530-680x382.png" alt="" width="680" height="382" /></a></p>
<p><a href="http://www.flickr.com/photos/toxi/4516522778" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/4516522778?referer=');"><img class="aligncenter size-large wp-image-314" title="tree-1271112557" src="http://toxiclibs.org/wp-content/uploads/2010/04/tree-1271112557-680x382.png" alt="" width="680" height="382" /></a></p>
<p><a href="http://www.flickr.com/photos/toxi/4516522644" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/4516522644?referer=');"><img class="aligncenter size-large wp-image-313" title="tree-1271112532" src="http://toxiclibs.org/wp-content/uploads/2010/04/tree-1271112532-680x382.png" alt="" width="680" height="382" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2010/04/processing-paris-workshop/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>verletphysics in the wild</title>
		<link>http://toxiclibs.org/2010/02/verletphysics-in-the-wild/</link>
		<comments>http://toxiclibs.org/2010/02/verletphysics-in-the-wild/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 10:27:52 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Showcase]]></category>
		<category><![CDATA[verletphysics]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=248</guid>
		<description><![CDATA[Here&#8217;s a quick note of 2 projects/experiments by other users of the 3D version of the physics engine: First up is Ricardo Sanchez, one of those guys who had been hindered by the lack of demos &#38; documentation last year and has been in touch a few times about the physics engine. His questioning also [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a quick note of 2 projects/experiments by other users of the 3D version of the <a href="http://toxiclibs.org/category/verletphysics/">physics engine</a>:</p>
<p>First up is <a href="http://www.nardove.com/blog/" onclick="pageTracker._trackPageview('/outgoing/www.nardove.com/blog/?referer=');">Ricardo Sanchez</a>, one of those guys who had been hindered by the lack of demos &amp; documentation last year and has been in touch a few times about the physics engine. His questioning also directly triggered me to do a few more demos, which are now bundled with the last couple releases. A few days ago he excitedly told me that he&#8217;s finished his project and I wanted to share it with you here too:</p>
<p><a href="http://www.nardove.com/jellies/" onclick="pageTracker._trackPageview('/outgoing/www.nardove.com/jellies/?referer=');"><img class="aligncenter size-full wp-image-247" title="nardove_jelly" src="http://toxiclibs.org/wp-content/uploads/2010/02/nardove_jelly.jpg" alt="Nardove's Jellies" width="639" height="400" /></a></p>
<p>You can download the Processing source code for this sketch from the <a href="http://www.nardove.com/jellies/" onclick="pageTracker._trackPageview('/outgoing/www.nardove.com/jellies/?referer=');">project website</a> and read some <a href="http://www.nardove.com/blog/?p=248" onclick="pageTracker._trackPageview('/outgoing/www.nardove.com/blog/?p=248&amp;referer=');">more about his process on his blog</a>.</p>
<p>The other experiment I found is a nice showcase of the <a href="http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src.physics/toxi/physics/constraints/SphereConstraint.java" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src.physics/toxi/physics/constraints/SphereConstraint.java?referer=');"><code>SphereConstraint</code></a> in action to create a, well spherical, boundary for the physical simulation space. FYI the constraint can also be inverted and be configured to work as obstacle instead, not allowing any particles within the volume of the sphere. This can be achieved via a flag to its constructor.</p>
<p><iframe src="http://player.vimeo.com/video/9535398" width="680" height="383" frameborder="0"></iframe></p>
<p>The effect is quite interesting and somewhat reminds me of <a href="http://okdeluxe.co.uk/" onclick="pageTracker._trackPageview('/outgoing/okdeluxe.co.uk/?referer=');">Mikkel Koser&#8217;s</a> &amp; <a href="http://www.shiftcontrol.dk/" onclick="pageTracker._trackPageview('/outgoing/www.shiftcontrol.dk/?referer=');">shiftControl&#8217;s</a> recent <a href="http://okdeluxe.co.uk/cop15/index.html" onclick="pageTracker._trackPageview('/outgoing/okdeluxe.co.uk/cop15/index.html?referer=');">COP15 identity</a>, although the behaviour of particles there is far more complex.</p>
<p>More detailed info about the most recent release and the behaviour changes it caused will be posted asap.</p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2010/02/verletphysics-in-the-wild/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recode submissions</title>
		<link>http://toxiclibs.org/2010/01/decoderecode-submissions/</link>
		<comments>http://toxiclibs.org/2010/01/decoderecode-submissions/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 02:14:00 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Showcase]]></category>
		<category><![CDATA[volumeutils]]></category>
		<category><![CDATA[decode]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[variation]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://toxiclibs.postspectacular.com/?p=85</guid>
		<description><![CDATA[Here&#8217;re four of my personal favourites of the many submissions to the Recode competition of the V&#38;A Decode identity, which closed last Sunday&#8230; I&#8217;m not part of the judging panel, but I&#8217;m looking forward to find out if one of them will be chosen to be shown on the cross-track projectors throughout London Underground. Generative [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;re four of my personal favourites of the many submissions to the Recode competition of the <a href="/2009/12/va-decode-generative-identity/">V&amp;A Decode identity</a>, which closed last Sunday&#8230; I&#8217;m not part of the judging panel, but I&#8217;m looking forward to find out if one of them will be chosen to be shown on the cross-track projectors throughout London Underground. Generative art for the masses! :)</p>
<p><iframe src="http://player.vimeo.com/video/8613900" width="680" height="382" frameborder="0"></iframe><br />
By <a href="http://www.vimeo.com/oampo" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/oampo?referer=');">Joe Turner</a></p>
<p><iframe src="http://player.vimeo.com/video/8658509" width="680" height="382" frameborder="0"></iframe><br />
By <a href="http://www.vimeo.com/user2007615" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/user2007615?referer=');">DieTapete</a></p>
<p><iframe src="http://player.vimeo.com/video/8556433" width="680" height="382" frameborder="0"></iframe><br />
By <a href="http://www.vimeo.com/user1584689" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/user1584689?referer=');">Stefan Mylleager</a></p>
<p><iframe src="http://player.vimeo.com/video/8051278" width="680" height="382" frameborder="0"></iframe><br />
By <a href="http://www.vimeo.com/liasomething" onclick="pageTracker._trackPageview('/outgoing/www.vimeo.com/liasomething?referer=');">Lia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2010/01/decoderecode-submissions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ginger section</title>
		<link>http://toxiclibs.org/2010/01/ginger-section/</link>
		<comments>http://toxiclibs.org/2010/01/ginger-section/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 22:21:08 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Showcase]]></category>
		<category><![CDATA[volumeutils]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[contour]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[video]]></category>
		<category><![CDATA[volumetric]]></category>

		<guid isPermaLink="false">http://toxiclibs.postspectacular.com/?p=61</guid>
		<description><![CDATA[It&#8217;s always still a nice surprise to spot other people&#8217;s experiments with these libraries in the wild. Just came across this beautiful example of using volumeutils by mariusz0z0Bydgoszczy, a cross section of an imaginary plant. Unfortunately no further info is available about the actual growth process, though it looks like a semi-random particle walk or [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always still a nice surprise to spot other people&#8217;s experiments with these libraries in the wild. Just came across this beautiful example of using <a href="/category/volumeutils">volumeutils</a> by <a href="http://www.youtube.com/user/mariusz0z0Bydgoszczy" onclick="pageTracker._trackPageview('/outgoing/www.youtube.com/user/mariusz0z0Bydgoszczy?referer=');">mariusz0z0Bydgoszczy</a>, a cross section of an imaginary plant. Unfortunately no further info is available about the actual growth process, though it looks like a semi-random particle walk or <a href="http://en.wikipedia.org/wiki/Diffusion-limited_aggregation" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Diffusion-limited_aggregation?referer=');">DLA</a> method.</p>
<p><iframe title="YouTube video player" class="youtube-player" type="text/html" width="680" height="382" src="http://www.youtube.com/embed/Gqu-2n2hidg" frameborder="0" allowFullScreen="true"> </iframe></p>
<p>I especially like the amount &amp; colours of the contour layers used to visualize different densities. A similar (only in principle) thought also lead to the concept for the <a href="/2009/12/va-decode-generative-identity/">V&amp;A Decode Identity</a> completed recently. Just create a VolumetricSpace instance, use one of the preset VolumetricBrushes (or create your own one through sub-classing), use it to manipulate the &#8220;density&#8221; in the space and then pass the space instance to a IsoSurface to turn it into a TriangleMesh. Et voila! <a href="http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/volume/VolumeBrush/VolumeBrush.pde" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/volume/VolumeBrush/VolumeBrush.pde?referer=');">Example code</a> for this basic approach comes with the <a href="http://code.google.com/p/toxiclibs/downloads/list" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/downloads/list?referer=');">volumeutils library download</a>.</p>
<p><strong>UPDATE:</strong> There&#8217;s also an older, alternative version which is using sensor inputs to control its growth (so maybe the above process is related or even the same)&#8230;</p>
<p><iframe src="http://player.vimeo.com/video/7594282" width="680" height="382" frameborder="0"></iframe></p>
<blockquote><p>&#8220;this rhizome grows only if PIR sensor doesn&#8217;t detect movement [either nobody is in the room, or you stay still] amount of light measured by photocell influences branches girth. in this way, resulting form is a diagram of changing environmental conditions.&#8221;</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2010/01/ginger-section/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>V&amp;A Decode generative identity</title>
		<link>http://toxiclibs.org/2009/12/va-decode-generative-identity/</link>
		<comments>http://toxiclibs.org/2009/12/va-decode-generative-identity/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 12:24:38 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Showcase]]></category>
		<category><![CDATA[volumeutils]]></category>

		<guid isPermaLink="false">http://toxiclibs.postspectacular.com/?p=40</guid>
		<description><![CDATA[Fresh off the back of designing &#038; building the interactive identity &#038; installation for last year&#8217;s onedotzero festival with W+K London, the Victoria and Albert Museum (in collaboration with onedotzero too) commissioned me to design a &#8220;truly malleable, digital identity&#8221; for their new landmark exhibition Decode: Digital Design Sensations and providing it as open source. [...]]]></description>
			<content:encoded><![CDATA[<p>Fresh off the back of designing &#038; building the <a href="http://postspectacular.com/work/onedotzero/" onclick="pageTracker._trackPageview('/outgoing/postspectacular.com/work/onedotzero/?referer=');">interactive identity &#038; installation for last year&#8217;s onedotzero festival</a> with W+K London, the <a title="http://www.vam.ac.uk" href="http://www.vam.ac.uk/" onclick="pageTracker._trackPageview('/outgoing/www.vam.ac.uk/?referer=');">Victoria and Albert Museum</a> (in collaboration with <a href="http://onedotzero.com" onclick="pageTracker._trackPageview('/outgoing/onedotzero.com?referer=');">onedotzero</a> too) commissioned me to design a &#8220;truly malleable, digital identity&#8221; for their new landmark exhibition <a title="http://www.vam.ac.uk/decode/" href="http://www.vam.ac.uk/decode/" onclick="pageTracker._trackPageview('/outgoing/www.vam.ac.uk/decode/?referer=');">Decode: Digital  Design Sensations</a> and providing it as open source. This certainly is a first for a museum of this calibre, and of course it was an honour to be part of this. You can read <a href="http://postspectacular.com/work/decode" onclick="pageTracker._trackPageview('/outgoing/postspectacular.com/work/decode?referer=');">more about the project &#038; creation process on my website</a>&#8230;</p>
<p>To make the project as widely accessible as possible to people, it was built in Processing, but obviously with a major helping of various toxiclibs too(core, color &#038; volumeutils).</p>
<p>You can download, remix &amp; recode the original  piece and turn it into your own original artwork by downloading the app and/or source code from:</p>
<p><a href="http://decode.googlecode.com/" onclick="pageTracker._trackPageview('/outgoing/decode.googlecode.com/?referer=');">decode.googlecode.com</a></p>
<p>Some of these recoded versions might then even become the new Decode identity. Media partner, CBS Outdoor will be promoting the exhibition using the original piece across its large HD projection screens in platforms on  the London Underground from Monday, November 30, 2009. All recoded works submitted via the <a title="http://www.vam.ac.uk/decode/" href="http://www.vam.ac.uk/decode/" onclick="pageTracker._trackPageview('/outgoing/www.vam.ac.uk/decode/?referer=');">V&amp;A website</a> before January 11, 2010 will then be put forward into a competition to appear in an advert on <a title="http://www.cbsoutdoor-alive.co.uk/tube-and-bus/xtp.aspx" href="http://www.cbsoutdoor-alive.co.uk/tube-and-bus/xtp.aspx" onclick="pageTracker._trackPageview('/outgoing/www.cbsoutdoor-alive.co.uk/tube-and-bus/xtp.aspx?referer=');">CBS  Outdoor’s XTP screens</a>, further promoting the exhibition.</p>
<p><iframe src="http://player.vimeo.com/video/7791424" width="680" height="382" frameborder="0"></iframe></p>
<p><strong>UPDATE:</strong> <a href="http://toxiclibs.org/2010/01/decoderecode-submissions/">I&#8217;ve posted some of my favourite &#8220;recodes&#8221; over here.</a></p>
<p><a href="http://www.flickr.com/photos/toxi/sets/72157622483026212/" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/sets/72157622483026212/?referer=');">Some more images of the whole design journey are on flickr&#8230;</a></p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2009/12/va-decode-generative-identity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

