<?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>Zachernuk.com &#187; generative</title>
	<atom:link href="http://www.zachernuk.com/tag/generative/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.zachernuk.com</link>
	<description>The desk of Brandel Zachernuk</description>
	<lastBuildDate>Thu, 02 Feb 2012 22:36:14 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Housifier in Molehill</title>
		<link>http://www.zachernuk.com/2011/11/27/housifier-in-molehill/</link>
		<comments>http://www.zachernuk.com/2011/11/27/housifier-in-molehill/#comments</comments>
		<pubDate>Sun, 27 Nov 2011 06:11:02 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Housifier]]></category>
		<category><![CDATA[cutting]]></category>
		<category><![CDATA[doodles]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[laser]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[away3d]]></category>
		<category><![CDATA[broomstick]]></category>
		<category><![CDATA[bumpmap]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[hardware acceleration]]></category>
		<category><![CDATA[housifier]]></category>
		<category><![CDATA[molehill]]></category>
		<category><![CDATA[normalmap]]></category>
		<category><![CDATA[parametric]]></category>
		<category><![CDATA[ponoko]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=1076</guid>
		<description><![CDATA[First, the app. Note: This needs the latest Flash player to work. Click on the switch and drag the slider to change the settings, move the mouse on the canvas to rotate the box. var flashvars = { }; var params = { menu: "false", scale: "noScale", allowFullscreen: "true", allowScriptAccess: "always", bgcolor: "", wmode: "direct" [...]]]></description>
			<content:encoded><![CDATA[<p>First, the app. Note: This needs the latest Flash player to work. Click on the switch and drag the slider to change the settings, move the mouse on the canvas to rotate the box.</p>
<p><script src="http://www.zachernuk.com/wp-content/2011/11/js/swfobject.js"></script><script>		var flashvars = {		};		var params = {			menu: "false",			scale: "noScale",			allowFullscreen: "true",			allowScriptAccess: "always",			bgcolor: "",			wmode: "direct" 		};		var attributes = {			id:"BroomstickBumpmap"
		};		swfobject.embedSWF(			"http://www.zachernuk.com/wp-content/2011/11/BroomstickBumpmap.swf", 			"altContent", "500", "600", "11.0.0", 			"expressInstall.swf", 			flashvars, params, attributes);	</script></p>
<div id="altContent"> </div>
<p>Housifier basically consists of two parts: the &#8216;engineering&#8217; part, which decides what shapes to make, and the &#8216;visualization&#8217; part, which shows you what it&#8217;ll look like. They&#8217;re both equally important &#8211; while the engineering actually generates the object, it isn&#8217;t much good without being able to give people a realistic idea of what they&#8217;re getting!</p>
<p>Toward that end,  Adobe recently added hardware-accelerated 3d graphics to Flash. It means you can fit a lot more graphical fanciness into a flash app &#8211; I&#8217;ve been experimenting with it for a few weeks and I&#8217;m really pleased with what&#8217;s possible. There is a slight down-side, though &#8211; because the hardware acceleration is integrated into the system weirdly (it has to be underneath everything else), it&#8217;ll mean starting parts of Housifier from scratch. As you can tell from the proof-of-concept above, though, it&#8217;s definitely going to be worth it!</p>
<div id="attachment_1080" class="wp-caption alignnone" style="width: 213px"><a href="http://www.zachernuk.com/wp-content/2011/11/shiny.png"><img class="size-medium wp-image-1080" title="shiny" src="http://www.zachernuk.com/wp-content/2011/11/shiny-203x300.png" alt="" width="203" height="300" /></a><p class="wp-caption-text">What it looks like</p></div>
<div id="attachment_1079" class="wp-caption alignnone" style="width: 160px"><a href="http://www.zachernuk.com/wp-content/2011/11/molehouse.png"><img class="size-full wp-image-1079" title="molehouse" src="http://www.zachernuk.com/wp-content/2011/11/molehouse.png" alt="" width="150" height="146" /></a><p class="wp-caption-text">Icon for the page</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2011/11/27/housifier-in-molehill/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flash Fur Generator</title>
		<link>http://www.zachernuk.com/2011/04/10/fur-generator/</link>
		<comments>http://www.zachernuk.com/2011/04/10/fur-generator/#comments</comments>
		<pubDate>Sun, 10 Apr 2011 04:43:01 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[doodles]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[bitmapdata]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[fur]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=867</guid>
		<description><![CDATA[I made a fur generator! Change the sliders to alter the effect. You can load your own source files and save them out again too&#8230;  I&#8217;d love to see what you come up with! Note: For large images, click+drag on the picture to move around.  While you&#8217;ll only see a portion of it here, hitting [...]]]></description>
			<content:encoded><![CDATA[<p>I made a fur generator! Change the sliders to alter the effect. You can load your own source files and save them out again too&#8230;  I&#8217;d love to see what you come up with!</p>
<p><strong>Note: </strong>For large images, click+drag on the picture to move around.  While you&#8217;ll only see a portion of it here, hitting the &#8216;Save JPG&#8217; button will export the entire picture.</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_Fuzz2_585513535"
			class="flashmovie"
			width="800"
			height="550">
	<param name="movie" value="http://www.zachernuk.com/wp-content/2011/04/Fuzz2.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content/2011/04/Fuzz2.swf"
			name="fm_Fuzz2_585513535"
			width="800"
			height="550">
	<!--<![endif]-->
		
<p><a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>I&#8217;m not the first to make a fur generator in Flash &#8211; <a href="http://blog.andre-michelle.com/2008/fur-like-renderings/">Andre Michelle</a>, <a href="http://projects.stroep.nl/fur/">Mark Knol</a> and a bunch of others have already made some &#8211; but it was fun to make and I could see it being useful for generating fur textures for creatures, or making an application that would let you draw hilarious moustaches on your friends. As with <a href="http://www.zachernuk.com/2011/03/28/soundoid-audio-synthesizer-v0-5/">the Sequencer</a> , it&#8217;s surprising what kind of performance you can get out of Flash these days!</p>
<p>Oh, one thing that was extremely frustrating and somewhat silly: I had to use <a href="http://www.bytearray.org/?p=1089">Thibault Imbert&#8217;s custom JPG decoder</a> because of the security sandbox that the latest Flash player throws up around images loaded from external sources.  It&#8217;s possible to load and display them, but any programmatic attempt to access, say, pixel values, will result in an error that can&#8217;t be sidestepped.  It was a point of some frustration, since if I can see the picture, I want to be able to play with it!  Please correct me if I&#8217;m wrong, by the way &#8211; if anyone knows how to get pixel values from uploaded pictures in AS3/Flash 10+ I would be very grateful to hear!</p>
<p>This is a demonstration of what it looks like &#8211; just in case you can&#8217;t see:</p>
<p><img class="alignnone size-full wp-image-870" title="demo" src="http://www.zachernuk.com/wp-content/2011/04/demo.jpg" alt="" width="724" height="569" /></p>
<p>(courtesy of Mr. Aidan Fraser of<a href="http://aidan.rfm.co.nz/blog/"> Shide and Prame</a>)</p>
<p><a href="http://www.zachernuk.com/wp-content/2011/04/flashfur.png"><img class="alignnone size-full wp-image-871" title="flashfur" src="http://www.zachernuk.com/wp-content/2011/04/flashfur.png" alt="" width="64" height="64" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2011/04/10/fur-generator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamic sound in AS3</title>
		<link>http://www.zachernuk.com/2011/02/24/dynamic-sound-in-as3/</link>
		<comments>http://www.zachernuk.com/2011/02/24/dynamic-sound-in-as3/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 00:11:41 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[doodles]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[hci]]></category>
		<category><![CDATA[math]]></category>
		<category><![CDATA[sfx]]></category>
		<category><![CDATA[sine]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[waveform]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=821</guid>
		<description><![CDATA[
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_Dynamicsound_2129066740"
			class="flashmovie"
			width="600"
			height="400">
	<param name="movie" value="http://www.zachernuk.com/wp-content/2011/02/Dynamicsound.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content/2011/02/Dynamicsound.swf"
			name="fm_Dynamicsound_2129066740"
			width="600"
			height="400">
	<!--<![endif]-->
		 
	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object> Warning: Setting the squareness below 0 will result in a much louder sound than anything else, so be aware that you might need to turn the volume down! I&#8217;ve been reading a textbook called Human-Computer Interaction. It&#8217;s an excellent and extensive primer on the subject for someone [...]]]></description>
			<content:encoded><![CDATA[
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_Dynamicsound_666937019"
			class="flashmovie"
			width="600"
			height="400">
	<param name="movie" value="http://www.zachernuk.com/wp-content/2011/02/Dynamicsound.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content/2011/02/Dynamicsound.swf"
			name="fm_Dynamicsound_666937019"
			width="600"
			height="400">
	<!--<![endif]-->
		
<p><a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p><strong><span style="color: #800000;">Warning:</span></strong> Setting the squareness below 0 will result in a much louder sound than anything else, so be aware that you might need to turn the volume down!</p>
<p>I&#8217;ve been reading a textbook called <a href="http://www.hcibook.com">Human-Computer Interaction</a>. It&#8217;s an excellent and extensive primer on the subject for someone who hasn&#8217;t studied it formally in the past, although at nearly 8 years old it can&#8217;t be expected to be up-to-date on everything  in the field.  At first I thought that one of those areas was the use of sound in HCI, though when I thought more about it, I realized that sound is almost always an afterthought &#8211; in games, and especially in applications.</p>
<p>One of the reasons that sound-based UI isn&#8217;t explored more is that an interface that uses pre-recorded sound samples is limited in the number of ways that those samples can be used to convey information. Sound can be <em>generated on </em> the computer, though, so I decided to look at where more fine-grained feedback could be given to a user through sounds that can be modified at will to reflect even minor changes.  In order to do that I had to put together a system that would be able to generate a wide range of sounds that can take a range of parameters, and what you see before you is the initial result of that exploration.  Source code can be provided if desired.  I&#8217;m hoping to use this generative sound output in the near future &#8211; stay tuned!</p>
<p><img class="alignnone" src="http://www.zachernuk.com/wp-content/2011/02/tn.png" alt="" width="256" height="256" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2011/02/24/dynamic-sound-in-as3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>L-system in Unity3D, with Source</title>
		<link>http://www.zachernuk.com/2010/12/30/l-system-in-unity3d-with-source/</link>
		<comments>http://www.zachernuk.com/2010/12/30/l-system-in-unity3d-with-source/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 04:24:50 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[unity]]></category>
		<category><![CDATA[fractal]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[l-system]]></category>
		<category><![CDATA[Lsystem]]></category>
		<category><![CDATA[parameter]]></category>
		<category><![CDATA[parametric]]></category>
		<category><![CDATA[tree]]></category>
		<category><![CDATA[unity3d]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=723</guid>
		<description><![CDATA[Yesterday I was thinking about how to make a fun game about being a caterpillar, and came to the conclusion that the make or break would be in the trees.  Toward that end I wrote an L-system tree generator in Unity3D.  I&#8217;ve exposed a couple of variables so you can click on &#8216;em to change [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I was thinking about how to make a fun game about being a caterpillar, and came to the conclusion that the make or break would be in the trees.  Toward that end I wrote an L-system tree generator in Unity3D.  I&#8217;ve exposed a couple of variables so you can click on &#8216;em to change the rules that are being consulted to generate the tree.  Give it a try!</p>
<p><em>Please view the full post to see the Unity content.</em></p>
<h2>Technical details</h2>
<p>If you want the source code for this, you can grab it <a href="http://www.zachernuk.com/wp-content/2010/12/LTreeController.cs">here.</a></p>
<p>In the process of making this experiment, I discovered a couple things:  Establishing the parental hierarchy for objects in Unity3D by using  &lt;childNode&gt;.transform.parent = &lt;parentNode&gt;.transform  requires the additional re-zeroing of the localPosition, localEulerAngles and presumably localScale in order to take effect.  The assignment of the transform&#8217;s parent also updates the local values to preserve the current world-space orientation and scale of the transform.  I can see the argument for running things this way, but it wasn&#8217;t what I expected so it tripped me up for a while.</p>
<p><a href="http://www.zachernuk.com/wp-content/2010/12/treeee.png"><img title="treeee" src="http://www.zachernuk.com/wp-content/2010/12/treeee-300x281.png" alt="" width="300" height="281" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2010/12/30/l-system-in-unity3d-with-source/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Yes Unity can (do lots of particles)</title>
		<link>http://www.zachernuk.com/2010/05/11/yes-unity-can-do-lots-of-particles/</link>
		<comments>http://www.zachernuk.com/2010/05/11/yes-unity-can-do-lots-of-particles/#comments</comments>
		<pubDate>Tue, 11 May 2010 11:03:00 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[algorithmic]]></category>
		<category><![CDATA[face]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[obama]]></category>
		<category><![CDATA[particles]]></category>
		<category><![CDATA[unity]]></category>
		<category><![CDATA[unity3d]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=443</guid>
		<description><![CDATA[I was just looking into Unity&#8217;s 2D features &#8211; after having to build a line draw function myself I was wondering what I could get for free, and this is one of them! If you leave it running for a while you will see a hidden pattern in the particles. Also, &#8216;reset&#8217; will just reset [...]]]></description>
			<content:encoded><![CDATA[<p>I was just looking into Unity&#8217;s 2D features &#8211; after having to build a line draw function myself I was wondering what I could get for free, and this is one of them! If you leave it running for a while you will see a hidden pattern in the particles.  Also, &#8216;reset&#8217; will just reset the position of the particles&#8230; try it after you have a few thousand &#8211; it looks cool!</p>
<p><em>Please view the full post to see the Unity content.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2010/05/11/yes-unity-can-do-lots-of-particles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dabbling in Java 3D</title>
		<link>http://www.zachernuk.com/2010/04/10/dabbling-in-java-3d/</link>
		<comments>http://www.zachernuk.com/2010/04/10/dabbling-in-java-3d/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 04:13:44 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[anemone]]></category>
		<category><![CDATA[animation]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[j3d]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[java3d]]></category>
		<category><![CDATA[jogl]]></category>
		<category><![CDATA[procedural]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=413</guid>
		<description><![CDATA[I have been using Actionscript for a long time now. In order to break out of that, I have started to play around with some slightly more &#8216;direct&#8217; languages &#8211; while Java is by no means a &#8216;low level&#8217; language, I thought it would be worth making baby steps down from the convenient-but-inefficient heights of [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using Actionscript for a long time now.  In order to break out of that, I have started to play around with some slightly more &#8216;direct&#8217; languages &#8211; while Java is by no means a &#8216;low level&#8217; language, I thought it would be worth making baby steps down from the convenient-but-inefficient heights of Flash down to the powerful-but-fiddly directness of C/C++.  Towards that end, I have been reading through the tutorials for <a href="http://java.sun.com/developer/onlineTraining/java3d/index.html">the Java 3D API tutorial</a>, and despite being pretty obtuse at the outset, it gets fun pretty quickly.</p>
<p>I believe this could just as easily been produced in <a href="http://www.processing.org">processing</a> but I find the lack of assistance from the IDE to be too frustrating to manage.  On the other hand, though, processing / Java is apparently very similar to the kind of instruction set that can be compiled on to <a href="http://www.sparkfun.com/commerce/categories.php?c=103">arduino </a>micro-controllers.  Hopefully more on that later! In the meantime, here is a video of my anemone:<br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="480" height="385" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/CXwi74uz1T8&amp;hl=en_GB&amp;fs=1&amp;" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="480" height="385" src="http://www.youtube.com/v/CXwi74uz1T8&amp;hl=en_GB&amp;fs=1&amp;" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Note: the jitter is from the capture process &#8211; I am using <a href="http://camstudio.org/">CamStudio </a>to grab the footage, which requires a little more of the system than Java wants to give up.  If you want to <a href="https://java3d.dev.java.net/binary-builds.html">install Java3D</a>, you can <a href="http://www.zachernuk.com/wp-content/2010/04/">view the Applet</a> at a much higher resolution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2010/04/10/dabbling-in-java-3d/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Digital sand</title>
		<link>http://www.zachernuk.com/2010/03/17/digital-sand/</link>
		<comments>http://www.zachernuk.com/2010/03/17/digital-sand/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 03:07:20 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[doodles]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[doodle]]></category>
		<category><![CDATA[emergent]]></category>
		<category><![CDATA[generative]]></category>
		<category><![CDATA[sand]]></category>
		<category><![CDATA[simulation]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=400</guid>
		<description><![CDATA[As I have mentioned earlier, what excites me most about gaming &#8211; and computers in general &#8211; is the capability for simulation. If we create a system that obeys the same rules as reality, we can use that system to better understand reality. Not only that, it allows us to test out new theories and [...]]]></description>
			<content:encoded><![CDATA[<p>As I have mentioned earlier,  what excites me most about gaming &#8211; and computers in general &#8211; is the capability for simulation. If we create a system that obeys the same rules as reality, we can use that system to better understand reality.  Not only that, it allows us to test out new theories and ask  &#8220;what would happen if things were a little different?&#8221;</p>
<p>The complexity of the thing you simulate doesn&#8217;t have to be much either.  The term &#8220;computer simulation&#8221; often evokes imagery of simulating enormous and complex systems &#8211; weather patterns or the turbulence flow from a large-scale atomic detonation &#8211; but simulation can be useful on a more modest scale too.  In University, a friend of mine threw together a blackjack simulation.  He wanted to see the patterns of how well a virtual player does when it follows hard-and-fast rules &#8211; refusing cards over a total of 16, 18 and so on.* The first programmable computer, the Z3, ran at a staggering 10 Hertz &#8211; roughly one <em>billionth </em>of the speed of a modern computer.  Even at that speed, though, it brought the science of aviation forward by a decade through simulating wing flutter at rates of execution that were previously impossible to reach.</p>
<p>The example I often use to explain my fascination with simulation is this:  Imagine a child&#8217;s sand-pail at a beach.  Imagine the light dusting of sand it gets from a long day of use.  The smoothness at the joints, the build-up inside any detailing and under the lip.  Now imagine taking the bucket away and leaving the sand &#8211; the suggestion of form but not the form itself.  Next to impossible in reality, but in a simulation, once you have the base action down, setting things to on or off is the easiest thing in the world.</p>
<p><a href="http://www.zachernuk.com/wp-content/2010/03/sandy.PNG"><img class="alignnone size-full wp-image-407" title="sandy" src="http://www.zachernuk.com/wp-content/2010/03/sandy.PNG" alt="sandy" width="293" height="274" /></a></p>
<p>I&#8217;ve been using this example of the sand and the bucket for years now, and recently I decided to actually do something about it &#8211; make a sand simulation that can show you what I mean, rather than just telling people about it.  Here it is! Just move the mouse around on the play field to shift the sand.  If you want extra options for playing with the sand fall or changing the pen size, open the options panel.  Many thanks to Aidan of <a href="http://aidan.rfm.co.nz/blog/">Shade and Prime</a> for the fantastic elevation visualizer.</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_SandDisplacer_1098508629"
			class="flashmovie"
			width="400"
			height="600">
	<param name="movie" value="http://www.zachernuk.com/wp-content/2010/03/SandDisplacer.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content/2010/03/SandDisplacer.swf"
			name="fm_SandDisplacer_1098508629"
			width="400"
			height="600">
	<!--<![endif]-->
		
<p><a href="http://adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>

	<!--[if !IE]>-->
	</object>
	<!--<![endif]-->
</object>
<p>iPhone app, anyone?</p>
<p>*  While it might seem like this is a less-than-useful endeavour to use computers for, I&#8217;m sure we can all agree that it is better to test a virtual player losing virtual money than trying it at your local casino.  In fact, after finding that there is no foolproof approach to blackjack, he gave up on it altogether and started putting his money in the stock market&#8230; you win some, you lose some.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2010/03/17/digital-sand/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

