<?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>*drawlogic &#187; APPLICATIONS</title>
	<atom:link href="http://drawlogic.com/category/applications/feed/" rel="self" type="application/rss+xml" />
	<link>http://drawlogic.com</link>
	<description>interactive and game development technologies for the web - flash, flex, unity3d, silverlight, javascript</description>
	<lastBuildDate>Tue, 09 Mar 2010 18:39:24 +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>Web Sockets in Google Chrome and Proposed Standard for HTML5</title>
		<link>http://drawlogic.com/2009/12/09/web-sockets-in-google-chrome-and-proposed-standard-for-html5/</link>
		<comments>http://drawlogic.com/2009/12/09/web-sockets-in-google-chrome-and-proposed-standard-for-html5/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 04:24:37 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[INTERACTIVE]]></category>
		<category><![CDATA[real-time]]></category>
		<category><![CDATA[sockets]]></category>
		<category><![CDATA[standard]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=705</guid>
		<description><![CDATA[Google is pushing Web Sockets into Chrome based on the Web Socket standards being developed at all major engineering standards groups.  Web Socket is an interesting direction but it is great to couple that with O3G or WebGL for some multiplayer 3d game development with just a browser.
Starting in the Google Chrome developer channel release 4.0.249.0, [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignright" title="Web Sockets in Chrome Google" src="http://i81.photobucket.com/albums/j223/drawkbox/google-logo.png" alt="" width="233" height="222" /><a href="http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html" target="_blank">Google is pushing Web Sockets</a></strong> into Chrome based on the Web Socket standards being developed at all major engineering standards groups.  <a href="http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html" target="_blank">Web Socket</a> is an interesting direction but it is great to couple that with <a href="http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/" target="_blank">O3G</a> or <a href="http://drawlogic.com/2009/08/08/webgl-announced-javascript-controlled-opengl-standard-is-now-official-at-khronos-group-who-runs-opengl-openvg-opengl-es/" target="_blank">WebGL</a> for some multiplayer 3d game development with just a browser.</p>
<blockquote><p>Starting in the Google Chrome <a href="http://www.chromium.org/getting-involved/dev-channel">developer channel</a> release 4.0.249.0, Web Sockets are available and enabled by default. Web Sockets are &#8220;TCP for the Web,&#8221; a next-generation bidirectional communication technology for web applications being standardized in part of <a href="http://www.whatwg.org/specs/web-apps/current-work/complete.html">Web Applications 1.0</a>. We&#8217;ve implemented this feature as described in our design docs for <a href="http://docs.google.com/View?docID=dfm7gfvg_0fpjg22gh&amp;revision=_latest">WebKit</a> and <a href="http://docs.google.com/View?docID=dfm7gfvg_1dm97qxgm&amp;revision=_latest">Chromium</a>.</p></blockquote>
<p><strong>Sample Code</strong></p>
<pre lang="javascript">if ("WebSocket" in window) {
  var ws = new WebSocket("ws://example.com/service");
  ws.onopen = function() {
    // Web Socket is connected. You can send data by send() method.
    ws.send("message to send"); ....
  };
  ws.onmessage = function (evt) { var received_msg = evt.data; ... };
  ws.onclose = function() { // websocket is closed. };
} else {
  // the browser doesn't support WebSocket.
}</pre>
<p><strong>Socket Advantage</strong></p>
<p>Flash has long been the answer for sockets for web applications and once sockets were added to Flash it instantly became a better interactive and gaming platform for multi-user applications and multiplayer games. They started with <a href="http://livedocs.adobe.com/flex/3/langref/flash/net/XMLSocket.html" target="_blank">XmlSocket </a>then recently added <a href="http://livedocs.adobe.com/flex/3/langref/flash/net/Socket.html" target="_blank">Socket</a> for raw binary data in as3.  <a href="http://msdn.microsoft.com/en-us/library/cc296248(VS.95).aspx" target="_blank">Silverlight </a>and Java also have this feature but having this in script is pretty significant because many applications could really use a browser supported bi-directional communication link.</p>
<p><strong>What is Missing</strong></p>
<p><strong>The biggie missing from Flash, Silverlight, etc and Web Sockets is UDP and preferably RUDP or Reliable UDP which allows UDP datagrams to be sent back and forth either verified delivery or broadcast.</strong> Unity does support UDP.  The best socket layers are reliable UDP based because mixing TCP and UDP can lead to queuing and not all messages are critical so having just UDP isn&#8217;t enough, having TCP is too much.  Reliable UDP is the way to go but so far no web layers are doing it well except Unity on that one (you still have to make your own RUDP implementation &#8211; libraries like <a href="http://www.jenkinssoftware.com/" target="_blank">Raknet </a>or <a href="http://enet.bespin.org/" target="_blank">enet</a> in C/C++ give you this but you can&#8217;t use that in Unity client only on the server). (Edit: Flash does have <a href="http://drawlogic.com/2008/12/12/adobe-stratus-client-to-client-flash-communication-p2p-with-rtmfp/" target="_blank">RTMFP</a> which is based on UDP and uses FMS for nat for p2p but it is still not a true low level UDP socket just yet as it supports more features. A low-level UDP socket would also be nice in flash.)</p>
<p><strong>Web Communication Evolving</strong></p>
<p>I am a big Flash fan and have been developing it since 1999 among other platforms, I have recently watched other technologies nearly match the features and some go beyond it.  The interesting thing about Web Sockets is that it does go after a core feature of flash; Canvas and WebGL or O3D also do.<strong> Flash still has the webcam, mic, sound mixers/tranform, and for now sockets which put it at an advantage in gaming and interactive. </strong> Flash used to  be the sole greatest video player but Silverlight is doing a pretty good job of that as well so that is still an advantage but others are entering including possibly browser support in html5. I still think it is the best video but they would need to keep innovating.</p>
<p><strong>Another interesting point about this is XMLHttpRequest objects.  Originally <a href="http://garrettsmith.net/blog/archives/2006/01/microsoft_inven_1.html" target="_blank">&#8220;AJAX&#8221; was created by Microsoft for IE</a>, pushing new features and innovating back when IE was a good browser and ahead in IE4. </strong> Mozilla and others adopted this feature (as well as editable text areas for html) because they were great features for web applications to evolve to.  now Google is pushing with Chrome and Web Sockets is the next step that should be in web browsers even if it is only TCP based for now.  This will add great capabilities and will probably be preferred over AJAX/XMLHttpRequest for really interactive and real-time tools/games should it take hold.  Ian Hickson is running the table on the standards with this effort and it is a good one to get behind.</p>
<ul>
<li><a href="http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html" target="_blank"><strong>Blog post about Web Sockets</strong></a></li>
<li><a href="http://dev.w3.org/html5/websockets/" target="_blank"><strong>W3C Standard</strong></a> proposed by Google (Ian Hickson)</li>
<li><a href="http://www.whatwg.org/specs/web-apps/current-work/complete.html" target="_blank"><strong>WHATWG Standard</strong></a><strong> </strong>proposed by Google (Ian Hickson)</li>
<li><a href="http://tools.ietf.org/html/draft-hixie-thewebsocketprotocol-55" target="_blank"><strong>IETF RFC</strong></a> &#8216;web socket protocol&#8217; by hixie (Ian Hickson)</li>
<li><a href="http://code.google.com/p/pywebsocket/" target="_blank"><strong>pywebsocket </strong></a>for Apache to test with Web Sockets</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/12/09/web-sockets-in-google-chrome-and-proposed-standard-for-html5/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Flash CS5 Will Compile Native iPhone and Touch Games and Applications Coded in AS3</title>
		<link>http://drawlogic.com/2009/10/05/flash-cs5-will-compile-native-iphone-and-touch-applications-coded-in-as3/</link>
		<comments>http://drawlogic.com/2009/10/05/flash-cs5-will-compile-native-iphone-and-touch-applications-coded-in-as3/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 19:51:28 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ADOBE]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[actionscript 3]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[cross]]></category>
		<category><![CDATA[cs5]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[llvm]]></category>
		<category><![CDATA[monotouch]]></category>
		<category><![CDATA[touch]]></category>
		<category><![CDATA[xnatouch]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=657</guid>
		<description><![CDATA[Well good news for Flash developers, Flash CS5 will finally compile to native iPhone and Touch Applications. This is great news for many developers out there who have stuck with the Flash platform.  I am sure there will still be limitations to what you can do with Flash on the iPhone and it will probably [...]]]></description>
			<content:encoded><![CDATA[<p>Well good news for Flash developers, <a href="http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/" target="_blank">Flash CS5 will finally compile to native iPhone and Touch Applications.</a> This is great news for many developers out there who have stuck with the Flash platform.  I am sure there will still be limitations to what you can do with Flash on the iPhone and it will probably be mostly 2D games and apps but this is a great start to getting the Flash platform truly mobile and up to the rest of the industry.</p>
<blockquote><p>Flash Professional CS5 will enable you to build applications for iPhone and iPod touch using ActionScript 3. These applications can be delivered to iPhone and iPod touch users through the Apple App Store.*</p>
<p>A public beta of Flash Professional CS5 with prerelease support for building applications for iPhone is planned for later this year. <a href="http://www.adobe.com/go/flashprobetanotify">Sign up to be notified when the beta starts</a>.</p></blockquote>
<p>I have been questioning why they have not moved to this model before<a href="http://drawlogic.com/2009/06/19/haxe-on-the-iphone-with-hxcpp-flash-9-api-to-c-for-mobile/" target="_blank"> </a>when others are doing so such as <a href="http://drawlogic.com/2009/06/19/haxe-on-the-iphone-with-hxcpp-flash-9-api-to-c-for-mobile/" target="_blank">haXe</a>, Unity3D and MonoTouch.  Getting Flash on the web browsers on a mobile is hard because Flash is pretty CPU intensive on embedded devices which is really where computers were in the late 90&#8217;s and close to 400-600 MHz processors.  Today these machines wouldn&#8217;t be able to run Flash very well and that is the same effect you get on a mobile phone.  But cross-compiling to native, similar to how <a href="http://unity3d.com/unity/whats-new/iphone-1.5" target="_blank">Unity 3D</a> does it or other solutions like <a href="http://monotouch.net/" target="_blank">MonoTouch</a> and <a href="http://xnatouch.codeplex.com/" target="_blank">XNATouch</a>, this is the best solution until mobile/embedded devices have 1GHz processors and more than 500MB of memory. <a href="http://www.adobe.com/devnet/logged_in/abansod_iphone.html" target="_blank">Adobe is using LLVM</a>, much like the Alchemy model, to achieve getting AS3 content onto an iPhone/Touch with AOT or Ahead of Time compilation rather than JIT compilation.</p>
<blockquote><p>So how do you build an application for the iPhone? It&#8217;s 		  simple, really. The forthcoming beta of <a href="http://labs.adobe.com/technologies/flashcs5/" target="_blank">Adobe Flash Professional CS5</a> incorporates the ability to create an iPhone application. You have access to nearly all the AIR 2.0 and Flash Player 10.1 APIs. For example, you can use APIs such as RTMP, Remote Shared Objects, and AMF as well as AIR APIs like SQLite and filesystem access. For more information see the <a href="http://labs.adobe.com/wiki/index.php/Applications_for_iPhone:Developer_FAQ" target="_blank">developer FAQ</a> on Adobe Labs.</p></blockquote>
<p>I am glad to see Adobe finally moving on mobile platforms beyond Flashlite.  Flashlite is a poor solution in most cases on embedded devices because they really need native apps to perform, again due to the hardware limitations and it is a whole new platform to learn. Adobe is doing the hard work to make it easy to get developers content on the new embedded devices that are storming the world such as the iPhone and Touch.</p>
<ul>
<li><a href="http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/" target="_blank">Info on the CS5 Beta</a></li>
<li><a href="https://www.adobe.com/cfusion/mmform/index.cfm?name=fpcs5_notify" target="_blank">Sign up for the beta of CS5</a></li>
<li><a href="http://labs.adobe.com/wiki/index.php/Applications_for_iPhone" target="_blank">FAQ on Flash iPhone Applications</a></li>
<li><a href="http://www.adobe.com/devnet/logged_in/abansod_iphone.html" target="_blank">Developer article on how the LLVM cross compiling will work</a></li>
<li><a href="http://www.informationweek.com/shared/printableArticle.jhtml;jsessionid=JX41QJDNJ10ZNQE1GHRSKH4ATMY32JVN?articleID=220301033" target="_blank">Flash 10 full version on all phones by Q2 2010 except iPhone</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/10/05/flash-cs5-will-compile-native-iphone-and-touch-applications-coded-in-as3/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Silverlight 3 Released</title>
		<link>http://drawlogic.com/2009/07/10/silverlight-3-released/</link>
		<comments>http://drawlogic.com/2009/07/10/silverlight-3-released/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 09:46:08 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[EXPRESSION]]></category>
		<category><![CDATA[INTERACTIVE]]></category>
		<category><![CDATA[MARKET]]></category>
		<category><![CDATA[MICROSOFT]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[SILVERLIGHT]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[VIDEO]]></category>
		<category><![CDATA[blender]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=600</guid>
		<description><![CDATA[Silverlight 3 has been released a day early.
Microsoft has released Silverlight 3 to the web a day earlier than expected. You can go ahead and grab Silverlight 3 RTW build 3.0.40624.0 (4.69MB) from Microsoft.com/Silverlight. Version 3 supports Windows Internet Explorer 6/7/8, Firefox 2/3, and Safari 3/4. In addition, the Silverlight 3 SDK (9.5MB) and the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://silverlight.net/getstarted/silverlight3/default.aspx" target="_blank">Silverlight 3</a> <a href="http://arstechnica.com/microsoft/news/2009/07/silverlight-3-arrives-early.ars" target="_blank">has been released a day early</a>.</p>
<blockquote><p>Microsoft has released Silverlight 3 to the web <a href="http://arstechnica.com/microsoft/news/2009/05/silverlight-3-and-expression-studio-3-launching-july-10.ars">a day earlier than expected</a>. You can go ahead and grab Silverlight 3 RTW build 3.0.40624.0 (4.69MB) from <a href="http://www.microsoft.com/silverlight/resources/install.aspx">Microsoft.com/Silverlight</a>. Version 3 supports Windows Internet Explorer 6/7/8, Firefox 2/3, and Safari 3/4. In addition, the <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=2050e580-f1d5-4040-bb09-e6185591b6b5">Silverlight 3 SDK</a> (9.5MB) and the <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd">Silverlight 3 Tools</a> (32.2MB) have been posted on the Microsoft Download Center. (<a href="http://arstechnica.com/microsoft/news/2009/07/silverlight-3-arrives-early.ars" target="_blank">arstechnica</a>)</p></blockquote>
<p>As Silverlight versions go it is quite impressive and pretty much a complete solution now including desktop save support and full set of tools for RIA development (early versions were only Javascript or had limited controls libraries).</p>
<p>Granted there are lots of years of gain that Flash has on Silverlight but the path that Silverlight it following leads right to Flash.  Hopefully this will lead to more innovation on both sides (they might need it with Google Wave pushing html5 &lt;canvas&gt;).</p>
<p>One very nice element of Silverlight since it has been released at verison 1.0 is the HD video support.  It has gotten better with each release.  This release has <a href="http://www.iis.net/media/experiencesmoothstreaming" target="_blank">smooth streaming support</a> that is pretty impressive for web video.</p>
<p>Interestingly they chose the open source <a href="http://www.bigbuckbunny.org/" target="_blank">Blender Foundation project Bug Buck Bunny</a> to <a href="http://www.iis.net/media/experiencesmoothstreaming" target="_blank">demonstrate the smooth streaming feature</a>. <a href="http://www.neowin.net/news/main/09/07/09/microsoft-releases-silverlight-30" target="_blank">Ryan Rea has a bit of analysis</a> on how well the video plays across a quad core and memory compared to flash hd video.</p>
<p><a href="http://www.iis.net/media/experiencesmoothstreaming" target="_blank"><img class="alignnone" title="Big Buck Bunny" src="http://i81.photobucket.com/albums/j223/drawkbox/silverlightstreaming.png" alt="" width="560" height="357" /></a></p>
<p>More on the Silverlight 3 new features <a href="http://drawlogic.com/2009/03/22/silverlight-3-mix09-demos-video-of-pixel-shaders-hlsl-authored-3d-planes-savedialog-local-connections-out-of-browser/" target="_blank">here </a>and <a href="http://silverlight.net/getstarted/silverlight3/default.aspx" target="_blank">here</a>.</p>
<ul>
<li><a href="http://www.microsoft.com/silverlight/get-started/install/default.aspx" target="_blank">Install Silverlight 3</a></li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=2050e580-f1d5-4040-bb09-e6185591b6b5">Silverlight 3 SDK</a> (9.5MB)</li>
<li><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=9442b0f2-7465-417a-88f3-5e7b5409e9dd">Silverlight 3 Tools</a> (32.2MB)</li>
</ul>
<p><a href="http://boycottnovell.com/2009/05/14/the-big-silver-lie-lives-on/" target="_blank">Roy Schestowitz plays the flip side and calls this a &#8217;silver-lie&#8217;</a> released and has lots to say about the Silverlight 3 release and even using Big Buck Bunny to demo it. He states a true fact that up til now lots of companies have abandoned Silverlight in favor of Flash (mlb, nyt etc).  It is still used at Netflix but that has an XBOX deal to play Netflixon xbox360.</p>
<p>Flash didn&#8217;t really get good until version 4.  Typically software is a real version at version 3, that is when most software has the goals and ambitions of 1.0 fully complete and integrated.  We shall see how things play out but I still think Silverlight has a long way to go in winning over developers, myself included, but competition is never a bad thing when you are wanting to see innovation.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/07/10/silverlight-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AS3 Library for OAuth with Twitter for AIR Apps</title>
		<link>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/</link>
		<comments>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 12:01:49 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[SYNDICATION]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[core]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=592</guid>
		<description><![CDATA[AIR is very popular for creating twitter clients, Sönke Rohde just made it much easier to make AIR apps for twitter with an AS3 library for Twitter. This library is built on top of core oauth as3 library by iotashin.  Core OAuth as3 library is a standard OAuth library this can be used for your [...]]]></description>
			<content:encoded><![CDATA[<p>AIR is very popular for creating twitter clients, <a href="http://soenkerohde.com/2009/07/high-level-as3flex-library-for-oauth-with-twitter-from-air/" target="_blank">Sönke Rohde just made it much easier to make AIR apps for twitter</a> with an <a href="http://github.com/srohde/OAuth/tree/master" target="_blank">AS3 library for Twitter</a>. This library is built on top of <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/" target="_blank">core oauth as3 library</a> <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/" target="_blank">by iotashin</a>.  Core <a href="http://oauth.net/" target="_blank">OAuth</a> as3 library is a standard OAuth library this can be used for your own OAuth backends or connecting to other OAuth services as well.</p>
<p>A very nice feature of this library, in addition to being coded cleanly and as3 style, is the ability to have the Twitter OAuth page render inside of Flash.</p>
<p style="padding-left: 30px;">Instead of opening the Twitter authorization page in the browser the library also contains OAuthLoader which is a wrapper around HTMLLoader which enables to directly show the authorization page within an AIR window:</p>
<pre lang="actionscript">// use this in the requestTokenHandler instead of navigateToURL
var loader:OAuthLoader = new OAuthLoader();
loader.load(request);
loader.percentWidth = 100;
loader.percentHeight = 100;
var w:Window = new Window();
w.width = 800;
w.height = 400;
w.title = req.url;
w.addChild(loader);
w.open();</pre>
<ul>
<li><a href="http://www.iotashan.com/">Shannon Hicks</a> <a href="http://www.iotashan.com/index.php/2008/04/28/oauth-actionscript-library/">core oauth as3 library</a></li>
<li><a href="http://github.com/srohde/OAuth/tree/master">High level AS3/Flex library for OAuth</a></li>
<li><a href="http://code.google.com/p/oauth-as3/" target="_blank">oauth-as3 Google Code page</a></li>
<li><a href="http://oauth.net/">OAuth</a></li>
<li><a href="http://apiwiki.twitter.com/OAuth-FAQ">Twitter OAuth FAQ</a></li>
<li><a href="http://apiwiki.twitter.com/Twitter-API-Documentation">Twitter API Documentation</a></li>
<li><a href="http://www.hueniverse.com/hueniverse/2007/10/beginners-gui-1.html">Getting Started with OAuth</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/07/08/as3-library-for-oauth-with-twitter-for-air-apps/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>V8-GL, Hardware Accelerated Desktop Apps with OpenGL in Javascript</title>
		<link>http://drawlogic.com/2009/06/21/v8-gl-hardware-accelerated-desktop-apps-with-opengl-in-javascript/</link>
		<comments>http://drawlogic.com/2009/06/21/v8-gl-hardware-accelerated-desktop-apps-with-opengl-in-javascript/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 00:52:41 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[DESKTOP]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[MARKET]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[OPENGL]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[v8]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=583</guid>
		<description><![CDATA[This is a very cool project called V8-GL.  It is an OpenGL engine with 80% of the API converted to run on the V8 Javascript engine, the same engine that runs Google Chrome.

This is exciting as more productive languages like Javascript get speed boosts from engines like V8 and are capable of manipulating more complex [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very cool project called <a href="http://github.com/philogb/v8-gl/tree/master#readme" target="_blank">V8-GL</a>.  It is <a href="http://blog.thejit.org/2009/06/21/v8-gl/">an OpenGL engine with 80% of the API converted to run on the V8 Javascript engine</a>, the <a href="http://code.google.com/p/v8/" target="_blank">same engine that runs Google Chrome</a>.</p>
<p><a href="http://blog.thejit.org/2009/06/21/v8-gl/" target="_blank"><img class="alignnone" title="V8-GL" src="http://i81.photobucket.com/albums/j223/drawkbox/v8gl2.png" alt="" width="658" height="500" /></a></p>
<p>This is exciting as more productive languages like Javascript get speed boosts from engines like V8 and are capable of manipulating more complex systems like OpenGL.  <a href="http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/" target="_blank">Google is also pursing this in the browser with O3D with javascript manipulation of hardware rendering</a>.  Also, a Google funded project called <a href="http://code.google.com/p/unladen-swallow/" target="_blank">Unladen Swallow is converting Python to the LLVM virtual machine</a>, so that it can have increasing speeds to compete with gcc speeds.</p>
<p>Making things easier to produce and control with more simplified and minimal languages like Javascript, Python and Actionscript etc that control more complex systems, that typically you would need to invest more time in such as a platform on C++ is the goal. V8-GL has this goal in mind.</p>
<p><em>V8-GL from the author states:</em></p>
<blockquote><p><a href="http://github.com/philogb/v8-gl/tree/master#readme">V8-GL</a> intends to provide a high-level JavaScript API for creating 2D/3D hardware accelerated desktop graphics.</p>
<p>In other words, you can hack some JavaScript code that opens a desktop window and renders some 3D hardware accelerated graphics. Bindings are made using the <a href="http://code.google.com/p/v8/">V8 JavaScript engine</a>.</p></blockquote>
<ul>
<li><a href="http://blog.thejit.org/2009/06/21/v8-gl/" target="_blank">V8-GL blog post</a></li>
<li><a href="http://github.com/philogb/v8-gl/tree/master#readme" target="_blank">V8-GL source on Github</a></li>
<li>Also <a href="http://code.google.com/p/jslibs/" target="_blank">check out the SpiderMonkey jslibs project</a> with other javascript wrappers for libraries like ode, sdl and more using the engine by Mozilla.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/06/21/v8-gl-hardware-accelerated-desktop-apps-with-opengl-in-javascript/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>AS3 Flash Efficient Code Techniques, Vectors in Flash 10, Faster JPEG Encoding, Other Optimization Notes</title>
		<link>http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/</link>
		<comments>http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/#comments</comments>
		<pubDate>Fri, 22 May 2009 09:21:42 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[VECTOR]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[efficient]]></category>
		<category><![CDATA[optmization]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=558</guid>
		<description><![CDATA[Flash 10 will be ready for mainstream hopefully by the end of this year, or early &#8216;10 when the penetration numbers will be up in or around the 90% range via zeh fernando based on previous trajectories.  
With that, Flash 10 has many great new things such as the Vector structure that allows a collection of a [...]]]></description>
			<content:encoded><![CDATA[<p>Flash 10 will be ready for mainstream hopefully by the end of this year, or early &#8216;10 when the <a href="http://spreadsheets.google.com/pub?key=pjaKnZUqwo-1XaUCJLlBQeA&amp;gid=1">penetration numbers will be up in or around the 90% range</a> via <a href="http://zehfernando.com/2009/flash-penetration-stats-for-march-2009-now-live-graphs-updated/">zeh fernando based on previous trajectories</a>.  </p>
<p>With that, <strong>Flash 10 has many great new things such as the </strong><a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Vector.html" target="_blank"><strong>Vector</strong></a><strong> structure that allows a collection of a certain type, which results in a faster collection because of the known type.</strong>  So anywhere where Arrays are used, that is a possible candidate for a performance increase within some code because you are asking the virtual machine to do less work on each loop (not having to dynamically find out the type).</p>
<p><a href="http://www.bytearray.org/?p=775" target="_blank">ByteArray</a> (Thibault Imbert) has demonstrated that for the JPEG encoding in corelib it is <a href="http://www.bytearray.org/?p=775" target="_blank">up to 2.5 times faster using Vectors than Arrays</a>.  Your mileage may vary heavily but it is almost a guaranteed speed boost due to less work.  This obviously has great possibilities for speeding up code that uses lots of arrays.  </p>
<p>Due to the performance boost the Vector does have some constraints in the typical give and take of coder flexibility with compiler and virtual machine overhead.  Vectors are more explicit and strongly typed which is why they are fast, but this is also limiting.</p>
<blockquote><p><strong>In addition to the data type restriction, the Vector class has other restrictions that distinguish it from the Array class:</strong></p>
<ul>
<li>A Vector is a dense array. Unlike an Array, which may have values in indices 0 and 7 even if there are no values in positions 1 through 6,<strong> a Vector must have a value (or </strong><code><strong>null</strong></code><strong>) in each index.</strong></li>
<li><strong>A Vector can optionally be fixed-length, </strong><strong>meaning the number of elements it contains can&#8217;t change</strong>.</li>
<li>Access to a Vector&#8217;s elements is bounds-checked. You can never read a value from an index greater than the final element (<code>length - 1</code>). You can never set a value with an index more than one beyond the current final index (in other words, you can only set a value at an existing index or at index <code>[length]</code>).</li>
</ul>
</blockquote>
<p> [ <a href="http://help.adobe.com/en_US/AS3LCR/Flash_10.0/Vector.html" target="_blank">Vector docs</a>  ]</p>
<p><a href="http://www.bytearray.org/?p=775" target="_blank">ByteArray not only used Vectors heavily but did other optimizations</a> that are always good to do, even though optimization is evil when you are working with precious client side resources ensuring an optimized base starting point can be a good thing.</p>
<blockquote><p>So what did I do ?</p>
<ul>
<li>I used bitwise operators as much as possible.</li>
<li><strong>I replaced all Arrays with fixed length Vectors.</strong></li>
<li>I used pre-incrementation rather than post-incrementation (thanks <a title="Joa's wiki" href="http://wiki.joa-ebert.com/" target="_blank">Joa</a> for this one <img src='http://drawlogic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ).</li>
<li>I casted to int all my Vector indices access.</li>
<li>Other minor stuff you always do to optimize your code </li>
</ul>
</blockquote>
<p><strong>Other sources as well for even more optimization or shall I say efficient AS3:</strong></p>
<ul>
<li><a href="http://lab.polygonal.de/2008/06/18/using-object-pools/" target="_blank">Polygonal Labs Using Object Pools</a></li>
<li><a href="http://blog.joa-ebert.com/2008/05/07/tweening-and-object-pools/" target="_blank">Joa Ebert Tweening and Object Pools</a></li>
<li><a href="http://wiki.joa-ebert.com/index.php/Category:Code_Optimization" target="_blank">Joa Ebert Optmization Wiki</a></li>
<li><a href="http://www.insideria.com/2009/04/51-actionscript-30-and-flex-op.html" target="_blank">Sean Moore Efficient AS3 roundup (great list of resources for more at the bottom)</a></li>
<li><a href="http://www.lostinactionscript.com/blog/index.php/2008/09/28/tips-on-how-to-write-efficient-as3/" target="_blank">Lost in Actionscript Efficient AS3 Tips</a></li>
<li><a href="http://www.bigspaceship.com/blog/labs/as3-optimization-tip" target="_blank">Big SpaceShip Mouse Leave Tip</a> (flash can hog resources so when it isn&#8217;t in focus then let is stop tasking the processor)</li>
<li><a href="http://www.gskinner.com/blog/archives/2009/05/idle_cpu_usage.html" target="_blank">Grant Skinner Idle CPU in AIR FPS Tip</a> (set fps to a lower amount when it is out of focus)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>amfast Python Remoting and Services Library for Flash, Flex and other AMF</title>
		<link>http://drawlogic.com/2009/05/18/amfast-python-remoting-and-services-library-for-flash-flex-and-other-amf/</link>
		<comments>http://drawlogic.com/2009/05/18/amfast-python-remoting-and-services-library-for-flash-flex-and-other-amf/#comments</comments>
		<pubDate>Mon, 18 May 2009 07:18:12 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[AMF]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[FLEX]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PYTHON]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[tracking]]></category>
		<category><![CDATA[AMF0]]></category>
		<category><![CDATA[AMF3]]></category>
		<category><![CDATA[messaging]]></category>
		<category><![CDATA[remoting]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=548</guid>
		<description><![CDATA[pyamf is pretty sweet for Flash remoting with Pythonic server side, but now we have two nicely done and integrated remoting kits for python on the server side.
amfast is a new remoting library  that looks to be as sweet as pyamf (where sweet == fast and useful).  I am checking out amfast now but the [...]]]></description>
			<content:encoded><![CDATA[<p><strong><a href="http://pyamf.org/" target="_blank">pyamf </a></strong>is pretty sweet for Flash remoting with Pythonic server side, but now we have two nicely done and integrated remoting kits for python on the server side.</p>
<p><strong><a href="http://code.google.com/p/amfast/" target="_blank">amfast </a></strong>is a new remoting library  that looks to be as sweet as pyamf (where sweet == fast and useful).  I am checking out <a href="http://code.google.com/p/amfast/" target="_blank">amfast </a>now but the speed boost alone might be worth it.  For instance, working with real-time games, when you need static content you need to grab that quickly sometimes via a content service.  The faster that link the better. It also has <a href="http://twistedmatrix.com/trac/" target="_blank">Twisted</a> integration which is great for networking and <a href="http://www.sqlalchemy.org/" target="_blank">SQLAlchemy </a>integration which is in my opinion the best ORM for python (pyamf has twisted, django, pylons, sqlalchemy as well)</p>
<p><a href="http://code.google.com/p/amfast/" target="_blank">amfast </a>is well documented and has some great examples.  If you have the Python addiction, check it.</p>
<blockquote>
<h3>Description</h3>
<ul>
<li>AmFast is a Flash remoting framework for Python.</li>
<li>AmFast can use AMF to communicate between Python and Flash, Flex, and any other system that supports AMF.</li>
<li>AMF is a binary object serialization protocol used by Actionscript based applications.</li>
</ul>
<h3>Server Features</h3>
<ul>
<li>Support for NetConnection and RemoteObject RPC.</li>
<li><strong>Support for Producer/Consumer &#8216;push&#8217; messaging with HTTP polling, HTTP long-polling, and real-time HTTP streaming channels.</strong></li>
<li>Support for authentication with NetConnection and RemoteObject.</li>
<li>Flexible Target mapping system to map message destinations to invokable Target objects.</li>
<li>Support for ChannelSets with multiple Channels to expose resources in different ways.</li>
<li>Built in Channels for <a rel="nofollow" href="http://cherrypy.org/">CherryPy</a>, <a rel="nofollow" href="http://twistedmatrix.com/trac/">Twisted Web</a>, and plain WSGI.</li>
<li>Support for configurable Endpoints. Use AmFast&#8217;s built-in AMF encoder/decoder C-extension, or use an external AMF encoder/decoder, such as <a rel="nofollow" href="http://pyamf.org/">PyAmf</a> for a pure-Python implementation.</li>
</ul>
<h3>AMF Encoder/Decoder Features</h3>
<ul>
<li>AMF0/AMF3 encoder/decoder written in C as a Python extension for speed.</li>
<li><strong>More than 10x faster than the <a rel="nofollow" href="http://pyamf.org/">PyAmf</a> encoder/decoder (even when using <a rel="nofollow" href="http://pyamf.org/">PyAmf&#8217;s</a> optional C-extension).</strong></li>
<li>Map custom classes with ClassDef objects for <strong>complete control over serialization/de-serialization</strong>.</li>
<li>Full support for IExternalizable objects.</li>
<li>Data persistence with <a rel="nofollow" href="http://www.sqlalchemy.org/">SqlAlchemy</a> including remotely-loadable lazy-loaded attributes.</li>
<li><strong>Actionscript code generation from ClassDef objects.</strong></li>
</ul>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/05/18/amfast-python-remoting-and-services-library-for-flash-flex-and-other-amf/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Flash 3D Engine Yogurt3D based on OpenGL</title>
		<link>http://drawlogic.com/2009/04/30/flash-3d-engine-yogurt3d-based-on-opengl/</link>
		<comments>http://drawlogic.com/2009/04/30/flash-3d-engine-yogurt3d-based-on-opengl/#comments</comments>
		<pubDate>Fri, 01 May 2009 03:09:02 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[OPENGL]]></category>
		<category><![CDATA[swiftgl]]></category>
		<category><![CDATA[yogurt3d]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=537</guid>
		<description><![CDATA[Yogurt3D flash based 3d engine appeared recently and is another flash based 3d engine which is based on OpenGL called SwiftGL and is stated as open source.
The site mentions that OpenGL source can be converted to run in the engine.  You can do this now with Alchemy although it is in very early stages.  It [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yogurt3d.com/en/" target="_blank">Yogurt3D flash based 3d engine</a> appeared recently and is another flash based 3d engine which is based on OpenGL called<a href="http://www.yogurt3d.com/en/?p=15" target="_blank"> SwiftGL and is stated as open source</a>.</p>
<p>The site mentions that OpenGL source can be converted to run in the engine.  You can do this now with Alchemy although it is in very early stages.  It is not clear if it is an automatic conversion or if it simply means it is similar in syntax and method signatures, objects etc.</p>
<p><a href="http://www.yogurtistan.com/demo/OdaDemo/OdaDemo.php" target="_blank"><img class="alignnone" title="yogurt3d" src="http://i81.photobucket.com/albums/j223/drawkbox/yogurt3d.png" alt="" width="560" height="357" /></a></p>
<p>I definitely will be watching and see how it progresses, there isn&#8217;t much other than a single post about the engine so far and no info on the api or sample code.  Looking forward to seeing more, the z-sorting is quite nice.  Doesn&#8217;t appear like collisions are there yet but it has a nice look.</p>
<p>Sometimes excellent toolkits come out of the blue like this such as <a href="http://www.ffilmation.org/website/" target="_blank">Ffilmation</a> (isometric flash engine) or <a href="http://alternativaplatform.com/" target="_blank">Alternativa</a> (flash 3d engine flash 10 focused) so you never know.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/04/30/flash-3d-engine-yogurt3d-based-on-opengl/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Releases O3D Plugin for 3D in Browser Controlled with Javascript</title>
		<link>http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/</link>
		<comments>http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/#comments</comments>
		<pubDate>Tue, 21 Apr 2009 23:31:04 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[formats]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[o3d]]></category>
		<category><![CDATA[sketchup]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=524</guid>
		<description><![CDATA[Google has a few things going for 3d in the browser, not just 3d but hardware rendering in the browser.  They previously had native client which allows you to run code via a plugin proxy with a sample running Quake.  They also had Lively which was a virtual world plugin that was shut down a [...]]]></description>
			<content:encoded><![CDATA[<p>Google has a few things going for 3d in the browser, not just 3d but hardware rendering in the browser.  They previously had <a href="http://code.google.com/p/nativeclient/" target="_blank">native client</a> which allows you to run code via a plugin proxy with a sample running Quake.  They also had <a href="http://www.lively.com/goodbye.html" target="_blank">Lively which was a virtual world plugin</a> that was shut down a few month after it started.</p>
<p><a href="http://google-code-updates.blogspot.com/2009/04/toward-open-web-standard-for-3d.html" target="_blank"><img class="alignnone" title="o3d" src="http://i81.photobucket.com/albums/j223/drawkbox/o3d.png" alt="" width="560" height="316" /></a></p>
<p>Now they are also <a href="http://code.google.com/apis/o3d/" target="_blank">making and releasing an O3D plugin that looks to be another way to do web 3d</a> scenes and games although it is a very early stage. They appear to <a href="http://google-code-updates.blogspot.com/2009/04/toward-open-web-standard-for-3d.html" target="_blank">want to have an open discussion about how best to add hardware rendering to the web</a>.  Their approach uses a javascript api to control the browser plugin and the <a href="http://code.google.com/apis/o3d/" target="_blank">O3D control</a> is essentially just a renderer.</p>
<p>This won&#8217;t change anything now as Unity3D, Flash 3D pseudo engines, even Director 3D still are the top choices for games, apps, and interactives that need effects and possibly hardware rendering. But it is interesting that Google is essentially re-entering this debate after ditching on Lively and they must see some benefit to having a discussion about 3d on the web and 3d standards in general.  I know they have lots of models and tools with <a href="http://sketchup.google.com/" target="_blank">SketchUp</a> and <a href="http://sketchup.google.com/3dwarehouse/" target="_blank">Google 3D warehouse</a> so who knows maybe they will take it over by being standards, open and information based.</p>
<blockquote>
<h3>What is O3D?</h3>
<p>O3D is an open-source web API for creating rich, interactive 3D applications in the browser. This API is shared at an early stage as part of a conversation with the broader developer community about establishing an open web standard for 3D graphics.</p>
<h3>Get involved</h3>
<ul>
<li>Download the plug-in (<a href="http://tools.google.com/dlpage/o3d/eula.html">Windows</a> and <a href="http://tools.google.com/dlpage/o3d/eula.html">Mac</a>) and explore the <a href="http://code.google.com/apis/o3d/docs/samplesdirectory.html">samples</a> to see O3D&#8217;s capabilities. Linux users, see these <a href="http://code.google.com/p/o3d/wiki/HowToBuild">instructions</a>.</li>
<li>Read the <a href="http://code.google.com/apis/o3d/docs/techoverview.html">Technical Overview</a> and <a href="http://code.google.com/apis/o3d/docs/devguideintro.html">Developer&#8217;s Guide</a> to learn how to get started.</li>
<li>Join the O3D <a href="http://code.google.com/apis/o3d/docs/groups.html">developer groups</a> to provide feedback.</li>
</ul>
</blockquote>
<p><object width="560" height="340" data="http://www.youtube.com/v/uofWfXOzX-g&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/uofWfXOzX-g&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>One thing is for sure, 3d development is still old school proprietary lock in in most cases.  Working with 3d and tools like Maya, 3dsmax and others they have always been very non standard.  From file formats to interfaces to even basic movements, all different.  The general maths of 3d are the same and so should 3d pipelines.  Formats like <a href="http://en.wikipedia.org/wiki/COLLADA" target="_blank">COLLADA </a>are nice because they are starting to open up 3d pipelines and content creation but COLLADA still has many porting issues.  <a href="http://en.wikipedia.org/wiki/FBX" target="_blank">FBX file format</a> is another that is really useful and common making pipelines in Unity 3D, for instance, very nice. But it is owned and run by Autodesk who owns all the 3d apps (Maya, 3dsmax, SGI) and I am a bit leary of that method.  But in the end 3d pipelines and rendering will be somewhat standardized and maybe the web will be hardware rendered one day.  In most cases it is not needed, but for gaming, immersion, demos and other entertainment it could benefit heavily from a more standardized 3d pipeline and methods.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Silverlight 3 Mix09 Demos Video of Pixel Shaders (HLSL Authored), 3D Planes, SaveDialog, Local Connections, Out of Browser</title>
		<link>http://drawlogic.com/2009/03/22/silverlight-3-mix09-demos-video-of-pixel-shaders-hlsl-authored-3d-planes-savedialog-local-connections-out-of-browser/</link>
		<comments>http://drawlogic.com/2009/03/22/silverlight-3-mix09-demos-video-of-pixel-shaders-hlsl-authored-3d-planes-savedialog-local-connections-out-of-browser/#comments</comments>
		<pubDate>Sun, 22 Mar 2009 22:31:13 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[APPLICATIONS]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[DESKTOP]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[EFFECTS]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[EXPRESSION]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[INTERACTIVE]]></category>
		<category><![CDATA[INTERFACE]]></category>
		<category><![CDATA[MARKET]]></category>
		<category><![CDATA[MICROSOFT]]></category>
		<category><![CDATA[PERFORMANCE]]></category>
		<category><![CDATA[PIXEL]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[SILVERLIGHT]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[XAML]]></category>
		<category><![CDATA[moonlight]]></category>
		<category><![CDATA[unity3d]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[savedialog]]></category>
		<category><![CDATA[shaders]]></category>
		<category><![CDATA[silverlight 3]]></category>
		<category><![CDATA[sl3]]></category>
		<category><![CDATA[VIDEO]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=458</guid>
		<description><![CDATA[Here is a video with more information on Silverlight 3 Beta features that are matches of the latest Flash killer features in pixel shaders, 3d planes (ability to create pseudo-3d engines like papervision3d), local saving, pixel operations/bitmap handling, local messaging (silverlight to silverlight &#8211; like localconnection), out of browser desktop running ability of SL3, SEO [...]]]></description>
			<content:encoded><![CDATA[<p>Here is a <a href="http://videos.visitmix.com/MIX09/T14F" target="_blank">video with more information on Silverlight 3 Beta features</a> that are matches of the latest Flash killer features in pixel shaders, 3d planes (ability to create pseudo-3d engines like papervision3d), local saving, pixel operations/bitmap handling, local messaging (silverlight to silverlight &#8211; like localconnection), out of browser desktop running ability of SL3, SEO and search indexing capabilities / deep linking navigation and more.</p>
<p><strong>Video of the features of SL3 Beta, Demos, at a Slow Pace from #mix09</strong><br />
<!--start_raw--><br />
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="760" height="420"><param name="source" value="http://videos.visitmix.com/Skins/mixvideos/Styles/players/VideoPlayer2009_02_11.xap" /><param name="initParams" value="m=http://mschannel9.vo.msecnd.net/o9/mix/09/wmv-hq/t14f.wmv,autostart=false,autohide=true,showembed=true, thumbnail=http://videos.visitmix.com/Skins/mixvideos/Styles/players/VideoPlayer2009_02_11.xap, postid=0" /><param name="background" value="#00FFFFFF" /><a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;"><br />
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/><br />
</a><br />
</object><br />
<!--end_raw--></p>
<p><strong>A few points after the video and taking a tour of the features. </strong></p>
<p><strong>The pixel shaders are written in HLSL (shader 2), however they are compiled to byte code and do not currently use the gpu </strong>for rendering. While the pixel shaders are very cool and the language to write them is standard pretty much for shaders in HLSL shader model 2 DirectX-based (the other is GLSL OpenGL based) they have not allowed this byte code to run on the GPU&#8230; yet.  Here Flash and Pixel Bender actually are ahead there.</p>
<p><strong>Although there are 3d planes which is very exciting, no good pseudo 3d engine exists yet matching the 3 in flash (papervision3d, away3d, sandy). </strong> When SL3 comes out I am sure we will see a few emerge or build them ourselves because this iteration of SL3 looks pretty fun.</p>
<p><strong>Pixel based operations will be a huge advancement </strong>much like it was in earlier flash versions as it adds some demo scene type abilities and experiments with pixels that are fun.  This also lends to doing cool things like shaders, effects, AR, face recognition, motion detection etc.</p>
<p>Effects like Blur and Drop shadow are good and the ability to add custom ones, great. However currently they are pretty performance intensive.  They are also in Flash but there needs to be some refinement in SL3 effects before launch.</p>
<p>Desktop runnable apps in out of browser will be nice and this is a direct compete with Adobe AIR which was a surprise.</p>
<p>Local Communication supports desktop to browser communication.</p>
<p>Isolated storage (similar to shared objects) supports 1MB in browser, 25MB out of browser defaults.</p>
<p>This version of silverlight is really a 1.0 version as typical with most software.  Version 2 or version 3 is usually what the initial design goals pan out.  Much like<a href="http://drawlogic.com/2009/03/18/unity-3d-25-released-includes-windows-build-environment-ide/" target="_blank"> the latest unity3d version (2.5) that has windows support</a> and the <a href="http://developer.apple.com/iphone/program/sdk.html" target="_blank">iPhone SDK 3.0</a> that both came out this week, even <a href="http://livedocs.adobe.com/flex/2/langref/migration.html" target="_blank">actionscript 3 compared to earlier versions</a>, these toolkits are finally iterated enough that they are really solid platforms for building cool stuff on and become platforms.  The next version of all these could be very, very dangerous.</p>
<p><strong>Huge missing features:</strong></p>
<p>Although there are some great features in SL3 beta, it is still not done and it is still missing some key components that Flash has which make it very attractive in the interactive space.</p>
<ul>
<li><strong>Camera and Microphone support </strong>- Macromedia hired one of the smartest dudes around in Jeremy Allaire back in flash 6 days to help add support for Flash Communication Server (Flash Media Server now) Camer and Microphone support.  One of the best R&amp;D periods at Macromedia. SL needs this soon.</li>
<li><strong>Printing support</strong> &#8211; what was long a problem in Flash is so in SL, there is no good printing support</li>
<li><strong><strike>No GPU usage for Pixel Effects/Shaders</strike></strong> &#8211; (neither flash nor silverlight support hardware accelerated shaders in PixelEffects/Pixelbender &#8211; Pixel Effects/Shaders need GPU support (see <a href="http://blogs.adobe.com/kevin.goldsmith/2008/09/cpu_gpu_multico.html">Kevin Goldsmith&#8217;s article on GPU mixed with CPU</a> and how this may or may not be good. However processors are speeding up and multi-core helps software rendering, the quality of GPU is well beyond what software rendering can deliver for a few years to come at least while architecture advances, probably more like 5-10 years.  </li>
<li><strong>No UDP plans yet </strong>- Adobe has RTMFP, SL sockets has no public plans for adding UDP that I have seen</li>
<li><strong>No Alpha Channel in Video </strong>- You can do this with a shader though but not supported by default.</li>
</ul>
<p><strong>Silverlight 3 Video</strong></p>
<p>Flash has the upperhand in video and probably will still even though SL3 has H.264.  Flash added this at the same time and though they still have FLV which revolutionized web video they are now much broader in support in video than SL3.  Silverlight has H.264 and VC1 support (their own FLV like codec).  Still pretty cool a couple years ago there was no HD on the web now everyone has it in H.264 video support.</p>
<p><strong>Currently nothing innovative, mainly catchup still, but here are some options</strong></p>
<p>Silverlight 3 beta and the video below the features and highlights will look very similar to flash and flash community advancements over the last couple years.  There is no innovation just yet.</p>
<p><strong>But where that could happen is in socket support with UDP.</strong> Flash has moved on this in <a href="http://drawlogic.com/2008/12/12/adobe-stratus-client-to-client-flash-communication-p2p-with-rtmfp/" target="_blank">RTMFP and the beginning of larger scale networking support with UDP with samples like stratus</a>.  This is a huge differentiating feature for what I think will be game changer on the web (it already is on desktop mmos) in real-time or closer to real-time support for larger sets of users in online games like MMOs or virtual communities, even tools to make request based real-time sites like micro-blogging faster and able to handle more users (right now it is very linear if users get many followers, UDP will allow a better distributed framework for messaging).</p>
<p><strong>Local Storage</strong></p>
<p>Silverlight and Unity3D all need this, Flash could use better support for this.  Local saving of a files for cache beyond the internet cache and greater than the 1MB/25MB limits of SL3 IsolatedStorage.  This is an issue when you are making large scale games in that you need to save lots of assets to a client but to make it economical you want ot save more than the default internet cache amount. Flash Shared Object (Local) allow you to do this somewhat but it would be great to have a way to just download files for cache (upon user agreement) to store assets in bulk of allowable types (images, video, models, bundles) to the file system.</p>
<p>Hardware rendering for 3d support and UDP support will put Flash and SL3 on par with the killer Unity3D kit for making online web games and other activex/plugins like <a href="http://technology.instantaction.com/" target="_blank">instantaction</a> that allow you to do these things already.</p>
<p><strong>The one thing SL has over Flash</strong></p>
<p>Flash and Flex are great.  But there is this massive division in the community and marketing of Flash.  Silverlight is entirely unified and this has much to do with starting clean at a time that interactive development is heading more into a technology and developers control.  Flash and Flex need to bring it together.  AS3 has been out long enough that the people with skills have hopped on and taken it to a new level, mainly from programmers.  If Adobe created a version of Flash that was a new IDE and consolidated Flex and Flash into just Flash, made the IDE as powerful as FDT or FlashDevelop3 there could be hope to bring the platform together.  I understand they had to work it in slowly because it was a designers platform really (even though coders still pushed the limits in games and apps built on it) so they had to tip toe carefully on this to not alienate people.  But now I think the division is a serious problem with the platform and must be addressed, noone expected Silverlight to be this quick on at least SL3 features.  And even though the initial approach might have been bad as SL1 was a huge letdown, Microsoft does not give up and you can see in the XBOX360 and DirectX that they are very pursuant.  DirectX really didn&#8217;t become huge until version 7 so these guys won&#8217;t relent.</p>
<p>I am not a huge fan of using the proprietary tools.  Even in Flash I use as much open source as I can even though the player is locked, but Moonlight is something that trails Silverlight development and is a very unique thing in both open source and cross platform/multiplatform development.  It is a clear relationship and aims to make Silverlight run on multiplatform mono including Linux.  This could win out in the end who knows.  </p>
<p><strong>Futures</strong></p>
<p>Great iterations of software happened this week in <a href="http://drawlogic.com/2009/03/18/unity-3d-25-released-includes-windows-build-environment-ide/" target="_blank">the latest unity3d version (2.5) that has windows support</a> and the <a href="http://developer.apple.com/iphone/program/sdk.html" target="_blank">iPhone SDK 3.0</a> and now SL3 is quite a surprise in feature set.  </p>
<p>I have been really busy this week just delving into all them and hope to start making more cool and useful projects in them.  The best part is right now is great to be an interactive or game developer as all major software companies and markets are focused on retaining good developers.  I don&#8217;t&#8217; recall a time other than the beginning the the web virtual land rush that has so many options and markets that skilled developers and designers can choose from.  Good times.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/03/22/silverlight-3-mix09-demos-video-of-pixel-shaders-hlsl-authored-3d-planes-savedialog-local-connections-out-of-browser/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
<enclosure url="http://mschannel9.vo.msecnd.net/o9/mix/09/wmv-hq/t14f.wmv" length="268979736" type="video/x-ms-wmv" />
		</item>
	</channel>
</rss>
