<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">

	<channel>
		<title><![CDATA[ActionScript.org Flash, Flex and ActionScript Resources - Blogs]]></title>
		<link>http://www.actionscript.org/resources</link>
		<description><![CDATA[ActionScript.org is the premier ActionScript developer community online for Flash and Flex users. One of the largest such sites in the world, ActionScript.org caters for designers and developers at all skill levels. The site includes thousands of tutorials, open source movies and scripts, support forums, reviews, scene news, a fully featured Flash jobs and employment section and much more.]]></description>
		<language>en-us</language>
		<copyright><![CDATA[http://www.actionscript.org/resources]]></copyright>
		<generator>N/A</generator>
		<webMaster>general.redirect@gmail.com</webMaster>
		<lastBuildDate>Mon, 23 Nov 2009 03:53:13 CST</lastBuildDate>
		<ttl>20</ttl>
		<item>
			<title><![CDATA[FITC Day 3: Cool Japanese Stuff]]></title>
			<link>http://www.actionscript.org/resources/blogs/27/FITC-Day-3-Cool-Japanese-Stuff.html</link>
			<description><![CDATA[ There were two sessions at FITC Toronto about cool Japanese Stuff, entitled &#08220Cool Japanese Stuff: Side A&#08221 and &#08220Cool Japanese Stuff: Side B.&#08221 There was cool stuff at both, but for now I&#08217m going to focus on side B. 
<p><b>The first speaker was <a  href="http://saqoosha.net/">Tomohiko Koyama</a></b>, who works at <a  href="http://katamari.co.jp/">Katamari Inc.</a> His full presentation, as well as links to all the awesome stuff he mentions, are available <a  href="http://saqoosha.net/en/fitc/">here</a>. Tomohiko is responsible for <a  href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en">FLARToolkit</a>, a truly amazing implementation of <a  href="http://en.wikipedia.org/wiki/Augmented_reality">augmented reality</a> in AS3. I really can&#08217t believe this works so well in quaint little Flash. (It definitely wouldn&#08217t have worked in AS2.) What it does is attach simulated 3D objects to real-time images fed in via web-cam. The user holds a telltale post card or something he printed out with distinct visual characteristics, and the Flash movie will attach to that object and render 3D objects on top of it in real time. For some amazing implementations, see <a  href="http://ge.ecomagination.com/smartgrid/#/augmented_reality">this</a> or <a  href="http://09.aid-dcc.com/">this</a>.</p>
<p>Tomohiko explained that AR has been huge in Japan for the past few years, mainly on <a  href="http://www.nicovideo.jp/index.php">Nico Nico Douga</a>, Japan&#08217s answer to YouTube; unfortunately the previous incarnations of AR did not run in the browser, so Tomohiko set out to achieve browser-based AR. FLARToolkit is actually a port of a C++ framework called ARToolkit. ARToolkit was ported to Java, which in turn was ported to AS3 by Tomohiko and his friends at Katamari Inc. It can be used with a variety of popular Flash 3D engines, including Papervision, Away3D, and Sandy.</p>
<p>Tomohiko went into a quick code demo, showing how it&#08217s <b>extremely easy</b> to code something up. He&#08217s able to attach a cube in just two or three lines of code. Wow! I for one am definitely going to make some games out of this. You should too. You can download an English-language starter kit with everything you need at <a  href="http://saqoosha.net/en/flartoolkit/start-up-guide/">http://saqoosha.net/en/flartoolkit/start-up-guide/</a>. FLARToolkit is available for free GPL license if your code is open source; otherwise there&#08217s a (pricey) commercial license available from <a  href="http://artoolworks.com/Home.html">ARToolworks</a>.</p>
<p><b>The other speaker was Yoshihiro Shindo</b>, from <a  href="http://www.be-interactive.org/">BeInteractive</a>. Yoshihiro is responsible for <a  href="http://www.libspark.org/">Spark Project</a>, &#08220Japan&#08217s largest AS3 community.&#08221 Yoshihiro, 20 years old, was introduced as the youngest FITC speaker ever. He says that he would rather code ActionScript than eat. </p>
<p>Spark Project is an open-souce Flash community, public svn repositories and all, whose motto is, &#08220Be happy by sharing source code and knowhow with everyone.&#08221 A nicer sentiment I did not encounter in all of FITC. Spark Project has over 200 open-source AS projects currently shared, which go all over the map in terms of functionality. FLARToolkit, for one, is on there. Yoshihiro also demoed Sazameki, a powerful-looking audio processing library that both generates and processes waveforms; Frocessing, an AS3 drawing library that behaves like Processing; and BetweenAS3, an impressive new tweening engine.</p>
<p>BetweenAS3 appears to be powerful, fast, and lightweight&#08212the holy triad of tweening engines. BetweenAS3 offers tween processing (reverse, slice, faster/slower, parallel tweening), complete tween control (freely move beteeen &#08220frames&#08221 of the tween), action integration (execute commands within a tween), great performance, and low memory usage. Yoshihiro demoed a particle tween simulation with tens of thousands of pixels tweening simultaneously, and BetweenAS3 blew the competition (Tweener, TweenMax, several others) out of the water, in terms of frame rate and memory. I salivated. Unfortunately, BetweenAS3 hasn&#08217t quite released yet, but you are welcome to access the svn repository <a  href="http://www.libspark.org/svn/as3/BetweenAS3/">here</a>. Check it out, branch it, check in fixes&#08212all is encouraged! You gotta love that.</p>]]></description>
			<author>no@spam.com (David R. Lorentz)</author>
			<pubDate><![CDATA[Sun, 03 May 2009 00:00:00 CDT]]></pubDate>
			<guid isPermaLink="true">http://www.actionscript.org/resources/blogs/27/FITC-Day-3-Cool-Japanese-Stuff.html</guid>
		</item>
		<item>
			<title><![CDATA[FITC Day 3: Dimension Wars]]></title>
			<link>http://www.actionscript.org/resources/blogs/26/FITC-Day-3-Dimension-Wars.html</link>
			<description><![CDATA[
<p>I attended an interesting talk today called &#08220Dimension Wars: Bridging the Gap between 2D and 3D in Flash,&#08221 from a couple of guys from <a href="http://www.firstbornmultimedia.com/">Firstborn</a> in NYC, Eric Decker, Jens Fischer, and Dan Lacivita. The focus of this session was the different ways Firstborn has produced experiences that <i style="mso-bidi-font-style: normal">seem<u> </u></i>3D&#08212whether that means true 3D or fancy 2D depends on the project. The one point that these guys were extremely careful to make is that they never decide at the outset of a project whether they will be working in 3D or using any specific technology. Instead, they first work out the idea, <i style="mso-bidi-font-style: normal">then</i> they figure out what technology best supports this idea. Makes sense. 
<p>The talk starts out with several demos of &#08220fake&#08221 3D:</p>
<ul style="MARGIN-TOP: 0in" type="circle">
<li style="mso-list: l0 level1 lfo1">For starters, a swf in which a light source follows the mouse and casts shadows from spheres. It looks 3D, but the swf is literally just rotating and scaling simple movie clips that represent the shadows, based on a simple calculation of the relative mouse position. 
</li><li style="mso-list: l0 level1 lfo1">Next, a simple game in which you toss fish to a polar bear. The fish and the polar bear are indeed 3D objects, rendered as static sprites, and placed into a non-3D environment. The illusion of depth is created by simply making the Polar bear (in the background) small relative to the fish (starting in the foreground). When the fish is tossed, its y-position follows a sine curve, and its size scales down, giving the illusion of 3D motion.</li></ul>
<p>Pretty damn simple, and a hell of a lot less work than Papervision. Keep this in mind as you think about your own 3D projects.</p>
<p>The Firstborn guys then talked about a couple of different real 3D frameworks available to Flash developers. They emphasized that Papervision is not always the best tool for the job, contrary to the beliefs of a wide swath of intimidated Flash developers; it really depends on what you want to do. An alternative is <a href="http://five3d.mathieu-badimon.com/">FIVe3D</a>, <span> </span>which stands for Flash Interactive Vector 3D.<span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: PMingLiU; mso-bidi-  mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA"></span></p><span style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: PMingLiU; mso-bidi-  mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">This vector-based 3D framework is totally open-source and pretty easy to use. The entire system is vector-based, with 3D objects made up of vertices, linear vector connectors, and Bezier curves. These vector-based constructions will seem very familiar to Flash developers, only in 3D instead of 2D. In fact, much of the syntax mirrors regular AS3 syntax&#08212for instance, there&#08217s <i style="mso-bidi-font-style: normal">Sprite3D</i> instead of <i style="mso-bidi-font-style: normal">Sprite</i>, there&#08217s a <i style="mso-bidi-font-style: normal">graphics3D</i> property instead of <i style="mso-bidi-font-style: normal">graphics</i>, and so forth. From my perspective, it looks like FIVe3D is a great option for generating lots of 3D visuals programatically; Papervision may be a better choice for certain kinds of project that rely on lots of 3D modeling.</span> 
</p>]]></description>
			<author>no@spam.com (David R. Lorentz)</author>
			<pubDate><![CDATA[Sun, 03 May 2009 00:00:00 CDT]]></pubDate>
			<guid isPermaLink="true">http://www.actionscript.org/resources/blogs/26/FITC-Day-3-Dimension-Wars.html</guid>
		</item>
		<item>
			<title><![CDATA[FITC Day 2: Running a Freelance Business]]></title>
			<link>http://www.actionscript.org/resources/blogs/25/FITC-Day-2-Running-a-Freelance-Business.html</link>
			<description><![CDATA[
<p>Another very interesting session today involved a panel of successful web development entrepreneurs from Canada: <a href="http://www.lakestreet.ca/">Dana DiTomaso</a>, <a href="http://www.gadzala.com/">Kendra Gadzala</a>, <a href="http://www.nadinelessio.com/">Nadine Lessio</a>, and <a href="http://bitchwhocodes.com/">Stacey Mulcahy</a>. Much of the tax and business stuff was meaningless to a non-Canadian like me, but there were plenty of gems elsewhere, such as the following:
<ul style="MARGIN-TOP: 0in" type="disc">
<li style="mso-list: l0 level1 lfo1">You need a good accountant. This sentence was spoken by the various panelists at least 5 or 6 times. Even if you&#08217re just getting started, you need to get serious and have an accountant. Otherwise you&#08217ll either get burned, or do your taxes all wrong, or end up spending money that isn&#08217t actually yours. Accountants can also give you advice on issues like whether or not to incorporate. 
</li><li style="mso-list: l0 level1 lfo1">How do you know if you have a good accountant? You won&#08217t know, until there&#08217s an accounting crisis. Hmmm. 
</li><li style="mso-list: l0 level1 lfo1">Contracts. Lots of talk about them. The panelists are in the convenient position of drafting up their own contracts, which I guess is the norm for most web development, though for me doing Flash games, my experience is that the contract usually comes in boilerplate form from the client. Either way you can always make changes to the contract. Here are some of their pointers: 
</li><ul style="MARGIN-TOP: 0in" type="circle"><li style="mso-list: l0 level2 lfo1">Pay close attention to the IP&#08212who owns it? Who owns the code? If the client wants the IP or code, make sure you&#08217re charging them extra for it. Otherwise, be clear that you&#08217re keeping it. 
</li><li style="mso-list: l0 level2 lfo1">Add a clause about what your IP and assets can be used for. If you don&#08217t want your art to be seen in print or on T-shirts, for example, make clear that it&#08217s only to be used on the web in the context you delivered it. 
</li><li style="mso-list: l0 level2 lfo1">One thing you must always ask for <b style="mso-bidi-font-weight: normal">a deposit up front</b>. First the money, then the work. Based on the relationship you have with the company and how much you trust it, this deposit could be as low as 30-50%, or as high as the full 100%. Always be careful, and don&#08217t work on spec. 
</li><li style="mso-list: l0 level2 lfo1">Add a cancellation clause. If, for example, the project gets cancelled at 90%, but you only got paid up front for 50%, make sure there&#08217s a clause that gets you the extra money you deserve. One way to so this is to specify a cancellation fee, plus the right to invoice for work done. 
</li><li style="mso-list: l0 level2 lfo1">If you need to set up a set of boilerplate contracts for yourself, one great method is to hire a lawyer. Most lawyers can make you a solid contract that meets your requirements for about $500.</li></ul>
<li style="mso-list: l0 level1 lfo1">Although none of the panelists has ever been sued by a client, they all seem vigilant about avoiding it. How do you prevent a client from deciding, a few months after your project is completed, that the work was insufficient and lost them money? One solution is to do a 30 day warranty&#08212call the client back after 30 days and get them to sign a document saying they&#08217re completely happy. Ideally, the client should be signing documents like this at every step of the dev cycle. Another option is &#08220errors and omissions insurance,&#08221 which apparently exists in Canada, though it is very expensive. 
</li><li style="mso-list: l0 level1 lfo1">Marketing tips: 
</li><ul style="MARGIN-TOP: 0in" type="circle"><li style="mso-list: l0 level2 lfo1">Don&#08217t pay attention to the competition; do your own thing, and it&#08217ll be exactly what some clients want. 
</li><li style="mso-list: l0 level2 lfo1">The best marketing is word of mouth. So devote a lot of time to client relations and networking.</li></ul></ul>
</p>]]></description>
			<author>no@spam.com (David R. Lorentz)</author>
			<pubDate><![CDATA[Sun, 03 May 2009 00:00:00 CDT]]></pubDate>
			<guid isPermaLink="true">http://www.actionscript.org/resources/blogs/25/FITC-Day-2-Running-a-Freelance-Business.html</guid>
		</item>
		<item>
			<title><![CDATA[FITC Day 2: Flash in Console Games]]></title>
			<link>http://www.actionscript.org/resources/blogs/24/FITC-Day-2-Flash-in-Console-Games.html</link>
			<description><![CDATA[Bright and early this morning at FITC Toronto, I saw a presentation on <a href="https://www.scaleform.com/products/gfx">Scaleform GFx</a>, which is a Flash player optimized to run natively on video game consoles like Wii, Xbox 360, and PS3. The presentation was titled &#08220Flash Interfaces in Console Games,&#08221 and it was presented by Brendan Iribe from Scaleform, along with Grant Skinner, who helped develop some of the Scaleform design tools. I&#08217m a game developer and I have some background in the type of huge console games that Scaleform is made for, so needless to say, this presentation was very interesting to me. 
<p>Brendan began his presentation, speaking about the past and future of Scaleform, in the form of what appeared to be a visually appealing Flash swf. But then&#08230 he backed up and looked around.</p>
<p>It turns out that his entire presentation was running inside a 3D level in the Unreal Engine, with the slides simply projected on a wall in the 3D environment. From time to time he moved away from the wall to demonstrate other Scaleform-driven toys in the environment. This on an ordinary-looking PC laptop, with a flawless framerate. Pretty amazing stuff.</p>
<p>Brendan was careful to point out that what Scaleform does, essentially, is create Flash players for specific platforms, including all the major game consoles. Because game developers typically need all the CPU cycles they can get for their gameplay, and systems like Wii and PSP don&#08217t have a ton of horsepower to offer in any case, Scaleform&#08217s task is optimization, optimization, optimization. From the 3D game engine&#08217s perspective, once a simple interface is made with Scaleform&#08217s API, Flash movies can be treated essentially as 2D textures to be applied to any surface in the 3D environment&#08212walls, TV screens, spheres, anything. Brendan says he hopes someone will use it to create animated tattoos on characters.</p>
<p>The ultimate goal is to allow Flash designers to make pretty Flash content using the tools and tricks they&#08217re accustomed to, and then integrate it into the game engine with a minimum of fuss. Brendan points out that his presentation engine was made by exactly two people: a Flash designer for the UI and other Flash bits, and a 3D modeler for the environment. Of course, ordinarily you&#08217d also need a programmer to connect Scaleform with the gameplay engine, but Scaleform&#08217s engineers have already nicely integrated Scaleform into Unreal Ed (the 3D editor for the Unreal engine), including integration with the Kismet visual scripting service.</p>
<p>As someone who does 3D game work and also does Flash, I&#08217d really, really love to get my hands on this Unreal+Scaleform combo. This would be a hell of a lot of fun to play around with, if nothing else. Of course, Scaleform will not let anyone play around with its stuff, short of purchasing a license which costs thousands of dollars. Brendan mentioned that they&#08217re thinking of setting up some sort of academic licensing in the future, but there are no details on that yet. Come on, Scaleform! Don&#08217t you realize indies are making all the good stuff?</p>
<p>I had no idea how widespread the use of Scaleform is. I&#08217d known it was something game developers use from time to time for UI work; little did I know that it&#08217s pervading the industry, and being used for everything from studio logos, to UI, to entire HUD systems. In Mass Effect, for instance, all of the UI and HUD, including the targeting reticule and the sexy circular interfaces you use to do everything, is Flash. In retrospect, this makes sense&#08212of course those beautiful interfaces were created in Flash! Other games that make extensive use of Scaleform include Crysis, Dawn of War II, Halo Wars, and the pub games in Fable II. Interesting note about those pub games: they were originally released on Xbox live (the Xbox 360&#08217s downloadable content service) before Fable II itself was released. These games were done <i style="mso-bidi-font-style: normal">entirely</i> in Flash with Scaleform. This means that <b style="mso-bidi-font-weight: normal">Flash games were released on Xbox live arcade</b>. I&#08217ll say it again: Flash games on the Xbox 360. This is very interesting for us game developers who have been trained to believe that Xbox live arcade will never host Flash games. Again, once I get my hands on this technology, I&#08217m gonna&#08212oops, I forgot, Scaleform doesn&#08217t offer indie licensing. I say again, come on, guys!</p>]]></description>
			<author>no@spam.com (David R. Lorentz)</author>
			<pubDate><![CDATA[Sun, 03 May 2009 00:00:00 CDT]]></pubDate>
			<guid isPermaLink="true">http://www.actionscript.org/resources/blogs/24/FITC-Day-2-Flash-in-Console-Games.html</guid>
		</item>
		<item>
			<title><![CDATA[FITC Day 1: The intersection of math and art]]></title>
			<link>http://www.actionscript.org/resources/blogs/23/FITC-Day-1-The-intersection-of-math-and-art.html</link>
			<description><![CDATA[Hello friends, and greetings from FITC Toronto &#08211 day one. 
<p>Somehow I ended up attending three sessions today that revolved around very similar concepts in generative art. If it wasn't already clear, it is now totally clear that when mathematical algorithms meet Flash's unique powers of visualization, great art is born. (Sometimes.)</p>
<p>The three sessions in question are those of <a href="http://www.cove.org/">Alec Cove</a>, <a href="http://quasimondo.com/">Mario Klingemann</a>, and <a href="http://www.joshuadavis.com">Joshua Davis</a>. These sessions were in some ways amazingly similar, invoking procedural repetition of elements to produce visually appealing output, but it is very interesting to compare and contrast the differences in the ways these three guys approach the task. What is the artist's role in algorithmic art? Should he be massaging the algorithm, or massaging the output? Well, apparently either way's fine.</p>
<p><b>Alec Cove's talk, &#08220Beautiful Algorithms: Design from Nature and Mathematics,&#08221 </b>centers on deterministic algorithms (containing no randomness) that transform minimal initial conditions into complex and beautiful output. This output often resembles patterns seen in natural organisms such as flowers and seashells, which, as Alec points out, is the result of algorithms in the DNA.</p>
<p>Alec's slides are available <a href="http://www.cove.org/ba_presentation/">here</a>. Here's a quick summary of what he went over:</p>
<ul style="MARGIN-TOP: 0in" type="disc">
<li style="mso-list: l0 level1 lfo1; tab-stops: list .5in">Repetition combined with geometric transformations (scale, rotation, translation) yields interesting patterns. Examples include corn, spikes on a cactus, mandalas in Darmic art, and plants in general. 
</li><li style="mso-list: l0 level1 lfo1; tab-stops: list .5in">In a sunflower, for example, seeds are packed in a golden spiral pattern. This is actually the most efficient way to pack seeds into a limited space, and it looks beautiful to us; apparently there is some beauty in efficiency. 
</li><li style="mso-list: l0 level1 lfo1; tab-stops: list .5in">Cellular automata &#08211 a conceptual simplification of biological cells, whose life or death depends in various ways on their neighbors. Manipulating the binary life/death rules yields tons of variety &#08211 unstable patterns, stable repeating patterns, and stable chaotic (non-repeating and non-dying) patterns. Examples of this include Conway's Game of Life, and Stephen Wolfram's opus, <i>A New Kind of Science.</i> 
</li><li style="mso-list: l0 level1 lfo1; tab-stops: list .5in">Other examples: L-systems; reaction diffusion; sound vibrations; chaotic systems such as the Lorenz Attractor.</li></ul>
<p>All of Alec's experiments involve deterministic systems&#08212nothing is randomized. The complexity comes instead from the interplay of the algorithm with the initial conditions, yielding either a chaotic system or something that is complex but repetitive. Alec&#08217s artistic method seems to center around picking the right algorithm: he plays with lots of different algorithms till he finds one that is pretty. Once he finds it, the next step is to find a good visualization by playing around with things like colors and alpha.</p>
<p>The overriding point of Alec's talk (or one of &#08216em, at least) is that repetition + variation = beauty.</p>
<p><b>Mario Klingemann's talk, &#08220The Tinkerer's Box,&#08221</b> explored algorithmic art from a different angle. Most of the algorithms in Mario&#08217s talk rely on randomness for their variety, as opposed to the chaotic non-random systems from Alec&#08217s talk. </p>
<p>Mario&#08217s slides will soon be available <a href="http://lectures.quasimondo.com/"><span style="mso-ansi-language: EN-US; mso-bidi-language: AR-SA">here</span></a>. Here&#08217s a summary:</p>
<ul style="MARGIN-TOP: 0in" type="disc">
<li style="mso-list: l2 level1 lfo2">The topic of this talk is the various algorithms Mario has been playing around with to generate interesting visuals. He starts off by describing why the iterative playing-around process is so important to him; he feels that tinkering is important even if the end result is not meaningful. If you manage to create something meaningful along the way, he says, that&#08217s a bonus. 
</li><li style="mso-list: l2 level1 lfo2">Chapter 1 is subdivision&#08212drawing lines within a polygon to break it into sub-polygons. Mario demonstrates how subdivisions can be evenly spaced, producing an even (and boring) output, versus random orientations, which produces more irregular (and interesting) output. Some of these are automatically generated, but in most examples Mario generates a subdivision by clicking in the area he wishes to subdivide. This allows him (the artist) to drive, or at least impact, the final output. 
</li><li style="mso-list: l2 level1 lfo2">Everything Mario shows is being generated live in swf&#08217s, which is fun to watch. Most of his examples have a menagerie of sliders and buttons to manipulate the algorithm; most of the time Mario doesn&#08217t remember what these controls do, since he neglected to label them after coding them up. 
</li><li style="mso-list: l2 level1 lfo2">As Mario&#08217s examples of subdivision progress, the pictures gradually get prettier and prettier. As a grand finale to the subdivision chapter, Mario demonstrates a system in which a photo is obscured beneath a colored rectangle. Each time Mario clicks, a subdivision is generated, with each new polygon taking its fill color from the center of the underlying portion of the photo. The exact position and angle of each subdivision is randomized, leading to irregular output. As he clicks and clicks, generating successively tiny triangles which act like irregular pixels, details start to emerge. He clicks more for extra detail in important areas of the photo; other areas are left barren. When it&#08217s done, it looks crazy and beautiful. 
</li><li style="mso-list: l2 level1 lfo2">Chapter 2 is stippling: using a distribution of dots to represent a grayscale image. 
</li><li style="mso-list: l2 level1 lfo2">Chapter 3 is convolution. Using a photo or other image as a base, simple convolution filters can be applied on the pixel level to determine the <i style="mso-bidi-font-style: normal">x</i> and <i style="mso-bidi-font-style: normal">y</i> component of nearby angles, generating an angular signature for the area. 
</li><li style="mso-list: l2 level1 lfo2">One of the things Mario does with convolution filters is draw little linear brushes on various spots in an image (generated randomly, of course), where the orientation of the brush is determined by one of these angular convolutions, and the color is sampled from the underlying pixels in the image. The result is a swirly Van Gogh-type effect. Mario points out that this, as well as lots of the other toys he&#08217s been showing, is available in the free web-based tool he&#08217s been working on at <a href="http://aviary.com/tools/peacock"><span style="mso-ansi-language: EN-US; mso-bidi-language: AR-SA">http://aviary.com/tools/peacock</span></a>. 
</li><li style="TEXT-ALIGN: justify; mso-list: l2 level1 lfo2">One of the last points Mario makes is that all of the algorithms he uses&#08212from convolutions, to line intersections and calculating new polygons, and everything else&#08212come from outside sources, such as books on numerical algorithms in C, Wikipedia, and <a href="http://mathworld.wolfram.com/"><span style="mso-ansi-language: EN-US; mso-bidi-language: AR-SA">Mathworld</span></a>. He also looks at proceedings from <a href="http://www.siggraph.org/"><span style="mso-ansi-language: EN-US; mso-bidi-language: AR-SA">Siggraph</span></a>; he claims that he only understands 10% of what he reads there, but it&#08217s enough to get him started tinkering. He equates this whole process with playing Legos&#08212finding formulas here, coding tricks there, and sticking them together in every which way till something good comes out.<span style="mso-tab-count: 1">                                                                                                   </span></li></ul>
<p>Rather than looking to nature for his algorithms, Mario looks anywhere and everywhere; he <i style="mso-bidi-font-style: normal">tinkers</i> with these algorithms in an iterative process where nothing&#08217s out of bounds, till they start producing interesting output. The artistic method here is much more deliberate than the one described in Alec&#08217s talk. The choice of algorithm is arbitrary; additionally, in many of Mario&#08217s examples, the artist drives the output itself by, for example, clicking to generate subdivisions. Quite opposite to Alec&#08217s talk, here there&#08217s randomness everywhere: in the code itself, in the complex initial conditions (an entire photo, for instance, as opposed to Alec&#08217s single pixel or two chemical points), and in the artist&#08217s choice of where to generate subdivisions.</p>
<p><b style="mso-bidi-font-weight: normal">Joshua Davis&#08217s Talk, &#08220Space,&#08221</b> recounted the trajectory of Joshua&#08217s recent explorations in generative art, with several examples of algorithms he has used and the process he went through to massage beauty out of them. Sound familiar? Yeah, that&#08217s how I felt. Of course, there are some critical intricacies to Joshua&#08217s process that make it completely unique.</p>
<p>Here&#08217s a summary of what Joshua talked about:</p>
<ul style="MARGIN-TOP: 0in" type="disc">
<li style="mso-list: l1 level1 lfo3">Repeated reference to Red Bull, as Joshua attempts to fit 3 hours of material into 60 minutes. 
</li><li style="mso-list: l1 level1 lfo3">Quite like Mario, Joshua expounds the virtue of constantly giving himself new projects&#08212new stuff to play around with and learn from, as if he&#08217s constantly going to school. Recently, Joshua has been giving himself projects related to the concept of space, partly in order to address a convention themed around space he&#08217ll be speaking at later this year. 
</li><li style="mso-list: l1 level1 lfo3">The first example Joshua demonstrates is an orbit system, which simulates orbits. The code randomizes initial conditions, such as planet mass, position, and velocity, then simulates a Newtonian orbit. To get something interesting out of this, Joshua simply throws some interesting visual pieces into it&#08212these could be anything, but generally they tend to be little objects that he illustrates by hand. He sets these bits off in their random orbits, and sits back till he finds a good, artistically satisfying moment to snap off a screenshot. And there it is. 
</li><li style="mso-list: l1 level1 lfo3">Joshua points out that he is using OOP to re-use code and save a lot of time in his work. This example is his &#08220Orbit&#08221 class, which he can plug in wherever he wants. Using Orbit in combination with different pieces of art and other classes, he can generate totally different pieces of art for diverse clients. 
</li><li style="mso-list: l1 level1 lfo3">Another experiment Joshua describes is his quest to make a good-looking kaleidoscope image. The important thing with any kaleidoscope is that it can work with any arbitrary set of visual data. So after coding up a Kaleidoscope class, he set about fiddling around with different inputs until he found something he liked. He ended up plugging in a set of little illustrated Christmas bulbs and snowflakes, which he has illustrated with a muted, earthy color palette. Lo and behold, the output of these was beautiful, and Joshua ended up giving away prints, each one unique, as Christmas gifts. Joshua is currently finishing up an iPhone app called &#08220Reflect&#08221 which uses this kaleidoscope tech. He&#08217ll probably make tons of money off of this&#08212another example why you should build your algorithms as classes! 
</li><li style="mso-list: l1 level1 lfo3">The last experiment Joshua shares is based on Bezier curves. Like Mario, Joshua makes no attempt to memorize or even understand the math; in this case he simply took a simple Bezier tool someone else had helped him code up, and started messing around with it. Bezier curves require four points: start point, end point, and two anchors to define the curvature. Joshua realized that if he set up rectangles to define areas within which each of these points can be randomized, the result is a complex &#08220flow&#08221 of particles. Joshua demonstrates moving shapes along the curves, then deforming the shapes along the curves, which looks cooler. He then shows that turning down the alpha has a huge effect, giving the flow a cloudy appearance. All of these manipulations were the result of Joshua dicking around, and the final result is breathtaking.</li></ul>
<p>Joshua calls his artistic method &#08220computational design.&#08221 As he puts it, &#08220I write code to make design.&#08221 I imagine Alex and Mario feel the same way, at least as far as their sessions are concerned. All of these guys have demonstrated how a Flash developer can take a mathematical method and tweak it one way or another until he ends up with something that looks good. Joshua&#08217s method of tweaking relies heavily on duplicating and manipulating artistic elements that were illustrated by hand. Mario&#08217s method relies on lots of randomness, and control over where to apply the algorithm. And Alec&#08217s method depends more on carefully constructing algorithms and initial conditions, in order to produce art in a completely deterministic manner.</p>
<p>Clearly, any of these methods works. The important thing is that all these techniques allow some form of artistic control&#08212parameters, visualization, and simply the ability to choose when to take a screenshot in an evolving system. Lesson learned: repetition + variation + artistic control = beauty. At least, sometimes.</p>]]></description>
			<author>no@spam.com (David R. Lorentz)</author>
			<pubDate><![CDATA[Fri, 01 May 2009 00:00:00 CDT]]></pubDate>
			<guid isPermaLink="true">http://www.actionscript.org/resources/blogs/23/FITC-Day-1-The-intersection-of-math-and-art.html</guid>
		</item>
	</channel>
</rss>