<?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; Uncategorized</title>
	<atom:link href="http://www.zachernuk.com/category/uncategorized/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>The first output from Housifier</title>
		<link>http://www.zachernuk.com/2011/12/21/the-first-output-from-housifier/</link>
		<comments>http://www.zachernuk.com/2011/12/21/the-first-output-from-housifier/#comments</comments>
		<pubDate>Tue, 20 Dec 2011 23:33:32 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Housifier]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[laser]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[ponoko]]></category>
		<category><![CDATA[prototyping]]></category>
		<category><![CDATA[shape]]></category>
		<category><![CDATA[vector]]></category>
		<category><![CDATA[box]]></category>
		<category><![CDATA[boxmaker]]></category>
		<category><![CDATA[cube]]></category>
		<category><![CDATA[housifier]]></category>
		<category><![CDATA[lasercut]]></category>
		<category><![CDATA[svg]]></category>
		<category><![CDATA[unity]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=1117</guid>
		<description><![CDATA[I finally ordered a box design from the current version of the Housifier box-maker application last week. I picked it up from the good people at Ponoko today, and it works! I already knew it worked &#8211; I had assembled it several times in various animation packages. You can see the way it should work [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zachernuk.com/wp-content/2011/12/realbox.jpg"><img src="http://www.zachernuk.com/wp-content/2011/12/realbox.jpg" alt="" title="realbox" width="512" height="512" class="alignnone size-full wp-image-1124" /></a><br />
I finally ordered a box design from the current version of the Housifier box-maker application last week. I picked it up from the good people at Ponoko today, and it works! I already knew it worked &#8211; I had assembled it several times in various animation packages. You can see the way it should work in the Unity3D app below. It&#8217;s a looping animation, and you can rotate around the object by moving the mouse on the screen:</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_assemblor_142443860"
			class="flashmovie"
			width="600"
			height="400">
	<param name="movie" value="http://www.zachernuk.com/wp-content/2011/12/assemblor.swf" />
	<param name="wmode" value="direct" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content/2011/12/assemblor.swf"
			name="fm_assemblor_142443860"
			width="600"
			height="400">
		<param name="wmode" value="direct" />
	<!--<![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>Knowing that it&#8217;ll work is still qualitatively different from <i>seeing</i> it work, though. Having the object in hand, and knowing that it was produced from an almost totally automated process is fantastic. I say almost because the part of the process where the shapes are packed into the minimum dimensions possible is not yet complete, but little by little the pieces are falling into place &#8211; not unlike the animation above! </p>
<p><del datetime="2011-12-23T01:53:41+00:00">A note on using Unity3D to view this: My apologies! I actually had this animation ready almost a week ago, and have been struggling with various conversion process from Blender and other applications through to either Away3D (broomstick) in Flash or some kind of webGL-based display. I could push through static geometry, but neither framework seems to have support for an animation format that I could find. </del>If anyone has succeeded in converting Blender animations into something for Away3d Broomstick or any kind of webGL framework, I would love to hear from you!</p>
<p>UPDATE: I have replaced the Unity file with a Unity-produced SWF file! the down-side is that the files are relatively large, because the engine binaries are effectively packaged inside the swf.  I look forward to playing around more with what can be accomplished with it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2011/12/21/the-first-output-from-housifier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You Wouldn&#8217;t!</title>
		<link>http://www.zachernuk.com/2011/09/21/you-wouldnt/</link>
		<comments>http://www.zachernuk.com/2011/09/21/you-wouldnt/#comments</comments>
		<pubDate>Wed, 21 Sep 2011 08:00:17 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[copyright]]></category>
		<category><![CDATA[meme]]></category>
		<category><![CDATA[nzfact]]></category>
		<category><![CDATA[parody]]></category>
		<category><![CDATA[website]]></category>
		<category><![CDATA[wouldnt]]></category>
		<category><![CDATA[you]]></category>
		<category><![CDATA[youwouldnt]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=1059</guid>
		<description><![CDATA[The unauthorized file-sharing of copyright material is not theft.  File-sharing is a problem, and as a producer of intellectual property I have a vested interest in solving that problem.  It&#8217;s just not the same problem as theft. By insisting that file-sharing and theft are one and the same, rights-holders are doing themselves a disservice, and undermining the legitimacy of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://youwouldnt.co.nz/"><img class="alignnone" src="http://www.youwouldnt.co.nz/messages3/1.png" alt="" /></a></p>
<p>The unauthorized file-sharing of copyright material is not theft.  File-sharing is  a problem, and as a producer of intellectual property I have a vested interest in solving that problem.  It&#8217;s just not the same problem as theft.  By insisting that file-sharing and theft are one and the same, rights-holders are doing themselves a disservice, and undermining the legitimacy of their case.</p>
<p>New Zealand recently passed a law about file-sharing that puts some hefty penalties on copyright infringement, based on the premise that infringement is theft and theft must be punished. Arguments on this matter start from the same tired premise about cars and purses. To say that stealing a car is   in any way the same as downloading a movie is absurd, and needs to be recognized as such.</p>
<p>Toward that end, my friends and I have created <a href="http://www.youwouldnt.co.nz">www.youwouldnt.co.nz</a>, which explores the absurdity of these false comparisons. You can make your own ridiculous slogan, share it with friends, and browse other people&#8217;s witticisms. Wouldn&#8217;t you?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2011/09/21/you-wouldnt/feed/</wfw:commentRss>
		<slash:comments>1</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_2043184124"
			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_2043184124"
			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_1499538639"
			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_1499538639"
			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>Javascript physics!</title>
		<link>http://www.zachernuk.com/2011/01/30/javascript-physics/</link>
		<comments>http://www.zachernuk.com/2011/01/30/javascript-physics/#comments</comments>
		<pubDate>Sun, 30 Jan 2011 05:12:29 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[doodles]]></category>
		<category><![CDATA[balls]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[physics]]></category>
		<category><![CDATA[simulation]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=747</guid>
		<description><![CDATA[A few years ago my friends Bill and Aidan and I started mucking about with the new javascript canvas class, and this is what we came up with. While there are other more robust physics engines out there &#8211; even in Javascript &#8211; it&#8217;s good to know how straightforward it is to get some of [...]]]></description>
			<content:encoded><![CDATA[<p>A few years ago my friends <a href="http://www.billsbooze.com" target="_blank" >Bill</a> and <a href="http://aidan.rfm.co.nz/blog" target="_blank" >Aidan</a> and I started mucking about with the new javascript canvas class, and this is what we came up with. While there are other more robust physics engines out there &#8211; even in <a href="http://box2d-js.sourceforge.net/" target="_blank" >Javascript</a> &#8211; it&#8217;s good to know how straightforward it is to get some of that behaviour working.  If for any reason you want to use this, please do!<br />
<br/></p>
<p><b>Usage:</b> Click and hold inside the grey square to create a ball.  The longer you hold down the mouse, the bigger the ball.  Click, drag around, and release a ball to &#8216;throw&#8217; it. You can change gravity and the drag coefficients by changing the numbers in the boxes below. Gravity can be any number, negative, positive or zero. Drag coefficient is only going to make sense as a number between 0 and 1. Greater than 1 means that energy is added to the system and things get a little crazy! <br/><br />
<b> Note: </b> to see this you will need to be using Firefox, Chrome or Opera. </p>
<p><script language="JavaScript" src="/wp-content/2011/01/ball.js"> </script><br />
 <canvas id="canvas" width="500" height="500" ></canvas></p>
<div id="debug"  style="background-color:#f0f0f0; width:300px;"> Click and drag inside this box to make a ball<br /> drag and release to move and throw a  ball.</div>
<div id="inputcontainers" style="border:thin solid black; width:200px;"> </div>
<p><b>Disclaimer:</b> Given that this was such a casual collaboration, please excuse the messiness of the code.  It was just the fastest way to get this kind of thing happening.  If you want a more coherent mechanism for control, Box2DJS is the way to go. </p>
<p><img src="http://www.zachernuk.com/wp-content/2011/01/2809594459_f716be8f5d_o.jpg" /><br />
<br/>(this is just so that a link to this post has a pretty picture to show!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2011/01/30/javascript-physics/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Dynamic animation in Unity3d</title>
		<link>http://www.zachernuk.com/2010/10/19/dynamic-animation-in-unity3d/</link>
		<comments>http://www.zachernuk.com/2010/10/19/dynamic-animation-in-unity3d/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 10:14:58 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[doodles]]></category>
		<category><![CDATA[unity]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[cartoon]]></category>
		<category><![CDATA[collada]]></category>
		<category><![CDATA[constraint]]></category>
		<category><![CDATA[cursor]]></category>
		<category><![CDATA[dae]]></category>
		<category><![CDATA[dog]]></category>
		<category><![CDATA[dynamic]]></category>
		<category><![CDATA[export]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[joint]]></category>
		<category><![CDATA[maya]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[orient]]></category>
		<category><![CDATA[skeleton]]></category>
		<category><![CDATA[skin]]></category>
		<category><![CDATA[weight]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=634</guid>
		<description><![CDATA[It has been a while since my last post, owing largely to the fact that I have a job now!  I&#8217;m an &#8220;Application Developer&#8221; at an outfit called Unlimited Realities, who are doing great work in the touch-computing space.  It&#8217;s still early days yet but I&#8217;m pretty thrilled to get in on the ground floor [...]]]></description>
			<content:encoded><![CDATA[<p>It has been a while since my last post, owing largely to the fact that I have a job now!  I&#8217;m an &#8220;Application Developer&#8221; at an outfit called <a href="http://www.unlimitedrealities.com">Unlimited Realities</a>, who are doing great work in the touch-computing space.  It&#8217;s still early days yet but I&#8217;m pretty thrilled to get in on the ground floor of what I suspect will become a significant feature of Human-Computer Interaction in the coming years.</p>
<p>On a slightly sillier note, since beginning to dabble in Unity about 6 months ago I have been trying to devise small interactive sketches &#8211; tests of functionality that represent blocks that could be integrated into a larger project or be expanded upon in order to create a more comprehensive system.  One of those sketches began as the question &#8220;How would it look to have an animal that looked at the cursor but in 3D?&#8221;  (It turns out that when the Japanese do it, the answer is &#8220;<a href="http://www.motionportrait.com/about/TIdog.swf">very creepy</a>&#8220;.)</p>
<div id="attachment_635" class="wp-caption alignnone" style="width: 310px"><a href="http://www.zachernuk.com/wp-content/2010/10/catty3.jpg"><img class="size-medium wp-image-635" title="catty3" src="http://www.zachernuk.com/wp-content/2010/10/catty3-300x150.jpg" alt="Though to be fair when I do things it often ends up pretty creepy too." width="300" height="150" /></a><p class="wp-caption-text">Though when I do things it often ends up pretty creepy too.</p></div>
<p>Initially my animal was going to be a cat but after fighting with the Unity3d engine for a while trying to import the skeleton, I gave up on the relatively high-poly model I had and decided to go with something slightly simpler, so I built a dog.  It turns out, though, that the issue was related to Unity (both Indie v2.6 and v3) had problems importing more than one Maya-generated .DAE file per open session. As far as I can gather the issue happens every time, but if anyone knows why it&#8217;s happening, or if there is a workaround I would be very interested in hearing about it!</p>
<p><a href="http://www.zachernuk.com/wp-content/2010/10/dog1.png"><img style="border: 0px initial initial;" title="dog1" src="http://www.zachernuk.com/wp-content/2010/10/dog1-300x131.png" alt="dog1" width="300" height="131" /></a></p>
<p>One of the things that computing can enable that has always fascinated me, as I have mentioned in the past, is working on pieces of technology that remove the need to work on other things.  For example, animating character by making simple rules for their behaviour rather than doing keyframe-based animation.  So this is what I came up with as a first step!  Move the cursor over the ground to direct the mouse, and the dog, to that location.  The faster the cursor goes, the wider the dog&#8217;s eyes get.  check it out!</p>
<p><em>Please view the full post to see the Unity content.</em></p>
<p>Well, not the <em>first</em> first step.. the very first step was a tortured-looking stickman spasming as all of his joint rotations rotated against one another randomly but I don&#8217;t think anyone needs to see that.</p>
<p>I&#8217;d like to thank &#8216;<a href="http://www.flickr.com/photos/matsomuffi/with/439896822/">Mats &amp; Muffi</a>&#8216; on Flickr for his wonderful photostream of fighting cats&#8230; he manages to capture them in a moment when all their grace and self-consciousness is given up for the sake of pouncing, and it makes for excellent texture references!</p>
<p><a href="http://www.zachernuk.com/wp-content/2010/10/dogtn.png"><img class="alignnone size-full wp-image-665" title="dogtn" src="http://www.zachernuk.com/wp-content/2010/10/dogtn.png" alt="dogtn" width="64" height="64" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2010/10/19/dynamic-animation-in-unity3d/feed/</wfw:commentRss>
		<slash:comments>3</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>Cached particle field</title>
		<link>http://www.zachernuk.com/2009/10/23/cached-particle-field/</link>
		<comments>http://www.zachernuk.com/2009/10/23/cached-particle-field/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 17:02:03 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=303</guid>
		<description><![CDATA[Hello! Long time no post, I have been (and still am) on-site on a contract job, and haven&#8217;t had a lot of time outside of work.  Nevertheless, I have been doing some interesting things!  Here is one of them &#8211; a test of the practicality for particle fields to be drawn from cached BitmapDatas, rather [...]]]></description>
			<content:encoded><![CDATA[<p>Hello!</p>
<p>Long time no post, I have been (and still am) on-site on a contract job, and haven&#8217;t had a lot of time outside of work.  Nevertheless, I have been doing some interesting things!  Here is one of them &#8211; a test of the practicality for particle fields to be drawn from cached BitmapDatas, rather than generated per-frame.  It&#8217;s not fast,  but it&#8217;s much faster than the alternative:</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_cacheField_771438708"
			class="flashmovie"
			width="400"
			height="600">
	<param name="movie" value="http://www.zachernuk.com/wp-content/2009/10/cacheField.swf" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content/2009/10/cacheField.swf"
			name="fm_cacheField_771438708"
			width="400"
			height="600">
	<!--<![endif]-->
		<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>In case you&#8217;re wondering what is going wrong, this is what happens when the pre-drawn circle bitmap isn&#8217;t offset appropriately.  To see it working properly, click the flash file and just hold down any key for the shapes to make proper circles.  Releasing again will revert to the crazy, checkerboard-like state.</p>
<p>The project I&#8217;m working on is very exciting, and should be ready for public unveiling in 3 weeks or so.  In the meantime, I can happily say that video uploads and downloads with Red5 and a basic apache HTTP install are far, far easier than I had ever hoped. Thank you to both project teams for being so awesome!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2009/10/23/cached-particle-field/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Prince of Persia it ain&#8217;t</title>
		<link>http://www.zachernuk.com/2009/09/27/prince-of-persia-it-aint/</link>
		<comments>http://www.zachernuk.com/2009/09/27/prince-of-persia-it-aint/#comments</comments>
		<pubDate>Sat, 26 Sep 2009 17:19:27 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=296</guid>
		<description><![CDATA[The pre-rendering idea that Playfish uses has made me eager to get animation control and manipulation, as well as geometry instancing to reduce overhead.  Since there are some obvious similarities between what I&#8217;m trying to do here and Prince of Persia, I tried to dig some information up on it.  It turns out Jordan Mechner [...]]]></description>
			<content:encoded><![CDATA[<p>The pre-rendering idea that Playfish uses has made me eager to get animation control and manipulation, as well as geometry instancing to reduce overhead.  Since there are some obvious similarities between what I&#8217;m trying to do here and Prince of Persia, I tried to dig some information up on it.  It turns out <a href="http://jordanmechner.com/prince-of-persia/">Jordan Mechne</a>r has his<a href="http://jordanmechner.com/old-journals/page/42/"> entire development diary</a> online!  And some of the<a href="http://vimeo.com/3858091"> reference footage of  his brother David jumping around</a> for him!  Inspiring stuff.  Anyway,  in aid of that, I thought I would start doing some more practical motion stuff, which has led me to this:</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_runmonk_380719651"
			class="flashmovie"
			width="400"
			height="600">
	<param name="movie" value="http://www.zachernuk.com/wp-content/2009/09/runmonk.swf" />
	<param name="allowfullscreen" value="true" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content/2009/09/runmonk.swf"
			name="fm_runmonk_380719651"
			width="400"
			height="600">
		<param name="allowfullscreen" value="true" />
	<!--<![endif]-->
		<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>Yes, I am aware that there are occlusion issues.  I&#8217;m not completely certain how the 3d is going to integrate into the 2d environment, so it may prove to be unnecessary to do anything at all about it.  I&#8217;m thinking that only dynamic characters need be rendered in 3d, though it depends on whether the camera view will have any aspect of dynamic-ness,  and how well 2d / pre-rendered assets can integrate.</p>
<p>Re: the core game engine:  I&#8217;m running up against a bit of an irritating problem with keeping the optical, mechanical and visual representations of polygons in sync with one another.  There are a good number of advances since the last display, but unfortunately they&#8217;ll have to wait until this niggly issue is fixed!</p>
<p>I&#8217;ve also started making serious progress with Flash-PHP-SQL interactions, and vice versa, as well as beginning to make hooks into Facebook.  Interesting times ahead!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2009/09/27/prince-of-persia-it-aint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Papervision, Playfish and general 3D Pottering</title>
		<link>http://www.zachernuk.com/2009/09/22/papervision-playfish-and-general-3d-pottering/</link>
		<comments>http://www.zachernuk.com/2009/09/22/papervision-playfish-and-general-3d-pottering/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 14:02:06 +0000</pubDate>
		<dc:creator>Brandel Zachernuk</dc:creator>
				<category><![CDATA[The Order]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.zachernuk.com/?p=277</guid>
		<description><![CDATA[I&#8217;ve been thinking about how much I&#8217;d like perspective to make it into the mix of features for the Opticks engine, and have had a bit of experience with the Papervision3d engine, as seen on the lovely The Chills website.   Creating basic geometry and loading in stuff created from modeling packages was pretty straightforward, but [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about how much I&#8217;d like perspective to make it into the mix of features for the Opticks engine, and have had a bit of experience with the Papervision3d engine, as seen on the lovely <a href="http://www.softbomb.com/">The Chills </a>website.   Creating basic geometry and loading in stuff created from modeling packages was pretty straightforward, but I had always run up against a wall when loading and dealing with animations.</p>
<p>Another thing I noticed when pushing PV3d to the performance limit (and beyond, according to some people), is something that I have seen a lot of other complaints about: Papervision is very slow.  This is a fair accusation in comparison with, say, the Unreal engine (or even the Quake 1 engine at this point, but I&#8217;m convinced it&#8217;ll improve with time)  &#8211; but the thing about real-time 3d applications, games included, is that they have always been about the cheapest hacks available.</p>
<p>With the Chills animation I did things the hard way &#8211; hard for me, and unfortunately, hard for Papervision.  It looks pretty &#8211; there&#8217;s an aurora, reflections, changing colours for the clouds and the sky, dynamically generated igloos and a shaded, textured mountainscape.  And a motion blur.    All good things, save for the fact that it runs at about 5FPS without hardware acceleration. When I added more features in &#8211; a better motion blur, more detailed shading and mesh detailing, it brought even the most powerful desktops to their knees.  Screenshots looked <em>fantastic</em>, though.</p>
<div id="attachment_290" class="wp-caption alignnone" style="width: 310px"><a href="http://www.zachernuk.com/wp-content//chills-move.jpg"><img class="size-medium wp-image-290" title="chills-move" src="http://www.zachernuk.com/wp-content//chills-move-300x295.jpg" alt="This is a great movie, save for the framerate." width="300" height="295" /></a><p class="wp-caption-text">This is a great movie, save for the framerate.</p></div>
<p><strong>That&#8217;s not a movie, that&#8217;s a slideshow<br />
</strong></p>
<p>Let&#8217;s think of the possibilities for a second.  Instead of being required to produce 25+ FPS, if you could render one frame every second or two, and give the user a fancy zoom/fade/wipe/etc. transition between them,  you&#8217;d get away with much more.  It might even give them a more enjoyable experience than struggling to cram everything you can into the constraints of realtime.  If you wanted to go further, you could even pre-render an entire sequence to play back at realtime later &#8211; providing you had something to show now, and you could properly bridge the two sequences.</p>
<p>The slideshow idea is still something I&#8217;m interested in but we didn&#8217;t have time on that particular project.  The second option, using Papervision as a pre-renderer &#8211; was impractical because of the first-person, full-scene animation of the thing.  It was an idea I considered, discounted as inappropriate, and forgot about.</p>
<p>Until recently.   Earlier last month, <a href="http://www.meaningfulplay.com/2009/8/16/the-flash-frontier">Tim posted about Playfish</a>, who are doing some amazing things with Flash and social media.  After seeing this mention, and generally seeing Pet Society being spammed about for a while, I was curious about their offerings, so I signed up for a few of their games.</p>
<p>I wasn&#8217;t impressed with the first experience, but it turns out that Pet Society is probably the weakest title in their stable.  Since then they have made a series of Isometric titles with customizable characters.  Since I&#8217;m always fascinated by new technical developments in flash, and the fact that these titlesseem to run surprisingly well given the amount of stuff happening on-screen, I tried to dig up what the underlying technology is.</p>
<p><strong>It&#8217;s Papervision, but not as we know it</strong></p>
<div id="attachment_282" class="wp-caption alignnone" style="width: 310px"><a href="http://www.zachernuk.com/wp-content//mgp.jpg"><img class="size-medium wp-image-282" title="mgp" src="http://www.zachernuk.com/wp-content//mgp-300x191.jpg" alt="Minigolf party " width="300" height="191" /></a><p class="wp-caption-text">Minigolf party cleverly sidesteps Pv3d&#39;s tendency to crawl </p></div>
<p>They&#8217;ve done what I was pondering over earlier this year &#8211; According to some discussion on old papvervison3d mailing lists, they&#8217;re using pv3d to pre-render elements like characters to a series of bitmaps in a preload phase, and just playing them as simple movies as required.  This can be seen in titles like <em>Minigolf Party,</em> where the load time includes the pre-render stuff.  In more recent titles like <em>Restaurant City</em>, where there is a constant flow of characters in and out of the player&#8217;s view, I&#8217;m guessing they&#8217;re being generated just prior to display, and (hopefully) being dumped afterward.</p>
<div id="attachment_289" class="wp-caption alignnone" style="width: 310px"><a href="http://www.zachernuk.com/wp-content//restaurantcity.jpg"><img class="size-medium wp-image-289" title="restaurantcity" src="http://www.zachernuk.com/wp-content//restaurantcity-300x210.jpg" alt="RC displays a rolling cast of new, dynamically generated characters" width="300" height="210" /></a><p class="wp-caption-text">RC displays a rolling cast of new, dynamically generated characters</p></div>
<p><a href="http://www.zachernuk.com/wp-content//rc3.jpg"><br />
</a></p>
<p>Aside from sounding like a somewhat perverse approach to art, this is genius.  While the artists lose the fine-grained control of painting pixels or drawing out vector points, they can create much more content by rendering all necessary angles automatically, as well as change a hairstyle or a shirt without having to redraw the whole thing.</p>
<p>It cuts down on bandwidth, too &#8211; instead of sending out all the character animation that a user might need to see, you send them the model and the animations, and they handle it.</p>
<p>That&#8217;s all advantage which is shared between real-time and pre-rendered 3d.  Where they differ, though, is performance.   In most 3d engines, and in most Papervision-based systems, the whole scene is drawn every frame.  Papervision is fast, but it&#8217;s still running inside Flash, which means it is (at <em>least) </em>thousands of times slower than a modern game engine.   In order to have any performance at all, the detail has to be thousands of times simpler.</p>
<p>Unless you&#8217;re pre-rendering!  For animations that can be repeated (walk cycles, attacks etc), you can take as long as you want to render in a &#8216;load&#8217; phase, and then just play back the results as necessary.  This only works when you can guarantee you&#8217;ll use the same animation at least twice, and what you gain in performance comes at the cost of more storage  &#8211; the inevitable space / time tradeoff we always run up against in computing.  In most applications &#8211; consoles, mobile devices and such &#8211; the storage (in RAM) and processing capabilities are more or less equal.  In Flash, though, the storage is <em>vastly</em> greater than the processing power, so it makes sense to cache heavily.</p>
<p>Since I plan on using using this in my Opticks game,  I thought it would be worth trying out how hard it is to make this stuff happen.  Toward that end, I have been experimenting.  Below is a Playfish-style representation of what I have been doing. To do the things it says to, click in the panel and press keys ( Press &#8220;J&#8221;! It&#8217;s amazing!)</p>

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
			id="fm_typeytypey_2020216369"
			class="flashmovie"
			width="400"
			height="600">
	<param name="movie" value="http://www.zachernuk.com/wp-content//typeytypey.swf" />
	<param name="seamlesstabbing" value="false" />
	<param name="allowfullscreen" value="true" />
	<param name="allownetworking" value="all" />
	<!--[if !IE]>-->
	<object	type="application/x-shockwave-flash"
			data="http://www.zachernuk.com/wp-content//typeytypey.swf"
			name="fm_typeytypey_2020216369"
			width="400"
			height="600">
		<param name="seamlesstabbing" value="false" />
		<param name="allowfullscreen" value="true" />
		<param name="allownetworking" value="all" />
	<!--<![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>
]]></content:encoded>
			<wfw:commentRss>http://www.zachernuk.com/2009/09/22/papervision-playfish-and-general-3d-pottering/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

