<?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>Blog &#187; Experimental</title>
	<atom:link href="http://www.harrynorthover.com/blog/category/experimental/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.harrynorthover.com/blog</link>
	<description>The Blog of Creative Developer Harry Northover, covering a wide range of topics related to creative development.</description>
	<lastBuildDate>Wed, 11 May 2011 21:54:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>A basic Javascript 3D Renderer</title>
		<link>http://www.harrynorthover.com/blog/2010/11/19/a-basic-javascript-3d-renderer/</link>
		<comments>http://www.harrynorthover.com/blog/2010/11/19/a-basic-javascript-3d-renderer/#comments</comments>
		<pubDate>Fri, 19 Nov 2010 21:09:19 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Canvas]]></category>
		<category><![CDATA[HTML]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=929</guid>
		<description><![CDATA[Updated: New Demo added. Since playing around with Three.js and Javascript in general I was inspired to go ahead and understand how the 3D magic works, so I created my own basic 3D engine. It is by no means comparable &#8230; <a href="http://www.harrynorthover.com/blog/2010/11/19/a-basic-javascript-3d-renderer/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Updated: New Demo added. </strong></p>
<p>Since playing around with <a href="http://mrdoob.com/blog/post/693" target="_blank">Three.js</a> and Javascript in general I was inspired to go ahead and understand how the 3D magic works, so I created my own basic 3D engine. It is by no means comparable to Three.js, it can just draw particles, lines and boxes, so all good fun <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I recreated the demo below <strong>using my own engine</strong> and here is the result.<br />
<a href="http://projects.harrynorthover.com/canvas3d/test/drawCirclesDemo/"><img class="alignleft size-full wp-image-930" title="3D Circle Drawing" src="http://www.harrynorthover.com/blog/wp-content/uploads/2010/11/Screen-shot-2010-11-19-at-19.01.55.png" alt="" width="729" height="575" /></a></p>
<p><strong>How it works.</strong><br />
The first thing I did was to create a Canvas based renderer that took a 3D point, converted it to 2D then drew it on to the canvas. This then later expanded to being able to draw lines in 3D and now 3D planes. All of this is demonstrated in the examples below.</p>
<p>Once I had got the basics working, I added camera and scene functionality, although the camera has no actual camera functionality yet, that is coming when I can get my head around this transformation matrix stuff. <a href="http://afrocityblog.files.wordpress.com/2009/05/wtf-logo-big.jpg" rel="lightbox[929]">This is all I&#8217;m getting at the moment. </a></p>
<p>Then I added some basic primitives and 3D objects like Particles and a Cube, with a basic RGB material for starters.</p>
<p><strong>Demos.</strong><br />
<a href="http://projects.harrynorthover.com/canvas3d/test/planeDemo/"><img class="alignleft size-full wp-image-936" title="Plane Demo" src="http://www.harrynorthover.com/blog/wp-content/uploads/2010/11/Screen-shot-2010-11-19-at-20.36.44.png" alt="Plane Demo" width="769" height="154" /></a></p>
<p><a href="http://projects.harrynorthover.com/canvas3d/test/randomLinesDemo/"><img class="alignleft size-full wp-image-937" title="Screen shot 2010-11-19 at 20.37.34" src="http://www.harrynorthover.com/blog/wp-content/uploads/2010/11/Screen-shot-2010-11-19-at-20.37.34.png" alt="" width="984" height="154" /></a></p>
<p><a href="http://projects.harrynorthover.com/canvas3d/test/cubeDemo/"><img src="http://www.harrynorthover.com/blog/wp-content/uploads/2010/11/Screen-shot-2010-11-20-at-14.08.34.png" alt="" title="Screen shot 2010-11-20 at 14.08.34" width="867" height="154" class="alignleft size-full wp-image-952" /></a></p>
<p><a href="http://projects.harrynorthover.com/canvas3d/test/linesAndCircles/"><img src="http://www.harrynorthover.com/blog/wp-content/uploads/2010/11/Screen-shot-2010-11-20-at-13.57.40.png" alt="" title="Lines Demo" width="853" height="154" class="alignleft size-full wp-image-950" /></a></p>
<p>Granted, these demos are exciting at all and have been done 1000&#8242;s of times before, but I&#8217;m pleased that I&#8217;ve managed to get this far! There is so much more that I can add to make this a properly fully functional 3D Javascript engine.</p>
<p>At the moment the only available renderer is just using Canvas and I would like to add a WebGL renderer in the future.</p>
<p>If anyone knows of any good articles/resources on 3D math then I&#8217;d greatly appreciate a comment with a link!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2010/11/19/a-basic-javascript-3d-renderer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Messing with HTML 5 Canvas &amp; Three.js</title>
		<link>http://www.harrynorthover.com/blog/2010/11/14/messing-with-html-5-canvas-three-js/</link>
		<comments>http://www.harrynorthover.com/blog/2010/11/14/messing-with-html-5-canvas-three-js/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 20:39:16 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=913</guid>
		<description><![CDATA[Whilst building my new site, I have picked up quite a love for Javascript, so I decided to start doing more exciting stuff with it instead of just front end for work my CMS. I started of playing around with &#8230; <a href="http://www.harrynorthover.com/blog/2010/11/14/messing-with-html-5-canvas-three-js/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Whilst building my new site, I have picked up quite a love for Javascript, so I decided to start doing more exciting stuff with it instead of just front end for work my CMS. I started of playing around with canvas and quickly got some cool 2D stuff going on, and then decided to give <a href="http://mrdoob.com/" target="_blank">Mr. Doobs</a> <a href="http://mrdoob.com/blog/post/693" target="_blank">Three.js</a> a try, which turned out to be pretty awesome.</p>
<p>I went ahead and built a little demo based on my first 2D experiment with canvas.<br />
<a href="http://projects.harrynorthover.com/3dcircles/html/"><img class="alignleft size-full wp-image-914" title="Circles" src="http://www.harrynorthover.com/blog/wp-content/uploads/2010/11/Screen-shot-2010-11-14-at-15.36.59.png" alt="" width="796" height="598" /></a></p>
<p>It&#8217;s fairly simple but it gave me a good idea of the Three.js 3D engine and I highly recommend anyone who wants something different to play around with, have a go with it. The code for the demo above is below.</p>
<p><strong>3d.js:</strong></p>
<pre lang="javascript">// 3d vars.
var camera;
var scene;
var renderer;

// size
var WIDTH 				= 800;
var HEIGHT 				= 600;

var circleColours 		= [0x0099CC, 0xCCCCCC, 0x9900CC];
var colourIndexToUse 	= 0;
var fadeAmount 			= 0.0000000005;

// used to tell when to draw.
var shouldDraw 			= false;

// mouse coordinates.
var mouseX;
var mouseY;

setInterval( invalidate, 10 );

function init() {
	camera 					= new THREE.Camera( 75, WIDTH / HEIGHT, 1, 10000 );
	scene 					= new THREE.Scene();
	renderer 				= new THREE.CanvasRenderer();
	renderer.setSize( WIDTH, HEIGHT );

	camera.position.z 		= 700;
	document.body.appendChild( renderer.domElement );
}

function invalidate()
{
	if(shouldDraw) draw();
	// fade all the current circles.
	fade();
	// render it all.
	renderer.render( scene, camera );
}

function draw() {
	 for(var i = 0; i &lt; 5; ++i)
	 {
		 var particle 			= new THREE.Particle( new THREE.ParticleCircleMaterial( circleColours[colourIndexToUse], Math.random() ) );
		 particle.position.x 	= i == 0 ? mouseX - 500 : mouseX - 500 * (Math.random() * 1.5);
		 particle.position.y 	= i == 0 ? mouseY - 500 : mouseY - 500 * (Math.random() * 1.5);
		 particle.position.z 	= mouseX * Math.random();
		 particle.scale.x 		= i == 0 ? particle.scale.y = Math.random() * 50 : particle.scale.y = Math.random() * 5;
	     scene.addObject( particle );
	 }
}

/*
 * This fades all the existing objects in the scene.
 */
function fade() {
	for(var i = 0; i &lt; scene.objects.length; ++i)
	{
		var prevAlpha = scene.objects[i].material[0].color.a;
		if(prevAlpha != 0)
		{
			var newMat 						= new THREE.ParticleCircleMaterial( circleColours[colourIndexToUse], prevAlpha - fadeAmount );
			scene.objects[i].material[0] 	= newMat;
		}
		else scene.removeObject(scene.objects[i]);
	}
}

function setMousePosition(x, y)
{
	mouseX 				= x;
	mouseY 				= y;

	camera.position.x 	+= (mouseX - camera.position.x) * .045;
	camera.position.y 	+= (-mouseY - camera.position.y) * .045;
}

jQuery(document).ready(function() {
	$('canvas').mousemove(function(e) { setMousePosition(e.pageX, e.pageY); } );
	$('canvas').mousedown(function(e) { shouldDraw = true;  } );
	$('canvas').mouseup(function(e)   { shouldDraw = false; } );
});

init();</pre>
<p>For those looking for more resources in regards to getting started with the whole HTML5/Canvas and also Three.js here&#8217;s some good ones:</p>
<ul>
<li><strong>Mozilla Canvas Tutorial</strong> &#8211; <a href="https://developer.mozilla.org/en/canvas_tutorial" target="_blank">https://developer.mozilla.org/en/canvas_tutorial</a></li>
<li><strong>Dive Into HTML5,</strong> A great guide giving you an insight into a lot of the new features of HTML5 &#8211; <a href="http://diveintohtml5.org/" target="_blank">http://diveintohtml5.org/</a></li>
<li><strong>Opera Canvas Guide,</strong> Similar to the Mozilla article, very straight forward &#8211; <a href="http://dev.opera.com/articles/view/html-5-canvas-the-basics/" target="_blank">http://dev.opera.com/articles/view/html-5-canvas-the-basics/</a></li>
</ul>
<p>Have Fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2010/11/14/messing-with-html-5-canvas-three-js/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Coding in Bubbles (IDE Concept).</title>
		<link>http://www.harrynorthover.com/blog/2010/03/10/coding-in-bubbles-ide-concept/</link>
		<comments>http://www.harrynorthover.com/blog/2010/03/10/coding-in-bubbles-ide-concept/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 20:22:15 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=872</guid>
		<description><![CDATA[I came across this early this evening and thought it looked a brilliant and fascinating way of coding! The idea is that code is split into different bubbles, each one representing a function. You can then drop and drag different &#8230; <a href="http://www.harrynorthover.com/blog/2010/03/10/coding-in-bubbles-ide-concept/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I came across this early this evening and thought it looked a brilliant and fascinating way of coding!</p>
<p>The idea is that code is split into different bubbles, each one representing a function. You can then drop and drag different methods around, adding notes to them, marking them as bugs or flagging that particular function as important. I think this is a great way of coding as coding by nature is a very logical task and so by displaying it in a very organized, logical way makes a lot of sense. Traditionally code is just displayed as a single file with methods listed one after the other which is fine for smaller files/projects with a moderate amount of functions and classes with little to no external dependencies, but when you are dealing with large projects, multiple files and lots of external library&#8217;s then this way of logically splitting it up into relevant bubbles really makes sense. So watch the video and see what you think!</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="640" height="505" 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/PsPX0nElJ0k&amp;hl=en_US&amp;fs=1&amp;hd=1" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="640" height="505" src="http://www.youtube.com/v/PsPX0nElJ0k&amp;hl=en_US&amp;fs=1&amp;hd=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Project page here: <a href="http://www.cs.brown.edu/people/acb/codebubbles_site.htm" target="_blank">http://www.cs.brown.edu/people/acb/codebubbles_site.htm </a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2010/03/10/coding-in-bubbles-ide-concept/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HYPE Framework &#8211; Bring experimentation to the masses.</title>
		<link>http://www.harrynorthover.com/blog/2009/11/03/hype-framework-bring-experimentation-to-the-masses/</link>
		<comments>http://www.harrynorthover.com/blog/2009/11/03/hype-framework-bring-experimentation-to-the-masses/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 21:53:34 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=830</guid>
		<description><![CDATA[Recently Joshua Davis and Brendan Hall released a new framework call HYPE. The aim of the framework is to allow everyone from newbie level to professionals experiment with ease using Flash. I&#8217;m hoping to find some time in between GCSEs &#8230; <a href="http://www.harrynorthover.com/blog/2009/11/03/hype-framework-bring-experimentation-to-the-masses/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="background-color: #ffffff;">Recently <a href="http://www.joshuadavis.com/" target="_blank">Joshua Davis</a> and Brendan Hall released a new framework call <a href="http://hype.joshuadavis.com/" target="_blank">HYPE</a>. The aim of the framework is to allow everyone from newbie level to professionals experiment with ease using Flash. </span></p>
<p><a href="http://www.harrynorthover.com/blog/wp-content/uploads/2009/11/hype1.jpg" rel="lightbox[830]"><img class="alignleft size-full wp-image-833" title="hype" src="http://www.harrynorthover.com/blog/wp-content/uploads/2009/11/hype1.jpg" alt="hype" width="606" height="124" /></a></p>
<p><span style="background-color: #ffffff;">I&#8217;m hoping to find some time in between GCSEs to have a go at making some stuff with this, so keep any eye out. <strong>You can </strong><a href="http://hype.joshuadavis.com/download/hype_1.0.zip" target="_blank"><strong>download it here</strong></a><strong>, and find the </strong><a href="http://hype.joshuadavis.com/installation/readme-installation-setup/" target="_blank"><strong>setup instructions here</strong></a><strong>. </strong></span></p>
<p>Have fun!!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2009/11/03/hype-framework-bring-experimentation-to-the-masses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Highlights from MAX &#8217;09.</title>
		<link>http://www.harrynorthover.com/blog/2009/10/21/highlights-from-max-09/</link>
		<comments>http://www.harrynorthover.com/blog/2009/10/21/highlights-from-max-09/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 19:38:07 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Actionscript 3]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Web Design]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=812</guid>
		<description><![CDATA[Before you ask, no I wasn&#8217;t at MAX, but after making an attempt at going through some of the 250+ hours of footage I have found a few jems that I think are worth mentioning. It sounded quite an event &#8230; <a href="http://www.harrynorthover.com/blog/2009/10/21/highlights-from-max-09/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://max.adobe.com/"><img class="alignleft size-full wp-image-823" title="MAX" src="http://www.harrynorthover.com/blog/wp-content/uploads/2009/10/MAX.jpg" alt="MAX" width="612" height="100" /></a></p>
<p>Before you ask, no I wasn&#8217;t at MAX, but after making an attempt at going through some of the 250+ hours of footage I have found a few jems that I think are worth mentioning. It sounded quite an event and plenty of exciting announcements were made! Heres a few key sessions.</p>
<p>By now I am assuming you have all heard about native compiling to the iPhone in Flash CS5 and if you haven&#8217;t then be very ashamed :p . Well here&#8217;s a session that sheds some light on it if you haven&#8217;t got a clear understand:</p>
<p><strong>Building Applications for iPhone using Adobe Flash CS5 professional</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="256" 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="FlashVars" value="fileID=2421&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="src" value="http://images.tv.adobe.com//swf/player.swf" /><param name="flashvars" value="fileID=2421&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="256" src="http://images.tv.adobe.com//swf/player.swf" flashvars="fileID=2421&amp;context=162&amp;embeded=true&amp;environment=production" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<hr />
<p>Now the next one is on the Flash Player its self, and what makes it tick. With each update the Flash Player gets more and more advanced, and with it complicated. Questions you never even had are answered in this session and it is a must see from my point of view.</p>
<p><strong>Flash Player Internals </strong></p>
<p><strong><br />
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="256" 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="FlashVars" value="fileID=2517&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="src" value="http://images.tv.adobe.com//swf/player.swf" /><param name="flashvars" value="fileID=2517&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="256" src="http://images.tv.adobe.com//swf/player.swf" flashvars="fileID=2517&amp;context=162&amp;embeded=true&amp;environment=production" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
</strong></p>
<p>A lot of these things in this video I have never really thought about, but when they are explained you see what a difference they make and how important it is to know some of the stuff explained. One of the interesting concepts was at the start about rendering, describing the difference between Immediate and Retained rendering. Now I know this is simple stuff for the &#8216;pros&#8217; amongst us, but for me I had never really understood this so it was nice to have it explained in simple terms.</p>
<hr />
<p>For me one of the biggest announcements was that there is a new FLA format, which is going to be based on XML! This is a lot better than the current version which was essentially a &#8216;black box&#8217; as XML is an extremely open and widely used language. The new format is essentially going to be a modified ZIP file contain separate files for the library assets, publication settings and document information which will make it easier to use in source control systems and other similar management tools.</p>
<p><strong>XML based FLA: The New Flash File Format</strong></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="256" 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="FlashVars" value="fileID=2376&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="src" value="http://images.tv.adobe.com//swf/player.swf" /><param name="flashvars" value="fileID=2376&amp;context=162&amp;embeded=true&amp;environment=production" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="256" src="http://images.tv.adobe.com//swf/player.swf" flashvars="fileID=2376&amp;context=162&amp;embeded=true&amp;environment=production" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<hr />So there are a few highlights, but there is <strong>*so*</strong> much more to watch and learn about. If you want to see the full list of videos then head on over to <a href="http://tv.adobe.com/" target="_blank">Adobe TV</a>.</p>
<p>Also, sorry it has been quite recently! I have been rather busy with school seeing as I am coming up to my GCSEs quite soon. <strong>I am also starting to think about work experience for the 2010 summer (July-August), and if anyone has any suggestions or offers then that would be brilliant! </strong></p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2009/10/21/highlights-from-max-09/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting Started with Augmented Reality (FLARToolkit).</title>
		<link>http://www.harrynorthover.com/blog/2009/04/15/getting-started-with-augmented-reality-flartoolkit/</link>
		<comments>http://www.harrynorthover.com/blog/2009/04/15/getting-started-with-augmented-reality-flartoolkit/#comments</comments>
		<pubDate>Wed, 15 Apr 2009 22:50:34 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Augmented Reality]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[FLARToolkit]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=680</guid>
		<description><![CDATA[If you have been following me on Twitter, then you may have noticed that I have been getting into Augmented Reality. This is the coolest thing I have seen in a long time! Now if you don&#8217;t know what this &#8230; <a href="http://www.harrynorthover.com/blog/2009/04/15/getting-started-with-augmented-reality-flartoolkit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you have been following <a href="http://www.twitter.com/harrynorthover" target="_blank">me on Twitter</a>, then you may have <a href="http://twitter.com/harrynorthover/status/1493666316" target="_blank">noticed</a> that I have been <a href="http://twitter.com/harrynorthover/status/1505193808" target="_blank">getting</a> into <a href="http://en.wikipedia.org/wiki/Augmented_reality" target="_blank">Augmented Reality</a>. This is the <strong>coolest</strong> thing I have seen in a long time! Now if you don&#8217;t know what this is, then it is a means of mapping 3D objects to a marker in the real world through a web cam.</p>
<p>Here is a simple guide to getting setup using the Augmented Reality in Flash. This includes downloading the library&#8217;s and then getting a simple demo up and running.</p>
<p>The name of the library used for Augmented Reality in Flash is called <a href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en" target="_blank">FLARToolkit</a> which is developed by Saqoosha. It is a port of the <a href="http://www.hitl.washington.edu/artoolkit/" target="_blank">ARToolkit</a> which is written in C. You can download it from <a href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en" target="_blank">here</a> through SVN. If you haven&#8217;t got a SVN client setup then I highly recommend <a href="http://www.syntevo.com/smartsvn/index.html" target="_blank">SmartSVN</a> which is a free client and I must thank <a href="http://richardleggett.co.uk/blog/" target="_blank">Richard Leggett</a> for <a href="http://twitter.com/richardleggett/statuses/1489494390" target="_blank">recommending</a> this to me!</p>
<p>Now once you have got the code, add it to your global Actionscript folder, then print out this <a href="http://www.harrynorthover.com/files/flash/ar/assets/Marker.jpg" target="_self" rel="lightbox[680]">marker</a> and run the example. You can either compile the source in the &#8216;src&#8217; folder or just run the SWF in the &#8216;bin-debug&#8217; folder. Hopefully this gives you a idea of what AR/FLARToolkit is all about.</p>
<p>If you can run the example yourself, here is a video of it in action.</p>
<p><object width="612" height="486" data="http://vimeo.com/moogaloop.swf?clip_id=4169730&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4169730&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/4169730">FLARToolkit / Augmented Reality Basic Demo.</a> from <a href="http://vimeo.com/user1592225">Harry Northover</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>I have also written a base class for a FLARToolkit application. It is designed so that all you have to do is override the function &#8216;<em>add3d()</em>&#8216; to add your 3D objects to &#8216;<em>FLAR_Container</em>&#8221; object, and then override another function, &#8216;<em>addAnimation_3d()</em>&#8216; to add the animation. My description here is very brief so read the <em>readme</em> file in the package. You can download the class <a href="http://harry-northover-code-store.googlecode.com/files/FLARBaseClass.zip" target="_self">here</a>. If you want to see how much code this can reduce then here is an example class using the base class:</p>
<pre lang="actionscript3">package
{
	import com.harrynorthover.ar.flar.base.FLARSingleMBase;

	import flash.filters.BlurFilter;

	import org.papervision3d.lights.PointLight3D;
	import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.primitives.Cube;

	[SWF(width="640", height="480", frameRate="30", backgroundColor="#FFFFFF")]

	public class Demo_BaseClass_Test extends FLARSingleMBase
	{
		private var cube:Cube;

		public function Demo_BaseClass_Test()
		{
			/*This is the function 'Init' you need to call to setup the FLARToolkit scene.
			     WIDTH, HEIGHT, FRAMERATE*/
			Init(640,   480,    30);
		}

		/*
		...
		This function is the one you need to override
		to add things to your 3D scene.
		*/

		override protected function add3D():void
		{
			// Add you 3D stuff here. The more the better <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />
			var pl:PointLight3D = new PointLight3D();
			pl.z = -1000;
			pl.y = 1000;
			pl.x = 1000;
			pl.flipped = true;	

			//var blurFilter:BlurFilter = new BlurFilter(24, 12, 1);
			var matList:MaterialsList = new MaterialsList();
			var fsm:FlatShadeMaterial = new FlatShadeMaterial(pl);

			matList.addMaterial(fsm, "all");

  			cube = new Cube(matList, 60, 60, 60, 5, 5, 5);
  			//cube.useOwnContainer = true;
  			//cube.filters = [blurFilter];

  			// FLAR_Container is the FLARBaseNode that you
  			// add your 3D objects to.
	        FLAR_Container.addChild(cube);
		}

		/*
		...
		This is the function to which you override to add
		your 3D animation.
		*/

		override protected function addAnimation_3d():void
		{
			//Add you animation here.
			cube.yaw(10);
		}
	}
}</pre>
<p>See? Lots of code that has been got rid of!</p>
<h3>Other demos I have been working on are here:</h3>
<p><strong>FLAR + Lines3D</strong>:</p>
<p><object width="612" height="459" data="http://vimeo.com/moogaloop.swf?clip_id=4172342&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4172342&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/4172342">FLARToolkit and Lines3D / Augmented Reality</a> from <a href="http://vimeo.com/user1592225">Harry Northover</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><strong>Incorporating <a href="http://code.google.com/p/as3dmod/" target="_blank">AS3DMod</a>:</strong></p>
<p><object width="612" height="459" data="http://vimeo.com/moogaloop.swf?clip_id=4172923&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4172923&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/4172923">FLAR + As3DMod</a> from <a href="http://vimeo.com/harrynorthover">Harry Northover</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>So there you go, my first few demos. Yes, I know, they are not very special but now I&#8217;m working on getting mutliple markers working and just more advanced demos in general. If you are looking for more advice on how to get set up with FLAR go over to <a href="http://www.mikkoh.com/blog/?p=182" target="_blank">this blog here</a>. This has everything you need to get going. Also, check out <a href="http://www.squidder.com/tag/flartoolkit/" target="_blank">squidder.com for some cool demos</a>.</p>
<p>Happy ARing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2009/04/15/getting-started-with-augmented-reality-flartoolkit/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Curiosity. The Driving force of The Earth.</title>
		<link>http://www.harrynorthover.com/blog/2009/02/08/curiosity-the-driving-force-of-the-earth/</link>
		<comments>http://www.harrynorthover.com/blog/2009/02/08/curiosity-the-driving-force-of-the-earth/#comments</comments>
		<pubDate>Sun, 08 Feb 2009 21:35:58 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=572</guid>
		<description><![CDATA[Here is a piece of artwork I did, continuing my series of emotions. The latest one is Curiosity. This piece uses a render from Cinema 4D and the adds a little Photoshop magic. Harry.]]></description>
			<content:encoded><![CDATA[<p>Here is a piece of artwork I did, continuing my series of emotions. The latest one is Curiosity.</p>
<p><a href="http://www.harrynorthover.com/blog/wp-content/uploads/2009/02/curiosity.jpg" rel="lightbox[572]"><img src="http://www.harrynorthover.com/blog/wp-content/uploads/2009/02/curiosity-1024x479.jpg" alt="Curiosity." width="612" height="286" /></a></p>
<p>This piece uses a render from Cinema 4D and the adds a little Photoshop magic.</p>
<p><strong>Harry.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2009/02/08/curiosity-the-driving-force-of-the-earth/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First works of &#8217;09.</title>
		<link>http://www.harrynorthover.com/blog/2009/02/05/first-works-of-09/</link>
		<comments>http://www.harrynorthover.com/blog/2009/02/05/first-works-of-09/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 21:36:45 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Motion Graphics/VFX]]></category>
		<category><![CDATA[Graphics]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=562</guid>
		<description><![CDATA[You have proabably noticed that i havent blogged myself for quite a while. The main reason for this is that I have been picking up Cinema4D and After Effects Cs4. I am finally starting to get the hang of the &#8230; <a href="http://www.harrynorthover.com/blog/2009/02/05/first-works-of-09/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>You have proabably noticed that i havent blogged myself for quite a while. The main reason for this is that I have been picking up Cinema4D and After Effects Cs4. I am finally starting to get the hang of the these pieces of software and its brilliant! This post is mainly to show you some of the work I have done in C4D. I have done 2 different wallpapers.</p>
<p><strong>Desire</strong> / Cinema 4D + Photoshop CS4</p>
<p><a href="http://www.harrynorthover.com/blog/wp-content/uploads/2009/02/desire.jpg" rel="lightbox[562]"><img class="alignnone size-large wp-image-563" title="Desire" src="http://www.harrynorthover.com/blog/wp-content/uploads/2009/02/desire-1024x640.jpg" alt="Desire" width="612" height="382" /></a></p>
<p><strong>Passion</strong> / Cinema 4D + Photoshop CS4</p>
<p><a href="http://www.harrynorthover.com/files/images/Passion.jpg" rel="lightbox[562]"><img class="alignnone" title="Passion" src="http://www.harrynorthover.com/files/images/Passion.jpg" alt="" width="612" height="612" /></a></p>
<p>For After Effects I have been creating little scenes with things like moving water which arent really worth posting here, but here is a screenshot of one of them.</p>
<p><strong>3D Ocean</strong> / After Effects.</p>
<p><img class="alignnone size-full wp-image-567" title="3d-ocean-screenshot" src="http://www.harrynorthover.com/blog/wp-content/uploads/2009/02/3d-ocean-screenshot.jpg" alt="3d-ocean-screenshot" width="611" height="407" /></p>
<p>So there you go, some of the stuff I have been doing to help me learn these tools. I feel that now my art work has really stepped up a pace now, and hopefully you will agree too <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2009/02/05/first-works-of-09/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PaperMash</title>
		<link>http://www.harrynorthover.com/blog/2009/01/10/535/</link>
		<comments>http://www.harrynorthover.com/blog/2009/01/10/535/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 19:43:46 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Actionscript 3]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=535</guid>
		<description><![CDATA[Here&#8217;s the first little tech demo of &#8217;09 and I think it is a pretty cool one. The first difference is that it is made with Papervision3D instead of my usual engine choice of Away3D. It also uses a relativly &#8230; <a href="http://www.harrynorthover.com/blog/2009/01/10/535/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.harrynorthover.com/files/flash/papermash/"><img class="alignnone size-full wp-image-559" title="PaperMash" src="http://www.harrynorthover.com/blog/wp-content/uploads/2009/01/preview3.jpg" alt="PaperMash" width="612" height="200" /><br />
</a></p>
<p>Here&#8217;s the first little tech demo of &#8217;09 and I think it is a pretty cool one. The first difference is that it is made with Papervision3D instead of my usual engine choice of Away3D. It also uses a relativly new library, <a href="http://www.everydayflash.com/blog/index.php/2008/09/03/as3dmod/" target="_blank">AS3DMod</a>, and works with the 4 most popular engines.  Now this library is a modifier library which can do some really cool stuff, so go on over and check it out.</p>
<p>Now for the demo. It creates a standard plane, then applys a noise and perlin modifier to it. The last thing is to apply a FlatShadeMaterial to the plane and just animate these properties in the enter frame function.</p>
<p>You can download it <a href="http://harry-northover-code-store.googlecode.com/files/PaperMash.zip">here</a>. To view the demo, click on the picture.</p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2009/01/10/535/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nano &#8211; The Remix.</title>
		<link>http://www.harrynorthover.com/blog/2008/12/21/nano-the-remix/</link>
		<comments>http://www.harrynorthover.com/blog/2008/12/21/nano-the-remix/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 02:24:02 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Motion Graphics/VFX]]></category>
		<category><![CDATA[After Effects]]></category>
		<category><![CDATA[Motion Graphics]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=450</guid>
		<description><![CDATA[In my effort to learn After Effects CS4 and create high quality visual effects/motion graphics stuff, I created this little recreation of the famous iPod Nano advert to help me learn how to use After Effects and the Trapcode Particular. &#8230; <a href="http://www.harrynorthover.com/blog/2008/12/21/nano-the-remix/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.harrynorthover.com/files/movie/Nano.mov" target="_blank"><img class="alignnone size-full wp-image-451" title="Nano" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/12/nano.png" alt="Nano" width="612" height="100" /></a></p>
<p>In my effort to learn <a href="http://www.adobe.com/products/aftereffects/" target="_blank">After Effects CS4</a> and create high quality visual effects/motion graphics stuff, I created this little recreation of the famous iPod Nano advert to help me learn how to use After Effects and the <a href="http://www.trapcode.com/products_particular.html" target="_blank">Trapcode Particular</a>.</p>
<p>Now this makes heavy use of Particular and uses the <em>wiggle()</em> function to create the random motion for a minute.</p>
<p>It&#8217;s fairly basic but it helped me learn the basics of camera movement and how to get to grips with animation in After Effects. There will hopefully be a lot more AE/VFX coming soon. I have a little Flash demo on the way, but after that it&#8217;s a free road!</p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/12/21/nano-the-remix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://www.harrynorthover.com/movie/Nano.mov" length="305562566" type="video/quicktime" />
		</item>
		<item>
		<title>BitmapRenderSession Demo.</title>
		<link>http://www.harrynorthover.com/blog/2008/12/08/bitmaprendersession-demo/</link>
		<comments>http://www.harrynorthover.com/blog/2008/12/08/bitmaprendersession-demo/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 21:39:24 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Away3D]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=388</guid>
		<description><![CDATA[(Updated: Download Link Added) Phew, a tech demo hasn&#8217;t found it&#8217;s way on here for quite a while! Here is one to let you know I&#8217;m back, but busy.  I finally managed to get an idea down on to paper, &#8230; <a href="http://www.harrynorthover.com/blog/2008/12/08/bitmaprendersession-demo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>(Updated: Download Link Added)</strong></p>
<p>Phew, a tech demo hasn&#8217;t found it&#8217;s way on here for quite a while! Here is one to let you know I&#8217;m back, but busy. </p>
<p>I finally managed to get an idea down on to paper, (well.. into the Flash IDE) that had been buzzing around in my head for ages! </p>
<p><span>There is a feature in Away3D call the <em>BitmapRenderSession</em>, and you assign this to the <em>session </em>variable of your <em>View3D</em>. What this tells the rendered to do is, instead of drawing directly to the screen, it draws everything inside a <em>BitmapData</em> object, but at a much smaller resolution. This Bitmap is then scaled up and show and the selected size. As you can imagine this saves a lot of work done, as you only have to draw at, say, a quarter of the resolution that you normally would. There is a catch. You will have figured this out already, but the lost of quality is tremendous the more you scale it up, but I have found out how to make this work for me. Just look at the demo. </span></p>
<p><span>What I have done here is create a plane, added then some animation to it. Then I am assigning a new <em>BitmapRenderSession</em> object to the View3D, and then changing the value of it when the mouse moves. If you look closely at the code, you will see that I am creating a new <em>BitmapRenderSession</em> for every frame. Not efficient at all, but I haven&#8217;t had the time to look into this properly, so if anyone knows a solution, let me know! </span></p>
<p><span>This at one end of the scale (with your mouse at the top), looks high quality, but when you move your mouse to the bottom, you can see the effect immediately. It becomes highly pixilated and, I think, fairly cool! I have seen this sort of effect on many sites, and always wondered how I could achieve it. Here is my solution, but one of many out there I&#8217;m sure. </span></p>
<p><span><a href="http://www.harrynorthover.com/blog/wp-content/uploads/1969/12/v21.swf"><img class="alignnone size-full wp-image-390" title="picture-2" src="http://www.harrynorthover.com/blog/wp-content/uploads/1969/12/picture-2.png" alt="picture-2" width="612" height="473" /></a></span></p>
<p><span><em>Your going to have to resize your browser, as pop-ups seem to be fairly hard in WordPress <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  </em></span></p>
<p>You can download the whole thing over at my Google Code site (look on the right). <span style="text-decoration: line-through;">It should be up there in a few days</span>. Here&#8217;s the link: <a href="http://harry-northover-code-store.googlecode.com/files/BMRS.zip">BMRS.zip</a></p>
<p>Harry.</p>
<p><span><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/12/08/bitmaprendersession-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Away3D Base Class</title>
		<link>http://www.harrynorthover.com/blog/2008/10/12/away3d-base-class/</link>
		<comments>http://www.harrynorthover.com/blog/2008/10/12/away3d-base-class/#comments</comments>
		<pubDate>Sun, 12 Oct 2008 12:19:13 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Away3D]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=226</guid>
		<description><![CDATA[In my effort to cut down the amount of code I write when using Away3D, I created this. It is a base class for projects using Away3D. What this does is create a series of protected functions that you can &#8230; <a href="http://www.harrynorthover.com/blog/2008/10/12/away3d-base-class/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In my effort to cut down the amount of code I write when using Away3D, I created this. It is a base class for projects using Away3D. What this does is create a series of protected functions that you can override and add in what you need, while the base class created the viewport, scene and everything else! This minimizes the amount of code you write in the actual project to a minimal amount!</p>
<p>Here is an example:</p>
<pre lang="actionscript3">package {
	import away3d.primitives.Sphere;
	import com.harrynorthover.base.AwayBase;

	public class BaseClass extends AwayBase {
		public var sphere:Sphere = new Sphere( { radius:100 } );

		public function BaseClass() {
			// Init(camZoom, viewX, viewY);
			Init(12, 0, 0);
		}

		override protected function Init3D():void {
			sphere.x = 0;
			sphere.y = 0;
			view.scene.addChild(sphere);
		}
	}
}</pre>
<p>See how much is has been reduced by? No faffing around with View3D and addChild(view) etc. </p>
<p>You can download the whole thing here: <a href="http://harry-northover-code-store.googlecode.com/files/Away3dBase.zip">http://harry-northover-code-store.googlecode.com/files/Away3dBase.zip</a></p>
<p>Hope it helps!<br />
Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/10/12/away3d-base-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Technophobia</title>
		<link>http://www.harrynorthover.com/blog/2008/10/05/technophobia/</link>
		<comments>http://www.harrynorthover.com/blog/2008/10/05/technophobia/#comments</comments>
		<pubDate>Sun, 05 Oct 2008 12:18:08 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[CS3]]></category>
		<category><![CDATA[Motion Graphics]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=220</guid>
		<description><![CDATA[This is just another this animation I put together last night. It uses TweenLite, and BitmapData combined with a number of filters, to create this rather groovy effect. I think this is one of my better peices, so I hope &#8230; <a href="http://www.harrynorthover.com/blog/2008/10/05/technophobia/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is just another this animation I put together last night. It uses TweenLite, and BitmapData combined with a number of filters, to create this rather groovy effect. I think this is one of my better peices, so I hope you enjoy it.</p>
<p><em><strong>NOTE: It is better viewed when you download it as I am having troubles with pop-ups in WordPress? When viewed on line it is incrediably slow, and not very good in general.</strong></em></p>
<p><a href="http://www.harrynorthover.com/files/flash/Technophobia.swf" target="_blank"><img class="alignnone size-full wp-image-222" title="Technophobia" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/10/technophobia.jpg" alt="" width="465" height="473" /></a></p>
<p>And here is the code:</p>
<pre lang="actionscript3">import gs.TweenLite;
import gs.easing.Expo;

var amountOfCircles:Number = 30;
var stageW:Number = stage.stageWidth;
var stageH:Number = stage.stageHeight;
var ranX:Number = Math.random() * stageW - 300;
var ranY:Number = Math.random() * stageH - 300;
var ranAlpha:Number = Math.random() * .5;

var blur:BlurFilter = new BlurFilter(10, 10, 1);
var blurBM:BlurFilter = new BlurFilter(20, 0, 1);
var glowBM:GlowFilter = new GlowFilter(Math.round( Math.random()*0xFFFFFF ));

var bmd:BitmapData = new BitmapData(550, 500, true, 0x000000);
var bm:Bitmap = new Bitmap(bmd);
bm.x = 0;
bm.y = 0;
addChild(bm);

for (var i:uint = 0; i &lt;= amountOfCircles; i++) {
	var circle:Circle = new Circle();
	circle.x = ranX + Math.random() * 100;
	circle.y = ranY + Math.random() * 100;
	circle.alpha = ranAlpha;
	circle.filters = [blur, glowBM];
	addChild(circle);
}

mover();
addEventListener(Event.ENTER_FRAME, enterFrame);
stage.addEventListener(Event.RESIZE, onResize);

function mover():void {

	for (var i:uint = 0; i &lt;= amountOfCircles; i++) {
			var object:DisplayObject = getChildAt(i);
			if (object == bm) {
				i++;
			}
			else {
				object.alpha = ranAlpha;
			TweenLite.to(object, 1, {x: ranX + Math.random() * 1000, y: ranX + Math.random() * 1000, alpha: 0, ease:Expo.easeInOut, onComplete:mover, blurFilter:{blurX:Math.random()*100, blurY:Math.random() * 100}, tint:Math.round( Math.random()*0xFFFFFF )});
			glowBM.color = Math.round( Math.random()*0xFFFFFF );
			glowBM.alpha = ranAlpha / 2;
			}
	}
}

function enterFrame(evt:Event):void {
	bmd.draw(stage);
	bmd.applyFilter(bmd, bmd.rect, new Point(0,0), blurBM);
	bmd.applyFilter(bmd, bmd.rect, new Point(0,0), glowBM);
	bmd.scroll(10, 0);
}

function onResize(evt:Event):void {
	bm.x = bm.y = 0;
	bm.width = stage.stageWidth;
	bm.height = stage.stageHeight;
}</pre>
<p>You can download the whole thing here: <a href="http://harry-northover-code-store.googlecode.com/files/Technophobia.zip">http://harry-northover-code-store.googlecode.com/files/Technophobia.zip</a></p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/10/05/technophobia/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Away3D Skyboxes</title>
		<link>http://www.harrynorthover.com/blog/2008/09/28/away3d-skyboxes/</link>
		<comments>http://www.harrynorthover.com/blog/2008/09/28/away3d-skyboxes/#comments</comments>
		<pubDate>Sun, 28 Sep 2008 16:46:33 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Away3D]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=204</guid>
		<description><![CDATA[This is my best demo yet, and it is crucial to my new site. This demo is using the sky box features in Away3D. For those of you that don&#8217;t know what a sky box is, it is a collection &#8230; <a href="http://www.harrynorthover.com/blog/2008/09/28/away3d-skyboxes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is my best demo yet, and it is crucial to my new site. This demo is using the sky box features in Away3D. For those of you that don&#8217;t know what a sky box is, it is a collection of images (usually 6, but in this case 5, I didn&#8217;t have a bottom one), that are displayed on the inside of a cube, and then the camera is inside the cube looking out at these images. This gives the impression of a sky, and ground and surroundings that are usually behind everything else. Using sky boxes prevents the sky being plain black.</p>
<p>Here is the demo (just click). To explore, click and drag to find your way around.</p>
<p><script type="text/javascript">&lt;br /&gt;
&lt;!--&lt;br /&gt;
function popup(mylink, windowname)&lt;br /&gt;
{&lt;br /&gt;
if (! window.focus)return true;&lt;br /&gt;
var href;&lt;br /&gt;
if (typeof(mylink) == 'string')&lt;br /&gt;
   href=mylink;&lt;br /&gt;
else&lt;br /&gt;
   href=mylink.href;&lt;br /&gt;
window.open(href, windowname, 'width=400,height=200,scrollbars=yes');&lt;br /&gt;
return false;&lt;br /&gt;
}&lt;br /&gt;
//--&gt;&lt;br /&gt;
</script></p>
<p><a onclick="return popup(this, 'notes')" href="http://www.harrynorthover.com/files/flash/Skybox.swf"><img class="alignnone size-full wp-image-205" title="Skybox" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/09/skybox.jpg" alt="" width="456" height="460" /></a></p>
<p>And here is the code:</p>
<pre lang="actionscript3">package {

	import away3d.cameras.HoverCamera3D;
	import away3d.containers.Scene3D;
	import away3d.containers.View3D;
	import away3d.materials.BitmapMaterial;
	import away3d.primitives.Skybox;
	import away3d.core.utils.Cast;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;

	public class SkyStuff extends Sprite {

		public var cam:HoverCamera3D = new HoverCamera3D( { zoom:2 } );
		public var scene:Scene3D = new Scene3D;
		public var view:View3D = new View3D( { camera:cam, scene:scene, x:0, y:0 } );

		// Skybox stuff.
		public var sky:Skybox;
		// Materials....
		public var sky_front_material:BitmapMaterial;
		public var sky_back_material:BitmapMaterial;
		public var sky_left_material:BitmapMaterial;
		public var sky_right_material:BitmapMaterial;
		public var sky_up_material:BitmapMaterial;
		public var sky_down_material:BitmapMaterial;

		// Movement vars.
		public var move:Boolean = false;
		public var lastPanAngle:Number;
		public var lastTiltAngle:Number;
		public var lastMouseX:Number;
		public var lastMouseY:Number;

		public function SkyStuff():void {
			addEventListener(Event.ADDED_TO_STAGE, Init);
		}

		private function Init(evt:Event):void {
			InitStage();
			InitEngine();
			InitMaterials();
			InitObjects();
			InitListeners();
		}

		private function InitStage():void {
			stage.align = StageAlign.TOP_LEFT
			stage.scaleMode = StageScaleMode.NO_SCALE;
		}

		private function InitEngine():void {
			cam.mintiltangle = -80;
			cam.maxtiltangle = 20;
			cam.targetpanangle = cam.panangle = 0;
			cam.targettiltangle = cam.tiltangle = 0;

			addChild(view);
		}

		private function InitObjects():void {
			sky = new Skybox( sky_front_material, sky_left_material, sky_back_material, sky_right_material, sky_up_material, sky_down_material );
			sky.quarterFaces();
			view.scene.addChild(sky);
		}

		private function InitMaterials():void {
			sky_front_material = new BitmapMaterial(Cast.bitmap(SkyFront));
			sky_back_material = new BitmapMaterial(Cast.bitmap(SkyBack));
			sky_left_material = new BitmapMaterial(Cast.bitmap(SkyLeft));
			sky_up_material = new BitmapMaterial(Cast.bitmap(SkyTop));
			sky_right_material = new BitmapMaterial(Cast.bitmap(SkyRight));
		}

		private function InitListeners():void {
			addEventListener(Event.ENTER_FRAME, EnterFrame);
			stage.addEventListener(MouseEvent.MOUSE_DOWN, MouseDown);
			stage.addEventListener(MouseEvent.MOUSE_UP, MouseUp);
			stage.addEventListener(Event.RESIZE, Resize);
		}

		private function EnterFrame(evt:Event):void {
			if (move) {
				cam.targetpanangle = 0.3 * (stage.mouseX - lastMouseX) + lastPanAngle;
				cam.targettiltangle = 0.3 * (stage.mouseY - lastMouseY) + lastTiltAngle;
			}
			cam.hover();
			view.render();
		}

		private function MouseDown(evt:MouseEvent):void {
			lastPanAngle = cam.panangle;
			lastTiltAngle = cam.tiltangle;
			lastMouseX = stage.mouseX;
			lastMouseY = stage.mouseY;
			move = true;
			stage.addEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
		}

		private function MouseUp(evt:MouseEvent):void {
			move = false;
			stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
		}

		private function onStageMouseLeave(evt:Event):void {
			move = false;
			stage.removeEventListener(Event.MOUSE_LEAVE, onStageMouseLeave);
		}

		private function Resize(evt:Event):void {
			view.x = stage.stageWidth / 3;
			view.y = stage.stageHeight / 3;
		}
	}

}</pre>
<p>Now,I personally think skyboxes are a good piece of knowledge to have, as they provide, in my opinion, an effective and fairly easy way to get a fairly natural looking environment quickly. Once you have a skybox in place, you can concentrate on the more important objects, and not making the surrounding environment look good.</p>
<p>There is also another way of creating sky-boxes and this is using the <a href="http://away3d.com/offlinedocs/Away3DAPIReferenceV2.1.html#Class-Skybox6" target="_blank">Skybox6 class</a>. This differs from the original method as instead of having six separate images, you have all your graphic in one jpg (png, or whatever).</p>
<p>I will also be trying to post versions of the examples in Papervision3d. This gives me a good understanding of how the engines differ, which ones I prefer and how they work.</p>
<p>You can download the whole thing (images as well!) here: <a href="http://harry-northover-code-store.googlecode.com/files/A3DSkyBox.zip" target="_blank">http://harry-northover-code-store.googlecode.com/files/A3DSkyBox.zip</a></p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/09/28/away3d-skyboxes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Artistic Flash.</title>
		<link>http://www.harrynorthover.com/blog/2008/09/27/artistic-flash/</link>
		<comments>http://www.harrynorthover.com/blog/2008/09/27/artistic-flash/#comments</comments>
		<pubDate>Sat, 27 Sep 2008 16:33:07 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=198</guid>
		<description><![CDATA[I have just spent the last day or so polishing up on my generative art in flash. This basically means creating random motion using TweenLite or/and Away3d. Here are some sceen shots of what I am talking about: (Just click &#8230; <a href="http://www.harrynorthover.com/blog/2008/09/27/artistic-flash/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just spent the last day or so polishing up on my generative art in flash. This basically means creating random motion using <a href="http://blog.greensock.com/tweenliteas3/" target="_blank">TweenLite</a> or/and <a href="http://www.away3d.org" target="_blank">Away3d</a>.</p>
<p>Here are some sceen shots of what I am talking about:</p>
<p><a href="http://www.harrynorthover.com/files/flash/RandomSquares.swf" target="_blank"><img class="alignnone size-full wp-image-199" title="Organic animation using TweenLite" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/09/tweenliteorganic.png" alt="" width="341" height="97" /></a></p>
<p><a href="http://www.harrynorthover.com/files/flash/3DOrganic.swf" target="_blank"><img class="alignnone size-full wp-image-200" title="Organic 3D" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/09/3dorganic.png" alt="" width="341" height="97" /></a></p>
<p><em>(Just click on the images to view them <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</em></p>
<p>These were made using a combination of TweenLite, Away3D and general brilliance <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . The first one actually uses no 3d, and I made the second one to see how easily it would be the get the same (or close to) result, but in 3D space.</p>
<p>Here is the code for the first one, just past it in the first frame.</p>
<pre lang="actionscript3">import gs.TweenFilterLite;
import gs.easing.Expo;

var Blur:BlurFilter = new BlurFilter(100, 100, 3);
var BMBlur:BlurFilter = new BlurFilter(20, 20, 3);

var bmd:BitmapData = new BitmapData(550, 400, true, 0x000000);
var bm:Bitmap = new Bitmap(bmd);
addChild(bm);

var currentSquare:Box = new Box();
currentSquare.filters = [Blur];
addChild(currentSquare);

function mover_single():void {
	TweenFilterLite.to(currentSquare, .5,  {   x:Math.random() * 550,
						   y:Math.random() * 400,
						   ease:Expo.easeInOut,
						   alpha:100/*Math.random() * 1*/,
						   blurFilter:{blurX:Math.random() * 0,
						   blurY:Math.random() * 50},
						   tint:Math.round( Math.random()*0xFFFFFF ),
						   onComplete:mover_single });
}

mover_single();

addEventListener(Event.ENTER_FRAME, EnterFrame);

function EnterFrame(evt:Event):void {
		bmd.draw(this);
		bmd.applyFilter(bmd, bmd.rect, new Point(0, 0), BMBlur);
		bmd.scroll(5, 0);
		//trace(getChildAt(1));
}</pre>
<p>And the second:</p>
<pre lang="actionscript3">package {

	import away3d.containers.Scene3D;
	import away3d.containers.View3D;
	import away3d.primitives.Cube;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.filters.BlurFilter;
	import flash.geom.Point;

	import gs.TweenLite;
	import gs.easing.Expo;

	public class Organic extends MovieClip {

		public var scene:Scene3D = new Scene3D;
		public var view:View3D = new View3D( { scene:scene, x:0, y:0 } );

		public var square:Cube;

		public var bmd:BitmapData = new BitmapData(stage.stageWidth, stage.stageHeight, true, 0x000000);
		public var bm:Bitmap = new Bitmap(bmd);

		public var BMBlur:BlurFilter = new BlurFilter(10, 0, 3);
		public var Blur:BlurFilter = new BlurFilter(5, 5, 3);

		public function Organic():void {
			addEventListener(Event.ADDED_TO_STAGE, Init);
			addEventListener(Event.ENTER_FRAME, EnterFrame);
		}

		private function Init(evt:Event):void {

			addChild(view);
			addChild(bm);

			view.camera.zoom = 1.5;

			square = new Cube( { height:200, width:200, material:"red#black" } );
			square.filters = [Blur];
			view.scene.addChild(square);

			Mover(); // This animates the box and then renders it/
		}

		private function Mover():void {
			TweenLite.to(square, .5, { x:Math.random() * -5550,
						   y:Math.random() * -5400,
						   z:Math.random() * 200,
						   ease:Expo.easeInOut,
						   onComplete:Mover,
						   alpha:Math.random() * 1,
						   rotationX:Math.random() * 360,
						   rotationY:Math.random() * 360,
						   height: Math.random() * 1000,
						   width: Math.random() * 1000 } );
			view.render();
		}

		private function EnterFrame(evt:Event):void {
			bmd.draw(this);
			bmd.applyFilter(bmd, bmd.rect, new Point(0, 0), BMBlur);
			bmd.scroll(5, 0);

			view.render();
		}
	}
}</pre>
<p>So there you go. Here are the links to download the whole package:</p>
<ul>
<li>The First one: <a href="http://harry-northover-code-store.googlecode.com/files/Random%20Squares.zip" target="_blank">http://harry-northover-code-store.googlecode.com/files/Random%20Squares.zip</a></li>
<li>The Second one: <a href="http://harry-northover-code-store.googlecode.com/files/3D%20Organic.zip" target="_blank">http://harry-northover-code-store.googlecode.com/files/3D%20Organic.zip</a></li>
</ul>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/09/27/artistic-flash/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Some more Away3D :)</title>
		<link>http://www.harrynorthover.com/blog/2008/09/25/some-more-away3d/</link>
		<comments>http://www.harrynorthover.com/blog/2008/09/25/some-more-away3d/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 21:14:29 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Away3D]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=192</guid>
		<description><![CDATA[I have just spent the last hour or so playing with Away3d (again ), and have just made this among other things. It is a sort of implementation of a particle system, but as I am still fairly rough around &#8230; <a href="http://www.harrynorthover.com/blog/2008/09/25/some-more-away3d/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just spent the last hour or so playing with Away3d (again <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), and have just made this among other things. It is a sort of implementation of a particle system, but as I am still fairly rough around the edges with Away3D, its probably not the best.</p>
<ol>
<li>For a start, I am a bit confused with the maths side of things. For example getting the most out of the view-ports and how to get the cameras in the right position. So this caused me that problem of all the dots being in the bottom <span style="text-decoration: line-through;">left</span> right corner. <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </li>
<li>When you go close up to the dots, some of them seem stretched.</li>
<li>Any ideas?</li>
</ol>
<p>Here&#8217;s a snap shot:</p>
<p><a href="http://www.harrynorthover.com/files/flash/3DParticle.swf" target="_blank"><img class="alignnone size-full wp-image-193" title="3D Particle" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/09/3d-particle.png" alt="" width="461" height="488" /></a></p>
<p>And the code:</p>
<pre lang="actionscript3">package {

	import away3d.cameras.HoverCamera3D;
	import away3d.containers.Scene3D;
	import away3d.containers.View3D;
	import away3d.primitives.Sphere;

	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;

	public class ThreeDParticle extends Sprite {

		public var cam:HoverCamera3D = new HoverCamera3D;
		public var scene:Scene3D = new Scene3D;
		public var view:View3D = new View3D( { x:550, y:400, scene:scene, camera:cam } );
		public var numOfDots:Number = 50;
		public var sphere:Sphere;
		public var cameraSpeed:Number = 0.3; // Approximately same speed as mouse movement.

		public var lastPanAngle:Number;
		public var lastTiltAngle:Number;
		public var lastMouseX:Number;
		public var lastMouseY:Number;
		public var move:Boolean;

		public function ThreeDParticle():void {
			// This is added so you can include this SWF in another.
			this.addEventListener(Event.ADDED_TO_STAGE, Init);
		}

		private function Init(evt:Event):void {
			addChild(view);

			cam.zoom = 1;
			cam.x = 0;
			cam.y = 0;

			for (var i:uint = 0; i &lt;= numOfDots; i++) {
				sphere = new Sphere( { material:"black#red", radius:20, x:Math.random() * 1000, y:Math.random() * 1000, z:Math.random() * 100, segmentsH:10, segmentsW:10 } );
				view.scene.addChild(sphere);
			}
			this.addEventListener(Event.ENTER_FRAME, enterFrame);
			this.stage.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown);
			this.stage.addEventListener(MouseEvent.MOUSE_UP, mouseLeave);

			view.render();
		}

		private function enterFrame(evt:Event):void {
			if (move) {
				cam.targetpanangle = cameraSpeed * (this.stage.mouseX - lastMouseX) + lastPanAngle;
				cam.targettiltangle = cameraSpeed * (this.stage.mouseY - lastMouseY) + lastTiltAngle;
			}

			cam.hover();
			view.render();
		}

		private function mouseDown(evt:MouseEvent):void {

			move = true;
			lastPanAngle = cam.targetpanangle;
			lastTiltAngle = cam.targettiltangle;
			lastMouseX = stage.mouseX;
			lastMouseY = stage.mouseY;

			cam.hover();
			view.render();
		}

		private function mouseLeave(evt:MouseEvent):void {
			move = false;
		}

	}
}</pre>
<p>And here&#8217;s the link to download it all: <a href="http://harry-northover-code-store.googlecode.com/files/3D%20Particle.zip">http://harry-northover-code-store.googlecode.com/files/3D%20Particle.zip</a></p>
<p>Right there you go for tonight!</p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/09/25/some-more-away3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Playing with Away3D</title>
		<link>http://www.harrynorthover.com/blog/2008/09/13/playing-with-away3d/</link>
		<comments>http://www.harrynorthover.com/blog/2008/09/13/playing-with-away3d/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 19:55:02 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Away3D]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=153</guid>
		<description><![CDATA[I have just spent a couple of hours last night getting to grips with Away3D. I just created a little demo that creates a few spheres and then adds an ENTER_FRAME event listener and responds to mouse movement. You can &#8230; <a href="http://www.harrynorthover.com/blog/2008/09/13/playing-with-away3d/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just spent a couple of hours last night getting to grips with Away3D. I just created a little demo that creates a few spheres and then adds an ENTER_FRAME event listener and responds to mouse movement.</p>
<p>You can download the whole thing here: <a href="http://harry-northover-code-store.googlecode.com/files/Away3DBasics.zip" target="_self">http://harry-northover-code-store.googlecode.com/files/Away3DBasics.zip</a></p>
<p>Here is a screene:</p>
<p><a href="http://www.harrynorthover.com/files/flash/Away3DBasics.swf" target="_blank"><img class="alignnone size-full wp-image-157" title="Away3D Basics" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/09/3d-screen1.jpg" alt="" width="461" height="546" /></a></p>
<p>And here&#8217;s the code:</p>
<pre lang="actionscript3" line="1">package {

	import away3d.cameras.HoverCamera3D;
	import away3d.containers.View3D;
	import away3d.primitives.Sphere;

	import flash.events.MouseEvent;
	import flash.display.Sprite;
	import flash.events.Event;

	import caurina.transitions.Tweener;

	public class Away3DBasics extends Sprite {

		public var stageHeightCenter:uint = stage.stageHeight / 2 - 100;
		public var stageWidthCenter:uint = stage.stageWidth / 2 + 100; 

		public var cam:HoverCamera3D = new HoverCamera3D( { zoom:1, focus:200 } );
		public var view:View3D = new View3D( { x:stageWidthCenter, y:stageHeightCenter, camera:cam } );

		public function Away3DBasics() {

			cam.steps = 16;

			// Add the view to the stage.
			addChild(view);

			// Create 20 spheres.
			for (var i:uint = 0; i &lt;= 20; i++)
			{
				var sphere:Sphere = new Sphere();
				sphere.invertFaces();
				sphere.x = Math.random() * 1000;
				sphere.y = Math.random() * 1000;
				sphere.z = Math.random() * 600;
				sphere.rotationX = Math.random() * 360;
				sphere.rotationY = Math.random() * 360;
				view.scene.addChild(sphere);
			}

			// Add Event listeners.
			this.addEventListener(Event.ENTER_FRAME, onRun);

			// Render the scene...
			cam.hover();
			view.render();

		}

		// This is the code for the ENTER_FRAME event.
		private function onRun(evt:Event):void {
			cam.rotationX = Math.random() * 360;
			cam.rotationY = Math.random() * 360;
			cam.rotationZ = Math.random() * 360;
			cam.pan(Math.random() * 360);
			Tweener.addTween(cam, { zoom: (stage.mouseY / stage.stageHeight) * 4 + 0.5, time:0.1, transition:"easeInOutExpo" } );
			cam.hover();
			view.render();
		}
	}
}</pre>
<p>There you go! I will be doing a lot more stuff with Away3D so keep an eye out!</p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/09/13/playing-with-away3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Particle System</title>
		<link>http://www.harrynorthover.com/blog/2008/09/03/particle-system/</link>
		<comments>http://www.harrynorthover.com/blog/2008/09/03/particle-system/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 23:02:16 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Actionscript 3]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=143</guid>
		<description><![CDATA[I have just started playing around with artistic art in Flash. I started off playing with particles, so here you go. I developed a simple Particle class, and here is how to implement it. To download the class: http://harry-northover-code-store.googlecode.com/files/Particle.zip To &#8230; <a href="http://www.harrynorthover.com/blog/2008/09/03/particle-system/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have just started playing around with artistic art in Flash. I started off playing with particles, so here you go. I developed a simple Particle class, and here is how to implement it.</p>
<p>To download the class: <a href="http://harry-northover-code-store.googlecode.com/files/Particle.zip" target="_self">http://harry-northover-code-store.googlecode.com/files/Particle.zip</a></p>
<p>To download the demo: <a href="http://harry-northover-code-store.googlecode.com/files/Demo.zip" target="_self">http://harry-northover-code-store.googlecode.com/files/Demo.zip</a></p>
<p>Here is a screene:</p>
<p><a href="http://www.harrynorthover.com/files/flash/ParticleTest.swf" target="_blank"><img class="alignnone size-full wp-image-144" title="Particle System Demo" src="http://www.harrynorthover.com/blog/wp-content/uploads/2008/09/particle.jpg" alt="" width="457" height="371" /></a></p>
<p>Here&#8217;s the code:</p>
<pre lang="actionscript3" line="1">package {

	import com.harrynorthover.particle.Particle;
	import flash.events.Event;
	import flash.display.Sprite;

	public class ParticleTest extends Sprite {

		private var emmiterX:Number = stage.stageWidth / 2;
		private var emmiterY:Number = stage.stageHeight / 2;

		public function ParticleTest() {
			stage.addEventListener(Event.ENTER_FRAME, onLoop, false, 0, true);
		}

		private function onLoop(evt:Event) {
			var p:Particle = new Particle(emmiterX, emmiterY, Math.random() * 11 - 6, Math.random() * -20, 1, Math.random() * 0xFFFFFF, 50, true);
			addChild(p);
		}

	}
}</pre>
<p>To get this working, all you need to do is create a MovieClip with a linkage ID of &#8216;Ball&#8217;, and you should be ready to go.</p>
<p>So there you are! If anyone would like me to explain the code, feel free to contact me.</p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/09/03/particle-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Away3D &#8211; Getting Started</title>
		<link>http://www.harrynorthover.com/blog/2008/09/03/away3d-getting-started/</link>
		<comments>http://www.harrynorthover.com/blog/2008/09/03/away3d-getting-started/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 21:22:51 +0000</pubDate>
		<dc:creator>Harry</dc:creator>
				<category><![CDATA[3D]]></category>
		<category><![CDATA[Experimental]]></category>
		<category><![CDATA[Away3D]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.harrynorthover.com/blog/?p=130</guid>
		<description><![CDATA[I have recently been trying to pick up Away3D. I have to say this engine is absolutly awesome! I have decided to build my portfolio using this, so this will help me get used to using the engine as well &#8230; <a href="http://www.harrynorthover.com/blog/2008/09/03/away3d-getting-started/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I have recently been trying to pick up <a href="http://away3d.com/" target="_blank">Away3D</a>. I have to say this engine is absolutly awesome!</p>
<p>I have decided to build my portfolio using this, so this will help me get used to using the engine as well as hopefully creating a sweet site! <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>During my efforts to find out more info and tutorials about this engine, I have found these links:</p>
<ul>
<li><a href="http://www.flashmagazine.com/tutorials/index/" target="_blank">http://www.flashmagazine.com/tutorials/index/</a> &#8211; This site has a whole host of tutorials and info on Away3D and Flash 3D in general.</li>
<li><a href="http://blog.paranoidferret.com/index.php/2008/03/28/getting-started-with-adobe-flex-and-away3d/" target="_blank">http://blog.paranoidferret.com/index.php/2008/03/28/getting-started-with-adobe-flex-and-away3d/ </a>- Getting Started with Away3D and Adobe Flex.</li>
<li><a href="http://www.thetechlabs.com/3d/setting-up-away3d-with-flex/" target="_blank">http://www.thetechlabs.com/3d/setting-up-away3d-with-flex/</a> &#8211; Setting up and using Away3D in Flex.</li>
<li><a href="http://flashenabledblog.com/2008/09/02/frameworks-away3d-away3d-web-roundup-tutorials-and-examples/" target="_blank">http://flashenabledblog.com/2008/09/02/frameworks-away3d-away3d-web-roundup-tutorials-and-examples/</a> &#8211; This is a haven for info on Away3D tutorials, samples and general info!</li>
<li><a href="http://www.lemlinh.com/flash-tutorial-away3d-pathextrude-cords-ribbons" target="_blank">http://www.lemlinh.com/flash-tutorial-away3d-pathextrude-cords-ribbons</a> &#8211; Away3D Path Extrude &#8211; Cords And Ribbons.</li>
<li><a href="http://blog.arnomanders.nl/index.php/archives/imageviewer3d-final-release/" target="_blank">http://blog.arnomanders.nl/index.php/archives/imageviewer3d-final-release/ </a>- This is a very cool application demonstrating the powers of Away3D.</li>
<li><a href="http://www.closier.nl/playground/greenplanet.html" target="_blank">http://www.closier.nl/playground/greenplanet.html</a> &#8211; This is a very cool example, indeed! Green Planet!!</li>
<li><a href="http://flash-3d.org/en/Create-the-Earth-and-heavens-in-less-than-an-hour-with-Away3D" target="_blank">http://flash-3d.org/en/Create-the-Earth-and-heavens-in-less-than-an-hour-with-Away3D</a> &#8211; This is a great tutorial for Away3D. This could be used for some sort of language selection of area selection or even a contact form. The potential is infinite&#8230; <img src='http://www.harrynorthover.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li><a href="http://www.ultrashock.com/forums/third-party-tools/away3d-93241.html" target="_blank">http://www.ultrashock.com/forums/third-party-tools/away3d-93241.html</a> &#8211; This sheds on Away3D and how it differs from Papervision3D.</li>
<li><a href="http://www.sharingb.com/programming/away3d/focus-on-away3d" target="_blank">http://www.sharingb.com/programming/away3d/focus-on-away3d</a> &#8211; Some very cool examples of Away3D in action.</li>
<li><a href="http://drawlogic.com/2008/04/11/3ds-parser-added-to-papervision-from-away3d/" target="_blank">http://drawlogic.com/2008/04/11/3ds-parser-added-to-papervision-from-away3d/</a> &#8211; 3DS Parser Added to Papervision3D from Away3D.</li>
<li><a href="http://docs.google.com/View?docid=dczs397v_12ftrscdd9" target="_blank">http://docs.google.com/View?docid=dczs397v_12ftrscdd9</a> &#8211; Getting started with Away3D.</li>
<li><a href="http://www.closier.nl/playground/temple.html" target="_blank">http://www.closier.nl/playground/temple.html</a> &#8211; This is a very cool example indeed!</li>
</ul>
<p>So there you go for starters. I hope this helps you guys out!</p>
<p>Harry.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.harrynorthover.com/blog/2008/09/03/away3d-getting-started/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

