<?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; volumeutils</title>
	<atom:link href="http://toxiclibs.org/category/volumeutils/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>Metropolitan Works workshop: Facade tool</title>
		<link>http://toxiclibs.org/2011/12/metworks-workshop-facade/</link>
		<comments>http://toxiclibs.org/2011/12/metworks-workshop-facade/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 12:47:17 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[verletphysics]]></category>
		<category><![CDATA[volumeutils]]></category>
		<category><![CDATA[workshop]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=557</guid>
		<description><![CDATA[As announced a few months ago, I recently taught two London based workshops and in the interest of learning, the source code of various examples done at both events is now available in the learn.postspectacular.com repository. Released under the same license as toxiclibs itself, LGPLv2.1. The most recent workshop took place at Metropolitan Works, the [...]]]></description>
			<content:encoded><![CDATA[<p>As announced a few months ago, I recently taught <a href="http://toxiclibs.org/2011/09/london-workshops/">two London based workshops</a> and in the interest of learning, the source code of various examples done at both events is now available in the <a href="http://learn.postspectacular.com/hg/" onclick="pageTracker._trackPageview('/outgoing/learn.postspectacular.com/hg/?referer=');">learn.postspectacular.com</a> repository. Released under the same license as toxiclibs itself, LGPLv2.1.</p>
<p>The most recent workshop took place at <a href="http://www.metropolitanworks.org/" onclick="pageTracker._trackPageview('/outgoing/www.metropolitanworks.org/?referer=');">Metropolitan Works</a>, the London Metropolitan University&#8217;s digital fabrication facility. Under the overarching theme of digital fabrication, initially this workshop was focused almost exclusively on geometry aspects and how to use various toxiclibs classes to construct shapes &amp; forms and solve problems in this domain. During the 2nd workshop session, I wanted to combine several related topics into a single large exercise and we started building a little hypothetical facade design tool.</p>
<p>Over the past couple of weeks I squeezed in some extra time to finish cleaning up and adding comments (lots of!) to the source code of that tool with some further descriptions below&#8230;</p>
<p>Facade designs generally require to take into account the varying light conditions &amp; requirements of the space sections on the inside of the building. Using strategically placed particles &amp; attractors we can model &amp; modulate these different spatial densities on the facade surface&#8230;</p>
<div id="attachment_573" class="wp-caption aligncenter" style="width: 690px"><a href="http://toxiclibs.org/wp-content/uploads/2011/12/facade-1.png"><img class="size-large wp-image-573 " title="facade-1" src="http://toxiclibs.org/wp-content/uploads/2011/12/facade-1-680x394.png" alt="" width="680" height="394" /></a><p class="wp-caption-text">Step 1: Strategically place some attractors &amp; particles to modulate the spatial density of the facade</p></div>
<div id="attachment_572" class="wp-caption aligncenter" style="width: 690px"><a href="http://toxiclibs.org/wp-content/uploads/2011/12/facade-2.png"><img class="size-large wp-image-572" title="facade-2" src="http://toxiclibs.org/wp-content/uploads/2011/12/facade-2-680x394.png" alt="" width="680" height="394" /></a><p class="wp-caption-text">Step 2: Connect particles into a 2D mesh using Delaunay triangulation...</p></div>
<div id="attachment_571" class="wp-caption aligncenter" style="width: 690px"><a href="http://toxiclibs.org/wp-content/uploads/2011/12/facade-3.png"><img class="size-large wp-image-571" title="facade-3" src="http://toxiclibs.org/wp-content/uploads/2011/12/facade-3-680x394.png" alt="" width="680" height="394" /></a><p class="wp-caption-text">Step 2a: ...or use Voronoi to create more cell like patterning</p></div>
<div id="attachment_570" class="wp-caption aligncenter" style="width: 690px"><a href="http://toxiclibs.org/wp-content/uploads/2011/12/facade-4.png"><img class="size-large wp-image-570" title="facade-4" src="http://toxiclibs.org/wp-content/uploads/2011/12/facade-4-680x394.png" alt="" width="680" height="394" /></a><p class="wp-caption-text">Step 3: Map the 2D mesh onto the extruded profile of the facade</p></div>
<div id="attachment_569" class="wp-caption aligncenter" style="width: 690px"><a href="http://toxiclibs.org/wp-content/uploads/2011/12/facade-5.png"><img class="size-large wp-image-569" title="facade-5" src="http://toxiclibs.org/wp-content/uploads/2011/12/facade-5-680x394.png" alt="" width="680" height="394" /></a><p class="wp-caption-text">Step 4: Apply &amp; tweak surface deformation along normal vectors</p></div>
<div id="attachment_568" class="wp-caption aligncenter" style="width: 690px"><a href="http://toxiclibs.org/wp-content/uploads/2011/12/facade-6.png"><img class="size-large wp-image-568" title="facade-6" src="http://toxiclibs.org/wp-content/uploads/2011/12/facade-6-680x394.png" alt="" width="680" height="394" /></a><p class="wp-caption-text">Step 5: Produce a water tight Iso-surface mesh of the wireframe structure and export as STL for 3D printing</p></div>
<div id="attachment_579" class="wp-caption aligncenter" style="width: 690px"><a href="http://toxiclibs.org/wp-content/uploads/2011/12/facade-7.png"><img class="size-large wp-image-579" title="facade-7" src="http://toxiclibs.org/wp-content/uploads/2011/12/facade-7-680x394.png" alt="" width="680" height="394" /></a><p class="wp-caption-text">Result of using a more complex profile spline</p></div>
<p>Since we didn&#8217;t fully get to finish everything as a group, I have added several more features (some on popular <a href="http://twitter.com/#!/mark_lundin/status/145668310342696960" onclick="pageTracker._trackPageview('/outgoing/twitter.com/_/mark_lundin/status/145668310342696960?referer=');">demand</a>):</p>
<ul>
<li>Allow for selecting, repositioning &amp; adjusting of particle attractors</li>
<li>Produce 3d iso surface of facade wireframe/lattice mesh and export as STL</li>
<li>Allow selecting &amp; moving of points in spline editor component (incl. realtime updates in 3d wireframe preview)</li>
<li>Added user adjustable 3D surface deformation using simplex noise</li>
<li>Added toggle to switch between Delaunay &amp; Voronoi shapes</li>
<li>Adding arc ball controller to more naturally change 3D view orientation</li>
<li>Integrating mouse wheel to adjust zooming in 3D</li>
<li>Generally improved usability and made ControlP5 GUI more dynamic (some controllers are now context sensitive and only visible in certain display/edit modes)</li>
</ul>
<p>It&#8217;s almost a proper little tool now and should provide a lot of food for thought for the dear students (and maybe give them something to do over the holidays :)</p>
<p>You can download the entire Eclipse project from here: <a href="http://learn.postspectacular.com/hg/metworks-2011-facade/" onclick="pageTracker._trackPageview('/outgoing/learn.postspectacular.com/hg/metworks-2011-facade/?referer=');">learn.postspectacular.com/hg/metworks-2011-facade/</a></p>
<p>Please note, this project is a plain Java project (no Processing Eclipse plugin required) and contains all required libraries in the project&#8217;s /lib folder:</p>
<ul>
<li>Processing 1.5.1 + JOGL (only with OSX &amp; Win32/64 binaries)</li>
<li>ControlP5 0.5.4</li>
<li>pre-release of toxiclibs-0021</li>
</ul>
<p>Below are some quick steps to import the project into your Eclipse workspace:</p>
<ul>
<li>Download via the .zip link in the top toolbar&#8230;</li>
<li>Unzip to anywhere on your disk</li>
<li>Rename resulting folder into &#8220;metworks-2011-facade&#8221; (all lower case, use dashes, no quotes)</li>
<li>In Eclipse, choose File &gt; Import&#8230; &gt; General &gt; Existing projects into workspace&#8230;</li>
</ul>
<p><a href="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-import-general.png"><img class="aligncenter size-full wp-image-561" title="eclipse-import-general" src="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-import-general.png" alt="" width="598" height="430" /></a></p>
<ul>
<li>In the import dialog use the &#8220;select root directory&#8221; option and navigate to the folder in step 3</li>
<li>The project should now show up just below, make sure it&#8217;s ticked</li>
<li>Press &#8220;Finish&#8221;</li>
</ul>
<p><a href="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-import-project.png"><img class="aligncenter size-full wp-image-558" title="eclipse-import-project" src="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-import-project.png" alt="" width="620" height="612" /></a></p>
<ul>
<li>Back in the Eclipse workbench, open up the project in the project explorer&#8230;</li>
<li>Right click on the file &#8220;FacadeApp.launch&#8221; and choose &#8220;Run &gt; FacadeApp&#8221;&#8230; Have fun! That is all, if you&#8217;re on OSX&#8230;</li>
</ul>
<p><strong>Windows users will have to do a few more additional steps and edit the location of the native library components first</strong> (used by JOGL):</p>
<ul>
<li>Right click on the &#8220;metworks-2011-facade&#8221; project and choose &#8220;Properties &gt; Java Build Path &gt; Libraries&#8221;.</li>
<li>open the sub-tree for jogl.jar, select &#8220;Native library location&#8221; and then press the &#8220;Edit&#8230;&#8221; button</li>
</ul>
<p><a href="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-classpath-native-jogl.png"><img class="aligncenter size-large wp-image-560" title="eclipse-classpath-native-jogl" src="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-classpath-native-jogl-680x456.png" alt="" width="680" height="456" /></a></p>
<ul>
<li>Now choose the /lib/windows64 (or 32) folder inside your project folder and then confirm all changes. Then you can have fun too! :)</li>
</ul>
<p><a href="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-nativepath-edit.png"><img class="aligncenter size-full wp-image-559" title="eclipse-nativepath-edit" src="http://toxiclibs.org/wp-content/uploads/2011/12/eclipse-nativepath-edit.png" alt="" width="620" height="288" /></a>Some more brief overview of the different classes in the project&#8217;s /src folder:</p>
<ul>
<li><strong>FacadeApp</strong> &#8211; main application (extends PApplet)</li>
<li><strong>ParticleSystem</strong> &#8211; physics based particle simulation &amp; simple editor features for attractors</li>
<li><strong>SplineEditor</strong> &#8211; simple 2D curve editor for designing the facade profile</li>
<li><strong>FacadePoint</strong> &#8211; extension of Vec3D to include surface normal and normalized 2D position (needed for displacement)</li>
<li><strong>DisplacementStrategy</strong> &#8211; interface definition for defining concrete displacement operators (applied to FacadePoints)</li>
<li><strong>NoiseDisplacement</strong> &#8211; the currently sole available implementation of DisplacementStrategy, using 2d simplex noise</li>
<li><strong>ArcBall</strong> &#8211; re-usable arc ball view component for easier navigation/rotation of the 3D view</li>
</ul>
<p>Last, but definitely not least: Many, many dear thanks to <a href="http://arthurmani.com/" onclick="pageTracker._trackPageview('/outgoing/arthurmani.com/?referer=');">Arthur Mamou-Mani</a> and <a href="http://www.metropolitanworks.org" onclick="pageTracker._trackPageview('/outgoing/www.metropolitanworks.org?referer=');">Marcus Bowerman</a> for organising, your hospitality, 3d printing and making everything happen&#8230; We all hope to repeat something similar in the next year. You&#8217;ve been (and will be again) warned! :)</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2011/12/metworks-workshop-facade/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>simutils-0001: Gray-Scott reaction diffusion</title>
		<link>http://toxiclibs.org/2010/02/simutils-grayscott/</link>
		<comments>http://toxiclibs.org/2010/02/simutils-grayscott/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 08:05:39 +0000</pubDate>
		<dc:creator>toxi</dc:creator>
				<category><![CDATA[colorutils]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[simutils]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Usage]]></category>
		<category><![CDATA[volumeutils]]></category>

		<guid isPermaLink="false">http://toxiclibs.org/?p=217</guid>
		<description><![CDATA[This is part 2 of the discussion of the classes &#38; processes provided by the recently released simutils package. The first part of this series dealt with Diffusion-limited Aggregation (DLA) and this next process too is related to the simulated diffusion of particles. However, whereas the DLA process dealt with individual particles, this next one [...]]]></description>
			<content:encoded><![CDATA[<p>This is part 2 of the discussion of the classes &amp; processes provided by the recently released <a href="http://toxiclibs.org/category/simutils/">simutils</a> package. <a href="http://toxiclibs.org/2010/02/new-package-simutils/">The first part of this series dealt with Diffusion-limited Aggregation</a> (DLA) and this next process too is related to the simulated diffusion of particles. However, whereas the DLA process dealt with individual particles, this next one is only looking at the concentrations of particles of different &#8220;substances&#8221; in a two-dimensional simulation space.</p>
<p>The Gray-Scott reaction diffusion model is a member of a whole variety of <a href="http://en.wikipedia.org/wiki/Reaction-diffusion_system" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Reaction-diffusion_system?referer=');">RD systems</a>, popular largely due to its ability to produce a very varied number of biological looking (and behaving) patterns, both static and constantly changing. Some patterns are reminiscent of cell devision, gastrulation or the formation of spots &amp; stripes on furry animals. As with all RD models, these patterns are the result of an iterative process evaluating each cell of the simulation space based on the concentrations of the two main parameters (for Gray-Scott usually named <strong>f</strong> and <strong>K</strong>) of the reaction equation as well as taking into account the concentrations of these 2 substances in neighboring cells. So conceptually the reaction diffusion system lies somewhere between the isolated DLA process working with individual particles and the entirely rulebased evaluation of a cell&#8217;s neighborhood in traditional cellular automatas, which we will deal with in the next post.</p>
<p>The image below, by <a href="http://mrob.com/pub/comp/xmorphia/" onclick="pageTracker._trackPageview('/outgoing/mrob.com/pub/comp/xmorphia/?referer=');">Robert Munafo</a>, is a fantastically helpful map of possible patterns resulting from various combinations of the <strong>f</strong> and <strong>K</strong> coefficients. Click the image to go to his website and explore the parameters in more detail (there&#8217;re close-ups and videos of all interesting combinations).</p>
<p><a href="http://mrob.com/pub/comp/xmorphia/" onclick="pageTracker._trackPageview('/outgoing/mrob.com/pub/comp/xmorphia/?referer=');"><img class="alignnone size-large wp-image-245" title="gs-parameter-map" src="http://toxiclibs.org/wp-content/uploads/2010/02/gs-parameter-map-680x680.jpg" alt="GS parameter map" width="680" height="680" /></a></p>
<p>As with the other classes of the <a href="http://toxiclibs.org/category/simutils/">simutils</a> package, the GrayScott implementation comes with several small demos to help you get started. The most basic use case (<a href="http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/sim/HelloGrayScott/HelloGrayScott.pde" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/sim/HelloGrayScott/HelloGrayScott.pde?referer=');">HelloGrayScott</a>) is just setting up a simulation with default parameters and then allows you to draw in the simulation space with the mouse. Each frame, the reaction is updated, its new state translated into grayscale pixels and then rendered to the screen. The important thing to know here is that there&#8217;re 2 separate results states available, normally called the <strong>u</strong> and <strong>v</strong> buffers.</p>
<pre class="brush:java">
GrayScott gs;

// create a new simulation instance
// the "false" refers to a non-tiled space with walls
// set to true to create tiling patterns
gs=new GrayScott(width,height,false);

// configure the simulation params to:
// f=0.023, K=0.074
// diffusion speed for u buffer = 0.095
// diffusion speed for u buffer = 0.03
gs.setCoefficients(0.023,0.074,0.095,0.03);
</pre>
<p>The main <code>draw()</code> loop then just does this:</p>
<pre class="brush:java">
void draw() {
  if (mousePressed) {
    // set cells around mouse pos to max saturation
    gs.setRect(mouseX, mouseY,20,20);
  }
  loadPixels();
  // update simulation by 10 time steps per frame
  for(int i=0; i&lt;10; i++) gs.update(1);
  // read out the v buffer and translate into grayscale colors
  for(int i=0; i&lt;gs.v.length; i++) {
    float cellValue=gs.v[i];
    // the cell values in v are usually in the range 0.0 .. 0.33
    int col=255-(int)(min(255,cellValue*768));
    // use the col value for red, green and blue and set alpha to full opacity
    pixels[i]=col&lt;&lt;16|col&lt;&lt;8|col|0xff000000;
  }
  updatePixels();
}
</pre>
<p>To avoid this manual pixel pushing and enable us to make some of the subtle changes of densities more obvious, we can also use the handy (and also new) <a href="http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src.color/toxi/color/ToneMap.java" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src.color/toxi/color/ToneMap.java?referer=');"><code>ToneMap</code></a> class of the <a href="http://toxiclibs.org/category/colorutils/">colorutils</a> package. This allows us to map a number range to different positions (colors) on a multi-color gradient and so potentially better visualize the different densities. The basic usage of this class is shown below:</p>
<pre class="brush:java">
import toxi.color.*;

ToneMap toneMap;

// define a color gradient by adding colors at certain key points
// a gradient is like a 1D array with target colors at certain points
// all inbetween values are automatically interpolated (customizable too)
// this gradient here will contain 256 values
ColorGradient gradient=new ColorGradient();
gradient.addColorAt(0, NamedColor.BLACK);
gradient.addColorAt(128, NamedColor.RED);
gradient.addColorAt(192, NamedColor.YELLOW);
gradient.addColorAt(255, NamedColor.WHITE);

// now create a ToneMap instance using this gradient
// this maps the value range 0.0 .. 0.33 across the entire gradient width
// a 0.0 input value will be black, 0.33 white
toneMap=new ToneMap(0, 0.33, gradient);
</pre>
<p>Now we can refactor our Gray-Scott rendering code into something even simpler:</p>
<pre class="brush:java">
for(int i=0; i&lt;gs.v.length; i++) {
    // take a GS v value and turn it into a packed integer ARGB color value
    pixels[i]=toneMap.getARGBToneFor(gs.v[i]);
}
</pre>
<p>Btw. The <code>ToneMap</code> class is a nice example of the whole reusable &#8220;building block philosophy&#8221; of toxiclibs (and the object oriented approach in general). The class is simply a <a href="http://en.wikipedia.org/wiki/Object_composition" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Object_composition?referer=');">composition</a> of other library classes and under the hood delegates everything to these elements:</p>
<p><img src="http://toxiclibs.org/wp-content/uploads/2010/02/tonemap.png" alt="ToneMap composition" title="ToneMap composition" width="379" height="266" class="aligncenter size-full wp-image-275" /></p>
<p>All other GrayScott demos, as well as all Cellular Automata examples, make use of this ToneMap class, so do have a look at those for more reference&#8230; </p>
<p>Since a homogeneous configuration of the entire sim grid will always just provide one particular character/patterning, the <code>GrayScott</code> class has been designed with extension in mind. The <a href="http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/sim/CustomGrayScott/CustomGrayScott.pde" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/sim/CustomGrayScott/CustomGrayScott.pde?referer=');">CustomGrayScott</a> demo shows how to impose a pattern on the actual simulation parameters themselves, so that cells at different positions are evaluated using different parameters:</p>
<pre class="brush:java">
class PatternedGrayScott extends GrayScott {

  // our constructor just passes things on to the parent class
  PatternedGrayScott(int w, int h, boolean tiling) {
    super(w,h,tiling);
  }

  // this function is called for each cell
  // to retrieve its f coefficient
  public float getFCoeffAt(int x, int y) {
    // here we only take the x coordinate
    // and choose one of 2 options (even &#038; odd)
    x/=32;
    return 0==x%2 ? f : f-0.005;
  }

  // this function is called for each cell
  // to retrieve its K coefficient
  public float getKCoeffAt(int x, int y) {
    // here we only use the y coordinate
    // and create a gradient falloff for this param
    return k-y*0.00004;
  }
}
</pre>
<p>Instead of using the default GrayScott class, we only need to change one line in the setup() method to use our extended version instead:</p>
<pre class="brush:java">
GrayScott gs;

void setup() {
	size(200,200);
	gs=new PatternedGrayScott(width,height,false);
	...
}
</pre>
<p>The result of this is shown below&#8230; Easy, huh? :)</p>
<p><img class="alignnone size-full wp-image-193" title="CustomGrayScott001" src="http://toxiclibs.org/wp-content/uploads/2010/02/CustomGrayScott001.png" alt="" width="680" height="362" /></p>
<p>Having this mechanism in place, it can be also used to create more interesting types of masking. For a commission to produce a <a href="http://postspectacular.com/work/printmag/" onclick="pageTracker._trackPageview('/outgoing/postspectacular.com/work/printmag/?referer=');">cover design for Print Magazine</a> in 2008, I generated a type face from simple line &#038; arc segments and used it as mask to manipulate the concentrations of the f &#038; K parameters to achieve two different types of patterning: one for the inside of the letter shapes, the other for the outside&#8230;</p>
<p><iframe src="http://player.vimeo.com/video/1272071" width="680" height="383" frameborder="0"></iframe></p>
<p>The frames of that animation were then stacked up along the Z axis in 3D space and with the help of the <a href="http://toxiclibs.org/category/volumeutils/">volumeutils</a> classes turned into 3D mesh, <a href="http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src.core/toxi/geom/util/STLWriter.java" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/src.core/toxi/geom/util/STLWriter.java?referer=');">exported as STL format</a> (also see <a href="http://toxiclibs.org/docs/core/toxi/geom/util/TriangleMesh.html#saveAsSTL%28java.lang.String%29">TriangleMesh.saveAsSTL()</a>) and finally fabricated into the physical, 3D printed sculpture shown below. In a way, the sculpture can be seen as a map of its entire creation process&#8230;</p>
<p><img class="size-full wp-image-237" title="typeform_square_680" src="http://toxiclibs.org/wp-content/uploads/2010/02/typeform_square_680.jpg" alt="Type &amp; Form sculpture" width="680" height="680" /></p>
<p>Here&#8217;re some more rendered detail shots of the sculpture. <a href="http://postspectacular.com/work/printmag/" onclick="pageTracker._trackPageview('/outgoing/postspectacular.com/work/printmag/?referer=');">More information about this project is here</a> and the <a href="http://www.flickr.com/photos/toxi/sets/72157604724789091/" onclick="pageTracker._trackPageview('/outgoing/www.flickr.com/photos/toxi/sets/72157604724789091/?referer=');">related flickr set</a>.</p>
<p><img class="aligncenter size-full wp-image-265" title="typeform_detail1" src="http://toxiclibs.org/wp-content/uploads/2010/02/typeform_detail1.jpg" alt="" width="680" height="382" /></p>
<p><img src="http://toxiclibs.org/wp-content/uploads/2010/02/typeform_detail2.jpg" alt="" title="typeform_detail2" width="680" height="382" class="aligncenter size-full wp-image-266" /></p>
<p>Finally, the <a href="http://code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/sim/GrayScottImage/GrayScottImage.pde" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/toxiclibs/source/browse/trunk/toxiclibs/examples/sim/GrayScottImage/GrayScottImage.pde?referer=');"><code>GrayScottImage</code></a> demo shows another supported technique of using the library: the seeding of the simulation using a bitmap image.</p>
<p><img class="alignnone size-full wp-image-194" title="GrayScottImage002" src="http://toxiclibs.org/wp-content/uploads/2010/02/GrayScottImage002.png" alt="" width="680" height="362" /></p>
]]></content:encoded>
			<wfw:commentRss>http://toxiclibs.org/2010/02/simutils-grayscott/feed/</wfw:commentRss>
		<slash:comments>8</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>

