<?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>GLOW interactive™ BLOG</title>
	<atom:link href="http://blog.glowinteractive.com/index.php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.glowinteractive.com</link>
	<description>codify, media, gaming, industry ramblings, finance</description>
	<lastBuildDate>Tue, 29 Jun 2010 21:39:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fun With Grid Based Transitions</title>
		<link>http://blog.glowinteractive.com/index.php/2010/06/fun-with-grid-based-transitions/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/06/fun-with-grid-based-transitions/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 17:49:04 +0000</pubDate>
		<dc:creator>Andy Poes</dc:creator>
				<category><![CDATA[Codify]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flash-10]]></category>
		<category><![CDATA[Flex-Builder]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=816</guid>
		<description><![CDATA[Using matrix style grids, I experiment with creating grid based transition effects that emanate from the center of the screen.]]></description>
			<content:encoded><![CDATA[<p>For a recent game we&#8217;re working on, I was tasked with coming up with a unique effect between sections. My mind started scrambling to what I could possibly come up wtih. I started thinking about what you could do by splitting the image up into grids and playing with the individual pieces. I&#8217;ve made transitions like this in the past so my mind naturally drifted towards ways of using this technique differently. I decided to try doing the same type of effects, but have the grid emanate from the center of the screen rather a simple top bottom, left right effect.</p>
<p>This task seemed simple at first, but the more I thought about it, the more complicated it seemed. The trick is being able to split your image up into a grid, and then affect the grid pieces in an order that would start from one corner, and work its way to the other corner. I immediately started sketching down grids and trying to figure out patterns. With the help of a fellow employee, we found a pattern that worked for all directions.</p>
<p>The solution revolves around using a grid where the pieces are numbered by row and column. Here&#8217;s a simple example:<br />
<span style="font-family: courier"><br />
[0,0][0,1][0,2]</span></p>
<p><span style="font-family: courier">[1,0][1,1][1,2]</span></p>
<p><span style="font-family: courier">[2,0][2,1][2,2]<br />
</span></p>
<p>Lets examine the above example. We know we want to move from one corner to the opposite corner. Examining the grid, there&#8217;s a simple pattern using addition and subtraction. Travelling along diagonals, the items in a line all add up or subtract to the same values. 0,0 = 0; 0,1 = 1; 1,0 =1; 0,2 = 2, 1,1 = 2 etc&#8230;</p>
<p>Using this as our base, the next trick is how to loop through. The following is how it would work for one corner:</p>
<pre class="brush: as3;">for (sum = 0; sum &gt;= lastRow + lastCol; ++sum)
{
     for (row = 0; row &gt;= lastRow; ++row)
     {
          col = sum - row;
     }
}</pre>
<p>After that, all you have to do is affect your bitmaps however you woud like. Below are a few examples I came up with; Just click the image to begin the transition.</p>
<p>The first is a simple alpha fade with a large grid. This allows you to see whats going on from the most basic standpoint:</p>
<p><a target="_blank" href="http://www.glowinteractive.com/staging/andy/flash/basic_alpha.html"><img src="http://blog.glowinteractive.com/wp-content/uploads/2010/06/basic_alpha.jpg" alt="" width="670" height="320" /></a></p>
<p>This example adds rotation and a subtle color transform:</p>
<p><a target="_blank" href="http://www.glowinteractive.com/staging/andy/flash/rotation_ct.html"><img src="http://blog.glowinteractive.com/wp-content/uploads/2010/06/rotation_ct.jpg" alt="" width="670" height="320" /></a></p>
<p>This version scales the x values inward and randomly moves their x position slightly. Again there is a subtle color transform:</p>
<p><a target="_blank" href="http://www.glowinteractive.com/staging/andy/flash/scale_x.html"><img src="http://blog.glowinteractive.com/wp-content/uploads/2010/06/scale_x.jpg" alt="" width="670" height="320" /></a></p>
<p>This last version is similar to the last only it uses the Y axis as opposed to the X:</p>
<p><a target="_blank" href="http://www.glowinteractive.com/staging/andy/flash/scale_y.html"><img src="http://blog.glowinteractive.com/wp-content/uploads/2010/06/scale_y.jpg" alt="" width="670" height="320" /></a></p>
<p>With this technique, I&#8217;m curious to see what other people can do with it!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/06/fun-with-grid-based-transitions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Glow Interactive Turns Google Suggest Technology Into iPhone Game</title>
		<link>http://blog.glowinteractive.com/index.php/2010/06/glow-interactive-turns-google-suggest-technology-into-iphone-game/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/06/glow-interactive-turns-google-suggest-technology-into-iphone-game/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 21:07:42 +0000</pubDate>
		<dc:creator>glow_press</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Press]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=870</guid>
		<description><![CDATA[Leading Interactive Marketing and Creative Agency Launches 'That's So Query,' a Mobile Game that Turns Online Searches into a Trivia Game for All Ages]]></description>
			<content:encoded><![CDATA[<h2>Leading Interactive Marketing and Creative Agency Launches &#8216;That&#8217;s So Query,&#8217; a Mobile Game that Turns Online Searches into a Trivia Game for All Ages</h2>
<p>NEW YORK, June 22 /PRNewswire/ &#8212; Glow Interactive (<a href="http://us.lrd.yahoo.com/_ylt=AnRbideIg2eJne5LUEyAil.xcq9_;_ylu=X3oDMTE2bTZvcXMzBHBvcwMxBHNlYwNuZXdzYXJzdGFydARzbGsDd3d3Z2xvd2ludGVy/SIG=1149liqlq/**http%3A//www.glowinteractive.com/">www.glowinteractive.com</a>), a leading New York-based interactive marketing, advertising and creative agency, today announced – just in time for summer travel and family road trips – the availability of <em>That&#8217;s So Query™</em>. <em>That&#8217;s So Query</em> is the first mobile game available at Apple&#8217;s App Store (<a href="http://us.lrd.yahoo.com/_ylt=AgAYaX6DmrFWfGr0yYMiWJyxcq9_;_ylu=X3oDMTE2NGt2YmRmBHBvcwMyBHNlYwNuZXdzYXJzdGFydARzbGsDaHR0cGJpdGx5dGhh/SIG=10vs4ltcu/**http%3A//bit.ly/thatssoquery">http://bit.ly/thatssoquery</a>) that utilizes <a href="http://us.lrd.yahoo.com/_ylt=AuMa9uYy1yONTc0_vXl6H2ixcq9_;_ylu=X3oDMTE2dGZnN2hwBHBvcwMzBHNlYwNuZXdzYXJzdGFydARzbGsDZ29vZ2xlc3VnZ2Vz/SIG=12a4p6cj5/**http%3A//www.google.com/support/websearch/bin/answer.py%3Fanswer=106230">Google Suggest</a> technology to turn completing the most popular Internet searches into a trivia-meets-Family-Feud-style game. The game is now available for$.99 per download.</p>
<p>&#8220;Our core business is developing rich media, advertising and creative experiences for major brands, but we&#8217;re branching out and developing our own intellectual property to add to our service offerings,&#8221; said Peter Levin, CEO and Co-Founder, Glow Interactive. &#8220;We&#8217;re an agency that believes in testing our own creative skills and tech-savvy. <em>That&#8217;s So Query</em> is a perfect blend of the Glow team&#8217;s creative-savvy, fun spirit and passion for playing with technology, not to mention an interesting social study.&#8221;</p>
<p>The game is based on Internet users entering text into a Google Search bar and having the Google Suggest technology pre-populate suggested terms or phrases based on Internet popularity in a drop down menu. The searcher can then choose from the most popular searches or complete their own unique typed search. Glow has taken this concept and incorporated it into <em>That&#8217;s So Query</em> more than 1,000 times over, providing hours of game play and fun.</p>
<p>The game<em> </em>is played through a simple interface that allows players to choose from multiple query completion options based on lead-in questions (such as &#8220;Why do we…&#8221; or &#8220;Where should I…&#8221;) and select which are the most popular phrases to finish those queries. The answers are typically an interesting, funny and odd look into what the majority of people are searching for online.</p>
<p>Players accumulate points for each answer they get that is ranked the most popular and then proceed to the next round. Each session of game play is 10 rounds with two bonus rounds that allow users to sort queries from most popular to least popular.</p>
<p>The game was developed under the GlowPlay brand, a subsidiary of Glow Interactive that focuses on developing casual, mobile and social games for clients.</p>
<p><strong>ABOUT GLOW INTERACTIVE:</strong></p>
<p>Glow Interactive is an award-winning, digital marketing and creative agency based in New York City that is driving an online evolution that puts consumers first, ensuring they&#8217;re engaged, entertained, challenged and connected no matter the medium. Over the last decade, Glow has focused on using the latest design practices and technology to develop successful, dynamic interactive marketing and advertising campaigns, branding initiatives, games and viral applications. The company&#8217;s success is illustrated by its long list of Fortune 500 and 1000 clients, including USA Network, Toyota, Showtime, Canon, Discovery Channel, Avon, History Channel, A&amp;E, Conde Nast, Wendy&#8217;s, Microsoft and others.</p>
<p>For more information about Glow Interactive, please visit <a href="http://us.lrd.yahoo.com/_ylt=AlOL44tJS4WnTRRZKtv2ptKxcq9_;_ylu=X3oDMTE2Y2F0b2VrBHBvcwMxBHNlYwNuZXdzYXJ0Ym9keQRzbGsDd3d3Z2xvd2ludGVy/SIG=1149liqlq/**http%3A//www.glowinteractive.com/">www.glowinteractive.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/06/glow-interactive-turns-google-suggest-technology-into-iphone-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Z-Buffer Implementation In Flash Alchemy</title>
		<link>http://blog.glowinteractive.com/index.php/2010/04/z-buffer-implementation-in-flash-alchemy/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/04/z-buffer-implementation-in-flash-alchemy/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 01:41:08 +0000</pubDate>
		<dc:creator>Jan Kalis</dc:creator>
				<category><![CDATA[Codify]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[alchemy]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[perspectively-correct-texture-mapping]]></category>
		<category><![CDATA[texture-mapping]]></category>
		<category><![CDATA[z-buffer]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=802</guid>
		<description><![CDATA[One way to perform perspectively correct texture mapping is via an actual calculation of the z-value at every pixel of the triangle to be rendered. That made me wonder if someone has implemented a simultaneous texture mapping and z-buffer in Flash using Alchemy.]]></description>
			<content:encoded><![CDATA[<p>One way to perform <a href="http://en.wikipedia.org/wiki/Texture_mapping#Perspective_correctness">perspectively correct texture mapping</a> is via an <a href="http://www.comp.nus.edu.sg/~lowkl/publications/lowk_persp_interp_techrep.pdf">actual calculation of the z-value at every pixel</a> of the triangle to be rendered. That made me wonder if someone has implemented a simultaneous texture mapping and z-buffer in Flash using <a href="http://labs.adobe.com/technologies/alchemy/">Alchemy</a>. It seems that no one has done that yet so I decided to put together a demo (to code it as fast as possible I used <a href="http://www.lysator.liu.se/~mikaelk/doc/perspectivetexture/">PTPOLY1.CPP</a> for the triangle rendering).</p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/gigl/gigl001/GiglTest.html"><img class="alignnone size-full wp-image-803" title="codify_post_gigl_001" src="http://blog.glowinteractive.com/wp-content/uploads/2010/04/codify_post_gigl_001.jpg" alt="" width="670" height="320" /></a></p>
<p>The demo shows 100 random (intersecting) triangles textured with a Lena image and is rendering at about 30FPS on my Windows 7/Intel Xeon 5160.</p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/gigl/gigl001/gigl.zip">Grab the source code!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/04/z-buffer-implementation-in-flash-alchemy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bresenham&#8217;s Line Algorithm in Flash Alchemy</title>
		<link>http://blog.glowinteractive.com/index.php/2010/04/bresenhams-line-algorithm-in-flash-alchemy/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/04/bresenhams-line-algorithm-in-flash-alchemy/#comments</comments>
		<pubDate>Sat, 17 Apr 2010 03:45:14 +0000</pubDate>
		<dc:creator>Jan Kalis</dc:creator>
				<category><![CDATA[Codify]]></category>
		<category><![CDATA[bresenham-line-algorithm]]></category>
		<category><![CDATA[flash-alchemy]]></category>
		<category><![CDATA[grass-effect]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=782</guid>
		<description><![CDATA[We are currently working on a platform game that will feature an occasional gravity flip. In some levels the effect will be accompanied by flipping the entire screen but in others it may be too distracting. For those levels we have to come up with other ways to convey that the gravity switched direction.]]></description>
			<content:encoded><![CDATA[<p>We are currently working on a platform game that will feature an occasional gravity flip. In some levels the effect will be accompanied by flipping the entire screen but in others it may be too distracting. For those levels we have to come up with other ways to convey that the gravity switched direction. My idea is to have some kind of grass or hair on platforms that will be influenced by the direction of the gravity force.</p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/bresenham_alchemy/Bresenham.html"><img class="alignnone size-full wp-image-783" title="codify_post_bresenham_alchemy" src="http://blog.glowinteractive.com/wp-content/uploads/2010/04/codify_post_bresenham_alchemy.jpg" alt="" width="400" height="300" /></a></p>
<p>A  quick demo showed that I would need a lot of line segments. It turned out that <a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/display/Graphics.html">Graphics</a>&#8216; moveTo and lineTo is too slow for that amount of lines. So I started looking for an <a href="http://labs.adobe.com/technologies/alchemy/">Alchemy</a> implementation of a line drawing algorithm, specifically <a href="http://en.wikipedia.org/wiki/Bresenham's_line_algorithm">Bresenham&#8217;s line algorithm</a>. The search was not successful so I rolled up my sleeves and started coding it myself &#8211; with help of existing Alchemy demos and a <a href="http://www.cs.unm.edu/~angel/BOOK/INTERACTIVE_COMPUTER_GRAPHICS/FOURTH_EDITION/PROGRAMS/bresenham.c">C implementation of the algorithm</a>. <a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/bresenham_alchemy/Bresenham.html">Here&#8217;s the result.</a> Click it to switch between Alchemy rendering and Graphics rendering.</p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/bresenham_alchemy/bresenham.zip">Source code here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/04/bresenhams-line-algorithm-in-flash-alchemy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Coolest thing since Sliced Bread: Fontshop releases Web FontFonts</title>
		<link>http://blog.glowinteractive.com/index.php/2010/02/coolest-thing-since-sliced-bread-fontshop-releases-web-fontfonts/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/02/coolest-thing-since-sliced-bread-fontshop-releases-web-fontfonts/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 21:25:03 +0000</pubDate>
		<dc:creator>Meagan Burns</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Design-Tips]]></category>
		<category><![CDATA[Fonts]]></category>
		<category><![CDATA[Fontshop]]></category>
		<category><![CDATA[Web-FontFonts]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=758</guid>
		<description><![CDATA[When I opened my monthly FontShop newsletter this morning, I swear I heard angels singing. FontShop has released over 30 of it's most popular faces in WOFF and EOT Lite format.]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">When I opened my monthly FontShop newsletter this morning, I swear I heard angels singing. FontShop has released over 30 of it&#8217;s most popular faces in WOFF and EOT Lite format. This includes faces such as FF DIN® (yes!), FF Meta®, FF Dax®, FF Kievit® and others. WOFF/EOT Lite format is a type of font file specifically made for web to be used in conjunction with the @fontface CSS property. This property allows designers to use any typeface on the web, providing the font file is in the correct safe for web format. Yes, you heard me, <strong>THIS PROPERTY ALLOWS DESIGNERS TO USE ANY TYPEFACE ON THE WEB</strong>. Hear those angels yet? Click the image above to view Fontshop&#8217;s blog post and learn more about how to utilize their Web FontFonts. If you are experiencing a lost connection when viewing their post, sit tight, there are many excited designers trying to access this page as well.</p>
<p style="text-align: left;"><a href="http://www.fontshop.com/blog/?p=1763" target="_blank"><img class="alignnone size-full wp-image-761" title="design_post_fontfonts" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/design_post_fontfonts.jpg" alt="Fontshop's announcement" width="670" height="320" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/02/coolest-thing-since-sliced-bread-fontshop-releases-web-fontfonts/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Motion Blur of a Spinning Sphere in iPhone OpenGL ES</title>
		<link>http://blog.glowinteractive.com/index.php/2010/02/motion-blur-of-a-spinning-sphere-in-iphone-opengl-es/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/02/motion-blur-of-a-spinning-sphere-in-iphone-opengl-es/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 19:15:49 +0000</pubDate>
		<dc:creator>Jan Kalis</dc:creator>
				<category><![CDATA[Codify]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Motion-Blur]]></category>
		<category><![CDATA[OpenGL-ES]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=655</guid>
		<description><![CDATA[The task is simple: how to go about a motion blur of a fast-spinning OpenGL ES sphere on the iPhone? That is, how to achieve the following effect...]]></description>
			<content:encoded><![CDATA[<p>The task is simple: how to go about a motion blur of a fast-spinning OpenGL ES sphere on the iPhone? That is, how to achieve the following effect.</p>
<p><img class="size-full wp-image-724 alignnone" title="iphone_codify_blur_globe" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/iphone_codify_blur_globe.jpg" alt="openGL ES Blur" width="670" height="500" /></p>
<p><strong> </strong></p>
<p><strong>Attempt #1 &#8211; drawing on top of previous frames &#8211; rejected</strong></p>
<p>Very simple but occasionally powerful effect of blending with the previous frame (looks like what&#8217;s going on when you get hit in Call of Duty 4). It works for slow motion, but as soon as the globe starts spinning quickly, you can see the individual frames.</p>
<p><strong>Attempt #2 &#8211; accumulation buffer using FBO &#8211;  rejected</strong></p>
<p>Also simple to implement. Basically it&#8217;s simulating the accumulation buffer (which is not available on the iPhone). I wasn&#8217;t able to find a sweet spot between a nice-looking motion blur and maintaining high fps (even if the rendering is performed at a much lower resolution).</p>
<p><strong>Attempt #3 &#8211; screen space blurring &#8211; rejected</strong></p>
<p>Originally sounded like a good idea &#8211; thought no one would be able to tell that it&#8217;s only a 2d blur. Not true. Rejected.</p>
<p><strong>Attempt #4 &#8211; pre-blurred texture maps &#8211; used</strong></p>
<p>Main idea: if the globe is spinning along its &#8220;main&#8221; axis (south pole to north pole), the motion blur can be simulated by just blurring the texture horizontally. How about generating a couple of pre-blurred texture maps corresponding to different rotations axes.</p>
<p><img class="alignnone size-full wp-image-775" title="iphone_codify_blur_globe_2" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/iphone_codify_blur_globe_2.jpg" alt="Globe Blur" width="670" height="320" /></p>
<p>Before I get into details I must say that it works really well. I only use 32 different versions (making the amount of rotation axes 64) and it&#8217;s really hard to tell that it&#8217;s blurred along an axis that&#8217;s slightly off (in the actual iPhone application that this was developed for I am actually snapping to the correct axis which is impossible to notice).</p>
<p>The next disadvantage is also obvious: I only have a limited amount of blur values. In the application I work around that by accelerating and decelerating rapidly.</p>
<p><em>Step 1</em></p>
<p>How to find the best distribution of 32 points on a sphere (actually 64, but the other 32 are just opposite versions of the first 32)? I wrote a <a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/blurred_globe/points_distribution.swf">Flash application</a> that does it for me. It runs a simulation of the following algorithm. Thirty two points are randomly positioned in space, each has a positive charge and is restricted to the unit sphere. The purpose of the positive charge is that the points are repulsed from each other, eventually ending up in an even distribution.</p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/blurred_globe/points_distribution.swf" target="_blank"><img class="alignnone size-full wp-image-776" title="iphone_codify_globe_distributed_points" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/iphone_codify_globe_distributed_points.jpg" alt="Distributed Points" width="670" height="320" /></a></p>
<p><em>Step 2</em></p>
<p>Blurring the original texture by a general axis is just a matter of writing down a couple of equations and hoping that you haven&#8217;t made a typo.</p>
<p><em>Step 3</em></p>
<p>Using the pre-blurred textures is now a piece of cake. Just find the nearest axis and use the corresponding texture.</p>
<p><strong>Attempt #5 &#8211; am I missing something obvious here?</strong></p>
<p>Let me know if I am.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/02/motion-blur-of-a-spinning-sphere-in-iphone-opengl-es/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Developing Banners with Flex Part I</title>
		<link>http://blog.glowinteractive.com/index.php/2010/02/developing-banners-with-flex-part-i/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/02/developing-banners-with-flex-part-i/#comments</comments>
		<pubDate>Fri, 19 Feb 2010 17:43:02 +0000</pubDate>
		<dc:creator>Andy Poes</dc:creator>
				<category><![CDATA[Codify]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[Flex-Builder]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=715</guid>
		<description><![CDATA[This article is part of a multi-part series on using FLEX builder for banner development. The article here represents a starting point for developing standard flash media with FLEX. In future articles we will look into rich media development, and how to integrate 3rd party api's such as Doubleclick or Pointroll into your FLEX projects.]]></description>
			<content:encoded><![CDATA[<p>This article is part of a multi-part series on using <a href="http://www.adobe.com/products/flex/">FLEX builder</a> for banner development. The article here represents a starting point for developing standard flash media with FLEX. In future articles we will look into rich media development, and how to integrate 3rd party api&#8217;s such as <a href="http://www.doubleclick.com/">doubleclick</a> or <a href="http://www.pointroll.com/">pointroll</a> into your FLEX projects. As a short disclaimer, this article assumes you understand concepts of abstract classes, polymorphism and the basics of FLEX builder.</p>
<p>Using FLEX to develop banners is not a common technique. For some, it may seem a bit gratuitous versus just using flash. Hopefully by the end of this series, I can convert a few people to make a switch. For a lot of designer/developers, FLEX is a foreign tool that is oft left unused, but when it comes to the creation of multiple banners in multiple sizes, in a short timeline, FLEX allows you to build banners faster that run faster and smoother than using Flash IDE. This is not to say that Flash can&#8217;t accomplish these things that FLEX can, but this is to say that once you learn how to appropriately include FLEX in your development process, it will save you time and allow you to focus on the parts of the banner that really matter &#8211; the creative.</p>
<p>One of the biggest hurdles for flash developers is how to get their banner designs into FLEX. While this article is not about how to use FLEX, I&#8217;ll briefly explain the model we use at Glow. We design all of our banners layouts within flash IDE. We usually put everything inside of one movieclip, typically named MCStage and we set the clip for export with a package that matches our banner (i.e. com.client.project.size.MCStage). By giving all your banners the same export clip, you can begin to easily template how graphics are brought into Flex. Within MCStage, you can setup your banner however you would normally setup a banner on the timeline. Then when you&#8217;re done, you simply generate a SWC file and save it to a swc library folder inside your flex project.</p>
<p>To begin, lets look at the problems FLEX helps us tackle:</p>
<p>• Easy banner creation, multiple resizing<br />
• Changing constants between multiple files, such as frame-rate and dimensions<br />
• Handling clickTag&#8217;s for multiple vendors<br />
• Focus more time on the creative, not the structure</p>
<p>To address a quick criticism for those flash IDE die-hards, I do understand that its super simple to change the dimensions of a banner, frame-rate, or clickTags within flash IDE. The reason that I started using FLEX to develop banners is not because It&#8217;s hard to change these items within flash, but because it becomes time consuming to change these things when you&#8217;re producing 50+ banners a week across multiple sizes, and need to make changes to hundreds of banners at the same time. While your projects may not always be this large, these principles apply equally to small projects as they do to large projects.</p>
<p>The foundation of any template is an abstract class and/or an interface. This foundation class will provide you with enough functionality to cover any banner creative as well as be customizable enough to grow into any media project imaginable. For my example, I&#8217;ve created both an interface (IBanner) and an abstract (AbstractBanner) from which all online media projects I build extend. This file should facilitate all foundation principles of a banner that you would find useful in any online media situation. By examining the interface file, IBanner, you get an idea of what this foundation looks like:</p>
<pre class="brush: as3;">public interface IBanner
{
	function init(event:Event=null):void;
	function onReady():void;
	function start():void;
	function stop():void;
	function reset():void;
	function bannerLoop(event:TimerEvent):void
	}</pre>
<p>Any IBanner will accurately handle its own loading, starting, stopping, resetting and looping. Lets take a brief walk through how I implement these functions. To begin, lets look at our constructor:</p>
<pre class="brush: as3;">public function AbstractBanner()
	{
		//initialize any foundation objects here;

		this.bannerState = BannerConstants.STATE_LOADING;
		this.loaderInfo.addEventListener(Event.INIT, this.init);
	}</pre>
<p>This function is very simple. The first thing we do is set our bannerState to a loading state, add an event listener to listen for when the file itself is completely loaded. This ensures the banner doesn&#8217;t begin before everything is loaded. bannerState is simply a variable you can check against to ensure that nothing is happening when it shouldn&#8217;t be. In its most basic form, there are three banner states: Loading, Ready, and Complete.</p>
<pre class="brush: as3;">public function init(event:Event=null):void
	{
		this.stage.frameRate = BannerConstants.FRAME_RATE;
		this.stage.scaleMode = StageScaleMode.NO_SCALE;

		this.loaderInfo.removeEventListener(Event.INIT, this.init);

		this.bannerState = BannerConstants.STATE_READY;
	}</pre>
<p>Then, in the init function, we can begin to set up constants that can be shared between projects. These basics listed here are frameRate and scaleMode but can include anything you&#8217;d need to be the same across multiple files, such as tune-in text, load locations, security permissions, etc. The last thing we do is set the banner state to Ready which tells our main loop that you can start running. From here, programming your banner is pretty simple. I use onReady to set up any graphics, and then call any number of custom functions to animate the graphics of the banner. At this point, start and stop are not as necessary for standard banners, but they become much more useful when extending this class for rich media.</p>
<p>By having all your banners extend from this template, it allows you to easily set up similar behavior for all your banners. Nothing exemplifies this more than clickTag&#8217;s. Our navigateToUrl function looks as follows:</p>
<pre class="brush: as3;">public function navigateToUrl(url:String, description:String=&quot;&quot;):void
	{
		var sURL:String;
		if ((sURL = root.loaderInfo.parameters.clickTag))
		{
			navigateToURL(new URLRequest(sURL), &quot;_blank&quot;);
		}
		else
		{
			throw new Error(&quot;clickTag not found in loaderInfo.parameters, but user did click banner, Actionscript 3.0 Flash Player 9, &quot; + new Date());
		}
	}</pre>
<p>This function represents a standard <a href="http://gts.dartmotif.com/validator/">Dart clickTag</a> (because the majority of our banners are served through Dart). When we need to make a clientX version of the banner, all we have to do is make a new abstract that extends this class, customize the navigateToUrl function, and then extend your banner from that.</p>
<p>The last function of importance is bannerLoop. This is the tree from which all the banners&#8217; branches stem. The last point problem I listed above is focusing on creative rather than building banner structures and that is where this function becomes essential. At its essence, our bannerLoop provides a model for building any number of effects, particle generators, syncing banners and much more. The foundation of all of this comes from our updateObjects model. UpdateObjects will be explained in more detail in a future article, but if you look at the function below, you can see how they are implemented:</p>
<pre class="brush: as3;">public function bannerLoop(event:TimerEvent):void
	{
		switch(this.bannerState)
		{
			case BannerConstants.STATE_LOADING:
				//nothing
				break;
			case BannerConstants.STATE_READY:
				if (this.updateObjects.totalUpdateObjects &gt; 0)
				{
					var now:Number = getTimer();
					var dt:Number = now - this.oldTime;
					this.oldTime = now;
					dt = dt &lt; 0 ? 0 : dt;

					this.currentAnimationTime += dt;
				}

				this.updateObjects.update(this.currentAnimationTime);

				if (this.currentAnimationTime &gt; BannerConstants.BANNER_LENGTH)
				{
					this.bannerState = BannerConstants.STATE_END;
				}

				break;
			case BannerConstants.STATE_END:
				//nothing
				break;
		}
	}</pre>
<p>Lastly, an ancillary bonus of building a template is to provide functionality that you use during the development of banners for all your banners. One example of this is a function we use in virtually every banner project, hideDisplayObject(&#8230; args). This function sets the visibility of any clip you pass to it. I use this all the time to hide stage items after their alpha is tweened to 0.</p>
<pre class="brush: as3;">protected function hideDisplayObject(... args):void
	{
		for each (var target:DisplayObject in args)
		{
			if (target)
			{
				target.visible = false;
			}
		}

	}</pre>
<p>You can begin to see how important building a solid foundation for your banners becomes. In future articles we&#8217;ll discover how this abstract can be used to build any online media project from simple video players to full page take overs.  However, with the ideas outlined here, you have a foundation from which you can quickly build, duplicate, and resize any standard media project. If you have any questions about the ideas outlined here, feel free to leave a comment below.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/02/developing-banners-with-flex-part-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Teaching Worms to Crawl Using Genetic Algorithms</title>
		<link>http://blog.glowinteractive.com/index.php/2010/02/teaching-worms-to-crawl-using-genetic-algorithms/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/02/teaching-worms-to-crawl-using-genetic-algorithms/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 13:27:28 +0000</pubDate>
		<dc:creator>Jan Kalis</dc:creator>
				<category><![CDATA[Codify]]></category>
		<category><![CDATA[Crawling-Creatures]]></category>
		<category><![CDATA[Emergent-Behavior]]></category>
		<category><![CDATA[Evolution]]></category>
		<category><![CDATA[Genetic-Algorithms]]></category>
		<category><![CDATA[Neural-Networks]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=688</guid>
		<description><![CDATA[This is a follow-up to the first article about training creatures to walk using neural networks and genetic algorithms. The next creature I decided to train is a worm. Here's the result (generation ~200).]]></description>
			<content:encoded><![CDATA[<p>This is a follow-up to <a href="http://blog.glowinteractive.com/index.php/2010/02/on-using-genetic-algorithm-to-train-neural-network-driven-creatues-to-walk-in-flash/">the first article</a> about training creatures to walk using neural networks and genetic algorithms. The next creature I decided to train is a worm. Here&#8217;s the result (generation ~200).</p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/genetic/worms.swf" target="_blank"><img class="alignnone size-full wp-image-773" title="codify_genetic_algorithms_worms" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/codify_genetic_algorithms_worms.jpg" alt="Genetic Algorithms - Worms" width="670" height="320" /></a></p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/genetic/creatures.zip">Get the source code</a> (contains the walking creatures, too).</p>
<p>PS: Again, if you happen to evolve an interesting locomotion, send me your code/swf and I&#8217;ll post it here.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/02/teaching-worms-to-crawl-using-genetic-algorithms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On Using Genetic Algorithms to Train Neural Network Driven Creatures to Walk in Flash</title>
		<link>http://blog.glowinteractive.com/index.php/2010/02/on-using-genetic-algorithm-to-train-neural-network-driven-creatues-to-walk-in-flash/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/02/on-using-genetic-algorithm-to-train-neural-network-driven-creatues-to-walk-in-flash/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 04:32:26 +0000</pubDate>
		<dc:creator>Jan Kalis</dc:creator>
				<category><![CDATA[Codify]]></category>
		<category><![CDATA[Emergent-Behavior]]></category>
		<category><![CDATA[Evolution]]></category>
		<category><![CDATA[Genetic-Algorithms]]></category>
		<category><![CDATA[Neural-Networks]]></category>
		<category><![CDATA[Walking-Creatures]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=595</guid>
		<description><![CDATA[I remember seeing Karl Sims' video Evolved Virtual Creatures a long time ago. I was completely stunned but unfortunately forgot about it for many years. I was reminded of it again last year when reading about training neural networks using genetic algorithms and decided to evolve my own creatures.]]></description>
			<content:encoded><![CDATA[<p>I remember seeing <a href="Evolved Virtual Creatures">Karl Sims&#8217; video Evolved Virtual Creatures</a> a long time ago. I was completely stunned but unfortunately forgot about it for many years. I was reminded of it again last year when reading about training <a href="http://en.wikipedia.org/wiki/Neural_network">neural networks</a> using <a href="http://en.wikipedia.org/wiki/Genetic_algorithm">genetic algorithms</a> (Tom Mitchell&#8217;s <a href="http://www.cs.cmu.edu/~tom/mlbook.html">Machine Learning</a> is highly recommended) and decided to evolve my own creatures.</p>
<p><strong>Preparation</strong></p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/genetic/ants.swf">Here is the first demo.</a></p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/genetic/ants.swf" target="_blank"><img class="alignnone size-full wp-image-770" title="codify_genetic_algorithms_ants" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/codify_genetic_algorithms_ants.jpg" alt="Genetic Algorithms - Ants" width="670" height="320" /></a></p>
<p>The task is to teach an ant to get to the end of the L-shaped corridor as fast as possible. All an ant is allowed to do (every frame) is rotate freely and turn on its forward thrust (acceleration). Ant&#8217;s behavior is encoded in its DNA consisting of several genes. Every gene prescribes what an ant does in the frame that corresponds to the index of the gene in the DNA. Specifically, each gene is a 3-bit number encoding the ant&#8217;s possible behavior:</p>
<pre class="brush: as3;">
var gene:int = dna[simulationStep];
var acceleration:Boolean = gene &amp; 1;
var turnPositive:Boolean = gene &amp; 2;
var turnNegative:Boolean = gene &amp; 4;
</pre>
<p>The <a href="http://en.wikipedia.org/wiki/Genetic_operator">genetic operators</a> used are not tuned for this particular application. What you see on the screen is one population of 100 individuals. It takes time but if you let them learn you&#8217;ll see that in the end they achieve the goal in the most optimal way.</p>
<p><strong>Evolution</strong></p>
<p>Encouraged by the result (also, it only took about 2 hours to code) I wanted more. Without further ado I present the <strong><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/genetic/walking_gen0300.swf">walking creatures</a><span style="font-weight: normal;"> (after 300 generations)</span></strong>.</p>
<p><a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/genetic/walking_gen0300.swf" target="_blank"><img class="alignnone size-full wp-image-771" title="codify_genetic_algorithms_walking" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/codify_genetic_algorithms_walking.jpg" alt="Genetic Algorithms - Walking" width="670" height="320" /></a></p>
<p>The task here is to give physics-based (thank you, <a href="http://box2dflash.sourceforge.net/">Box2D</a>!) ragdoll figures brains to be able to move a certain distance. Following Ngo and Marks&#8217; paper <a href="http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.42.2303">Spacetime Constrains Revisited</a> I set out to make my own creatures in Flash. In short, I am using a genetic algorithm to train a neural network that controls motors in the creature&#8217;s joints. The <a href="http://en.wikipedia.org/wiki/Fitness_function">fitness function</a> is plainly how far a creature can get within a certain amount of time. The neural network used is very simple &#8211; it&#8217;s a single layer <a href="http://en.wikipedia.org/wiki/Feedforward_neural_network">feed-forward</a> neural network with the inputs being the angles at every joint, vertical velocity and horizontal distance traveled and the outputs the speed of the motor and the target angle of every joint.</p>
<p><strong>Results</strong></p>
<p>I was really happy to see results only after about 300 generations (it took a night though): a frog. Excited, I ran it again and again and interestingly, I only got frogs. I tried to change the fitness function a bit so that the creatures that touch the ground are penalized but didn&#8217;t get anything interesting. Also tried to make the torso a bit heavier and an inchworm-like creature evolved. If you like, you can try to evolve your own creatures, <a href="http://blog.glowinteractive.com/wp-content/themes/glow/flash/jan/genetic/walking_gen0000.swf">here&#8217;s the link to first generation</a> (with a little bit of creativistic randomization to start with). At the end of every generation, the best DNA is <a href="http://www.adobe.com/support/flash/action_scripts/actionscript_dictionary/actionscript_dictionary808.html">traced </a> so if you happen to get some interesting locomotion, please send it to me and I&#8217;ll post it here. (Source code to follow after a brief clean-up.)</p>
<p><strong><span style="color: #ff0000;">Edit:</span></strong><strong> </strong>Get the source code in the <a href="http://blog.glowinteractive.com/index.php/2010/02/teaching-worms-to-crawl-using-genetic-algorithms/">next GA post</a>.</p>
<p><strong>What&#8217;s Next</strong></p>
<p>My plan is to try what behaviors will emerge with different shapes, physics set up, fitness functions or selection algorithms.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/02/on-using-genetic-algorithm-to-train-neural-network-driven-creatues-to-walk-in-flash/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Removing the Dreaded &#8220;Copy&#8221; Text from Photoshop Layers&#8230;</title>
		<link>http://blog.glowinteractive.com/index.php/2010/02/photoshop-remove-copy/</link>
		<comments>http://blog.glowinteractive.com/index.php/2010/02/photoshop-remove-copy/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 15:47:25 +0000</pubDate>
		<dc:creator>Meagan Burns</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Design-Tips]]></category>
		<category><![CDATA[Photoshop]]></category>

		<guid isPermaLink="false">http://blog.glowinteractive.com/?p=677</guid>
		<description><![CDATA[One of the most annoying things in Photoshop that semi-organized users need to deal with, is the fact that "copy" is added to every duplicated layer, leaving you with a mess of "layer copy 1, layer copy 2, layer copy 3, etc. etc." Luckily, there's an <del>app</del> script for that.]]></description>
			<content:encoded><![CDATA[<p>One of the most annoying things in Photoshop that semi-organized users need to deal with, is the fact that &#8220;copy&#8221; is added to every duplicated layer, leaving you with a mess of &#8220;layer copy 1, layer copy 2, layer copy 3, etc. etc.&#8221; Luckily, there&#8217;s an <span style="text-decoration: line-through">app</span> script for that.</p>
<p><a title="Get rid of Copy Script" href="http://ps-scripts.com/bb/viewtopic.php?p=13467" target="_blank">Download the script here</a>, and add it to your Adobe Extensions manager. Reopen Photoshop and voila! It will be under Window &gt; Extensions. Fire it up, give it a few minutes and boom! No more annoying &#8220;copy 1,2,3&#8230;&#8221; and the resulting hair pulling.  It works for MAC and Windows.  No more of this&#8230;</p>
<p><a title="Get rid of Copy Script" href="http://ps-scripts.com/bb/viewtopic.php?p=13467" target="_blank"><img class="alignleft size-full wp-image-680" src="http://blog.glowinteractive.com/wp-content/uploads/2010/02/design_post_remove_copy_script.jpg" alt="Photoshop Remove &quot;Copy&quot; Text Script" width="670" height="236" /></a></p>
<p>Now, in retrospect, Photoshop has really made our lives so much easier,  so to bash Adobe&#8217;s poor decision making in adding &#8220;copy&#8221; to duplicated layers seems trivial. Just like the most current generation will never know what it was like to blow into a Nintendo Cartridge to get it to work, my generation will never know what it was like to design without the aid of the computer. Phototypesetting, paste-ups, rub-on lettering— are these panels in Illustrator or something?</p>
<p>Anyway, thank you to Mike Hale for making all of our lives a bit easier, maybe you can make an extension to better Photoshop&#8217;s Pen tool? *Hint* *Hint*</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.glowinteractive.com/index.php/2010/02/photoshop-remove-copy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
