<?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; JAVASCRIPT</title>
	<atom:link href="http://drawlogic.com/category/javascript/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>WebGL Announced, Javascript Controlled OpenGL Standard, is Now Official at Khronos Group, Who Runs OpenGL, OpenVG, OpenGL ES</title>
		<link>http://drawlogic.com/2009/08/08/webgl-announced-javascript-controlled-opengl-standard-is-now-official-at-khronos-group-who-runs-opengl-openvg-opengl-es/</link>
		<comments>http://drawlogic.com/2009/08/08/webgl-announced-javascript-controlled-opengl-standard-is-now-official-at-khronos-group-who-runs-opengl-openvg-opengl-es/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 21:55:11 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[AWAY3D]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[COMPANIES]]></category>
		<category><![CDATA[CONFERENCE]]></category>
		<category><![CDATA[EFFECTS]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[HAXE]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[NEWS]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[OPENGL]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[TORQUE 3D]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[unity3d]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[khronos]]></category>
		<category><![CDATA[opengles]]></category>
		<category><![CDATA[standard]]></category>
		<category><![CDATA[webgl]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=622</guid>
		<description><![CDATA[So many cool and useful technologies are unveiled at SIGGRAPH every year, this year at SIGGRAPH 2009 was no different.  Khronos Group, behind the new guidance of OpenGL, OpenGL ES, OpenCL, OpenVG, COLLADA etc, came another big announcement about hardware rendering within the browser.  WebGL is now an official standard being developed at Khronos Group [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="OpenGL" src="http://i81.photobucket.com/albums/j223/drawkbox/opengl-logo-1-1.png" alt="" width="239" height="123" />So many cool and useful technologies are unveiled at SIGGRAPH every year, this year at SIGGRAPH 2009 was no different.  Khronos Group, behind the new guidance of OpenGL, OpenGL ES, OpenCL, OpenVG, COLLADA etc, came another big announcement about hardware rendering within the browser.  <a href="http://www.khronos.org/news/press/releases/khronos-webgl-initiative-hardware-accelerated-3d-graphics-internet/" target="_blank">WebGL is now an official standard being developed</a> at Khronos Group to bring javascript control of OpenGL to browsers&#8230; Wow!</p>
<p>Ok so this was officially announced at the GDC in March but limited information, but now it has been slated for an <strong>official public standard </strong><strong>in early 2010</strong>. Shortly after the announcement at the GDC we saw <a href="http://code.google.com/apis/o3d/" target="_blank">Google o3D</a> appear doing exactly that, controlling OpenGL through Javascript in the browser <a href="http://o3d.blogspot.com/2009/07/improving-o3ds-hardware-compatibility.html" target="_blank">but it was still largely software/harward hybrid rendered</a>. Google, Mozilla, Opera are part of the companies supporting WebGL which is great for browser support, also NVIDIA, AMD and Ericsson are in on it.</p>
<blockquote>
<h3><img class="alignright" title="Khronos Group" src="http://i81.photobucket.com/albums/j223/drawkbox/khronos_logo.gif" alt="" width="195" height="57" />Khronos Details WebGL Initiative to Bring Hardware-Accelerated 3D Graphics to the Internet</h3>
<p><em>JavaScript Binding to OpenGL ES 2.0 for Rich 3D Web Graphics without Browser Plugins; Wide industry Support from Major Browser Vendors including Google, Mozilla and Opera; Specification will be Available Royalty-free to all Developers</em></p>
<p><strong>4th August, 2009 – New Orleans, SIGGRAPH 2009 – The Khronos™ Group, today announced more details on its new WebGL™ working group</strong> for enabling hardware-accelerated 3D graphics in Web pages without the need for browser plug-ins.  First announced at the Game Developers Conference in March of 2009, the WebGL working group includes many industry leaders such as <strong>AMD, Ericsson, Google, Mozilla, NVIDIA and Opera</strong>.  The WebGL working group is defining a JavaScript binding to OpenGL® ES 2.0 to enable rich 3D graphics within a browser on any platform supporting the OpenGL or OpenGL ES graphics standards.  The working group is developing the specification to provide content portability across diverse browsers and platforms, including the capability of portable, secure shader programs.  <strong>WebGL will be a royalty-free standard developed under the proven Khronos development process, with the target of a first public release in first half of 2010.</strong> Khronos warmly welcomes any interested company to become a member and participate in the development of the WebGL specification.</p></blockquote>
<p><a href="http://drawlogic.com/2009/04/21/google-releases-o3d-plugin-for-3d-in-browser-controlled-with-javascript/" target="_blank">Google released O3D</a> this year and there are great strides in 3d within the browser from game engine wrapper technologies such as <a href="http://technology.instantaction.com/" target="_blank">instant action technology</a>, gaim theory engine (now owned by id Software and runs <a href="http://www.quakelive.com/" target="_blank">Quake  Live</a>, hardware rendered <a href="http://unity3d.com/" target="_blank">Unity 3D</a> (and <a href="http://www.garagegames.com/products/torque-3d" target="_blank">Torque 3D</a> coming soon), and Flash software rendered  3d engines <a href="http://blog.papervision3d.org/" target="_blank">Papervision 3D</a>, <a href="http://away3d.com/" target="_blank">Away 3D</a>, <a href="http://www.flashsandy.org/" target="_blank">Sandy </a>(<a href="http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/" target="_blank">Sandy also released a haXe version that exports a javascript version</a>) and others.  But it looks like the movement is to bring OpenGL to the web as a standard under the name WebGL, this would be great!  There would still be lots of times where plugins are better now and in the near future but the path is a good one. Having a software/hardware rendering hybrid like Google O3D for broad video card support (some of the painful older intel cards), or using a plugin like Unity3D, Torque 3D or wrapper technology for bigger engines is a good idea for the time being. But the future is grand in this area.</p>
<p>I think that Google O3D and OpenGL ES success on iPhone games probably combined to get this in motion.  OpenGL and very basic video cards are now standard in most machines out there.  <a href="http://unity3d.com/webplayer/hwstats/" target="_blank">Unity3D actually published hardware statistics on casual gamers</a> (web-based games) ever so kindly and shows that even though there are some older Intel cards out there, for the most part machines nowadays have a video card capable of supporting at least low-poly 3d and hardware supported 2d rendering in real-time for games, user interfaces and more.</p>
<p>This is exciting news, it appears the movement of the web gaming market is getting much more capable and is accelerating the innovation of hardware accelerating the web.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/08/08/webgl-announced-javascript-controlled-opengl-standard-is-now-official-at-khronos-group-who-runs-opengl-openvg-opengl-es/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Haxe Sandy Ability to Generate a 3D Javascript Engine Port of Sandy for Canvas</title>
		<link>http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/</link>
		<comments>http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 17:32:36 +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[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[HAXE]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[SANDY]]></category>
		<category><![CDATA[STANDARDS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[hx]]></category>
		<category><![CDATA[motor2]]></category>
		<category><![CDATA[port]]></category>
		<category><![CDATA[puremvc]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=604</guid>
		<description><![CDATA[Haxe Sandy is a version of Sandy that can export to an experimental Javascript 3D engine taking advantage of the &#60;canvas&#62; element. There are some great demos that run smoothly in canvas capable browsers and very smooth in Chrome.

Demos of Haxe Sandy:

Displaying  		a model
 Getting Started
 Model Loading
Physics
Shading
Tweening
Skybox
Primitives

Sandy was actually the first open source [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flashsandy.org/haxe" target="_blank">Haxe Sandy </a>is a version of Sandy that can export to an experimental Javascript 3D engine taking advantage of the &lt;canvas&gt; element. There are some <a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html" target="_blank">great demos that run smoothly</a> in canvas capable browsers and very smooth in Chrome.</p>
<p><a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html" target="_blank"><img class="alignright" title="Sandy Haxe" src="http://i81.photobucket.com/albums/j223/drawkbox/sandyhx.png" alt="" width="341" height="292" /></a></p>
<p><strong>Demos of Haxe Sandy:</strong></p>
<ul>
<li><a href="http://webdemos.sourceforge.net/haxesandy/" target="_blank">Displaying  		a model</a></li>
<li> <a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html" target="_blank">Getting Started</a></li>
<li> <a href="http://webdemos.sourceforge.net/haxesandy/modelloading-js.html" target="_blank">Model Loading</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/physics-js.html" target="_blank">Physics</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/shading-js.html" target="_blank">Shading</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/tweening-js.html" target="_blank">Tweening</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/skybox-js.html" target="_blank">Skybox</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/primitives-js.html" target="_blank">Primitives</a></li>
</ul>
<p>Sandy was actually the first open source 3d engine in flash, maybe this will be a trend building in <a href="http://haxe.org/" target="_blank">haXe </a>for export to flash and javascript?  It certainly looks like a great start and would make a very nice platform for 3d on the web allowing Sandy or other flash libraries to run in Flash and Javascript by writing in an abstraction platform like haXe. Other libraries like <a href="http://www.motorphysics.de/" target="_blank">Motor2</a>, <a href="http://code.google.com/p/physaxe/" target="_blank">Physaxe</a>, <a href="http://code.google.com/p/haxe3d/" target="_blank">haxe3D</a>, <a href="http://forums.puremvc.org/index.php?topic=636.0" target="_blank">PureMVC </a>and more have haXe versions. Still very experimental but a possible need when Flash and canvas are both in the market in the future.  Right now it is still all Flash.</p>
<ul>
<li><a href="http://www.flashsandy.org/haxe" target="_blank">Haxe Sandy</a></li>
<li><a href="http://webdemos.sourceforge.net/haxesandy/gettingstarted-js.html">Haxe Sandy Demos</a></li>
<li><a href="http://www.brighthub.com/hubfolio/matthew-casperson/blog/archive/2009/07/08/flash-and-javascript-3d-with-sandy-hx.aspx" target="_blank">Haxe Sandy Tutorials by Matthew Casperson</a></li>
<li><a href="http://www.flashsandy.org/download" target="_blank">Haxe Sandy Download</a>
<ul>
<li><a title="http://sandy.googlecode.com/files/sandy-hx-src-3.1.1.tar.gz" rel="nofollow" href="http://sandy.googlecode.com/files/sandy-hx-src-3.1.1.tar.gz">Download sources</a></li>
<li><a title="http://sandy.googlecode.com/files/sandy-hx-docs-3.1.1.tar.gz" rel="nofollow" href="http://sandy.googlecode.com/files/sandy-hx-docs-3.1.1.tar.gz">Download API documentation</a></li>
<li><a title="http://sandy.googlecode.com/files/sandy-hx-tutos-3.1.1.tar.gz" rel="nofollow" href="http://sandy.googlecode.com/files/sandy-hx-tutos-3.1.1.tar.gz">Download all examples to get started</a></li>
</ul>
</li>
</ul>
<p>[ <a href="http://www.devmaster.net/news/index.php?storyid=2296" target="_blank">via Matthew Casperson at devmaster.net</a> ]</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/07/16/haxe-sandy-able-to-generate-a-3d-javascript-engine-port-of-sandy-for-canvas/feed/</wfw:commentRss>
		<slash:comments>0</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>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>JavaScript Standard ECMAScript Fifth Edition (ES5) Published</title>
		<link>http://drawlogic.com/2009/04/09/javascript-standard-ecmascript-fifth-edition-es5-published/</link>
		<comments>http://drawlogic.com/2009/04/09/javascript-standard-ecmascript-fifth-edition-es5-published/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 00:06:00 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[ADOBE]]></category>
		<category><![CDATA[ARCHITECT]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[JAVASCRIPT2]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[MICROSOFT]]></category>
		<category><![CDATA[NEWS]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[ECMAScript]]></category>
		<category><![CDATA[Edition]]></category>
		<category><![CDATA[es4]]></category>
		<category><![CDATA[es5]]></category>
		<category><![CDATA[Fifth]]></category>
		<category><![CDATA[standard]]></category>
		<category><![CDATA[STANDARDS]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=518</guid>
		<description><![CDATA[Well it appears ES4 path is dead officially and a new standard has been published replacing it, the ECMAScript Fifth Edition announced in Geneva, Switzerland and will be in place as fully tested and approved by all involved by the end of 2009. ES5 was previously known as ECMAScript 3.1 or an iteration of the [...]]]></description>
			<content:encoded><![CDATA[<p>Well it appears ES4 path is dead officially and a new standard has been published replacing it, <a href="http://www.ecma-international.org/news/PressReleases/PR_Ecma_finalises_major_revision_of_ECMAScript.htm" target="_blank">the ECMAScript Fifth Edition</a> announced in Geneva, Switzerland and will be in place as fully tested and approved by all involved by the end of 2009. ES5 was previously known as ECMAScript 3.1 or an iteration of the ES3 standard that is what most JavaScript is based on in all browsers, and was previously competing with the ES4 newer standard that changed Javascript quite a bit but in many areas much better, in some areas it was bloated.</p>
<blockquote><p>This revision of <a style="font-family: Verdana; font-style: normal; font-variant: normal; font-weight: normal; font-size: 1em; line-height: normal; font-size-adjust: none; font-stretch: normal; height: auto; letter-spacing: normal; text-align: left; text-decoration: underline; text-indent: 0px; text-transform: none; vertical-align: baseline; white-space: normal; width: auto; word-spacing: normal; color: #999999;" href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMA-262</a> will be known as ECMAScript, Fifth Edition. It was previously developed under the working name ECMAScript 3.1, which will no longer be used. ECMAScript is the scripting language that is used to create web pages with dynamic behavior. ECMAScript, which is more commonly known by the name JavaScript™, is an essential component of every web browser and the ECMAScript standard is one of the core standards that enable the existence of interoperable web applications on the World Wide Web.</p></blockquote>
<p>ECMAScript Fifth Edition (ES5) was <a href="http://blogs.msdn.com/jscript/archive/2009/04/09/a-major-milestone-in-javascript-standardization.aspx" target="_blank">strongly guided by Crockford and Microsoft</a>, which is different than the push for ES4 which is what ActionScript 3 is based on and was supported by Adobe and Mozilla.</p>
<p>However it seems everyone is happy and everyone is supporting this version to get things moving if you go by the ECMA Org quotes:</p>
<blockquote>
<p class="PR-Heading3" style="font-family: Verdana,Arial,Helvetica,sans-serif; font-size: 1.22em; font-weight: bold; color: #333333;">Industry Reaction</p>
<p>Brendan Eich, Mozilla CTO and creator of the JavaScript language, said “The Fifth Edition of ECMAScript makes real improvements based on browser innovation and collaboration in Ecma, which provides a solid foundation for further work in future editions.” Microsoft’s ECMAScript architect, Allen Wirfs-Brock, commented “We expect the Fifth Edition to benefit all web developers by helping improve browser interoperability and making enhanced scripting features broadly available.”</p></blockquote>
<p>Peace.</p>
<p>I still have to read further into the <a href="http://www.ecma-international.org/publications/files/drafts/tc39-2009-025.pdf" target="_blank">ECMAScript 5 specification which was published</a>, but there are some new interesting things.</p>
<p>One nice feature is the <a href="http://blogs.msdn.com/ie/archive/2008/09/10/native-json-in-ie8.aspx" target="_blank">JSON object</a>.  Right now you have to eval to use JSON in javascript in a browser but they now have JSON.parse(object) and JSON.stringify(object) which is standard and conveniently already wired into IE8 this way. This is based on the <a href="http://www.json.org/json2.js" target="_blank">JSON2.js library</a> by <a href="http://www.crockford.com/" target="_blank">Douglas Crockford</a> of Yahoo.</p>
<pre lang="javascript">var jsObjString = "{\"memberNull\" : null, \"memberNum\" : 3, \"memberStr\" : \"StringJSON\", \"memberBool\" : true , \"memberObj\" : { \"mnum\" : 1, \"mbool\" : false}, \"memberX\" : {}, \"memberArray\" : [33, \"StringTst\",null,{}]";
var jsObjStringParsed = JSON.parse(jsObjString);
var jsObjStringBack = JSON.stringify(jsObjStringParsed);</pre>
<p>Another feature is <a href="http://blogs.msdn.com/ie/archive/2009/01/13/responding-to-change-updated-getter-setter-syntax-in-ie8-rc-1.aspx" target="_blank">DOM prototypes</a> which are useful and cool, which allow you to extend dom objects.</p>
<ul>
<li><a style="text-decoration: none; color: #0066aa;" href="http://msdn.microsoft.com/en-us/library/dd282900(VS.85).aspx">Document Object Model Prototypes, Part 1: Introduction</a></li>
<li><a style="text-decoration: none; color: #0066aa;" href="http://msdn.microsoft.com/en-us/library/dd229916(VS.85).aspx">Document Object Model Prototypes, Part 2: Accessor (getter/setter) Support</a></li>
</ul>
<p>If you use javascript or are an actionscripter, not sure if Adobe will have ActionScript 4 go this way or if Alchemy has changed the flash player into a multi language VM now.  It will be fun to watch things progress but also if you are into javascript it seems this standard, ES5, will be it by the end of the year.  And probably since IE8 already supports it, in all new browser by then as well.  It will probably take 1-2 years before browser saturation makes this usable but if you are using standards that mimic this then there will be no change then, such as the JSON2.js library.</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/04/09/javascript-standard-ecmascript-fifth-edition-es5-published/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>UnityDevelop, Port of the Best Flash IDE, FlashDevelop for Unity Scripts (Javascript)</title>
		<link>http://drawlogic.com/2009/02/19/unitydevelop-port-of-the-best-flash-ide-flashdevelop-for-unity-scripts-javascript/</link>
		<comments>http://drawlogic.com/2009/02/19/unitydevelop-port-of-the-best-flash-ide-flashdevelop-for-unity-scripts-javascript/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 04:48:14 +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[C#]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[DESKTOP]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[TOOLS]]></category>
		<category><![CDATA[autocomplete]]></category>
		<category><![CDATA[blurst]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[flashbang]]></category>
		<category><![CDATA[flashdevelop]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[intellisense]]></category>
		<category><![CDATA[unity]]></category>
		<category><![CDATA[unity3d]]></category>
		<category><![CDATA[unityscript]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=407</guid>
		<description><![CDATA[The guys over at Flashbang Studios, a web game development studio in phoenix, az, and some of the most visible developers in the Unity3d space with Blurst, released something that may interest both FlashDevelop users and Unity3d developers.
UnityDevelop was released by Flashbang Studios recently and it is a modded version of FlashDevelop (originally from SharpDevelop [...]]]></description>
			<content:encoded><![CDATA[<p>The guys over at <a href="http://www.flashbangstudios.com/" target="_blank">Flashbang Studios</a>, a web game development studio in phoenix, az, and some of the most visible developers in the Unity3d space with <a href="http://blurst.com/" target="_blank">Blurst</a>, released something that may interest both <a href="http://www.flashdevelop.org/community/viewforum.php?f=11&amp;sid=f082b8fa607ed787daf1e3338d3e6d07" target="_blank">FlashDevelop </a>users and <a href="http://unity3d.com/" target="_blank">Unity3d</a> developers.</p>
<p><strong><a href="http://technology.blurst.com/unitydevelop-javascript-editor/" target="_blank">UnityDevelop was released by Flashbang Studios recently</a></strong> and it is a modded version of FlashDevelop (originally from <a href="http://www.icsharpcode.net/OpenSource/SD/Download/" target="_blank">SharpDevelop </a>a really nice open source .NET and mono IDE) and it supports intellisense for Javascript or Unity3d&#8217;s use of Javascript which is called UnityScript much like ActionScript.  UnityScript can be a little more strict and has access to all of Unity3d&#8217;s API calls just like C# and Boo in the mono based virtual machine that Unity3d uses.</p>
<p>FlashDevelop, is by far the best Flash / Flex /haXe IDE in my opinion so it is really great to release this for Unity.  I hope one day I or someone has the time to port to Mono so it can be used on Macs <a href="http://technology.blurst.com/unitydevelop-javascript-editor/#comment-56" target="_blank">even with the 140 pinvokes</a>, it would be a good spread mechanism for mono.</p>
<p>With <a href="http://drawlogic.com/2009/01/21/unity3d-25-coming-soon-about-to-blow-up-with-windows-ide-support/" target="_blank">Unity3d coming to windows soon</a>, UnityDevelop could be a good go to IDE for unity if you aren&#8217;t using solely C# with VS.NET. Currently this is based on FlashDevelop2 source code.</p>
<p><strong>Video Overview of UnityDevelop</strong><br />
<!--start_raw--><br />
<object width="640" height="360" data="http://vimeo.com/moogaloop.swf?clip_id=3076296&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=3076296&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" /></object><br />
<a href="http://vimeo.com/3076296">UnityDevelop Walkthrough</a> from <a href="http://vimeo.com/blurst">Flashbang Studios</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><strong>Downloads</strong></p>
<ul>
<li><a href="http://technology.blurst.com/examples/UnityDevelop.zip">Download UnityDevelop</a> (2.9 MB)</li>
<li><a href="http://technology.blurst.com/examples/UnityDevelop_dev.zip">Source Code</a></li>
</ul>
<p>Thanks flashbang!</p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/02/19/unitydevelop-port-of-the-best-flash-ide-flashdevelop-for-unity-scripts-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mini Javascript Version of Papervision3D-like Engine with Canvas (Pseudo 3d with 2d)</title>
		<link>http://drawlogic.com/2009/02/18/mini-javascript-version-of-papervision3d-with-canvas-pseudo-3d-with-2d/</link>
		<comments>http://drawlogic.com/2009/02/18/mini-javascript-version-of-papervision3d-with-canvas-pseudo-3d-with-2d/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 21:32:59 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[3d]]></category>
		<category><![CDATA[CODE]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PAPERVISION]]></category>
		<category><![CDATA[RENDERING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[japan]]></category>
		<category><![CDATA[papervision3d]]></category>
		<category><![CDATA[pseudo]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=389</guid>
		<description><![CDATA[Looks like it is a javascript day here at *drawlogic.  Here is an interesting example with some demos of a javascript and canvas based pseudo 3d engine. Anything this cool you know it has to be from Japan.
Also of note, it has been rumored that Silverlight 3 will have fully hardware accelerated 3d and canvas [...]]]></description>
			<content:encoded><![CDATA[<p>Looks like it is a javascript day here at *drawlogic.  Here is an interesting example with some<a href="http://gyu.que.jp/jscloth/touch.html" target="_blank"> demos of a javascript and canvas based pseudo 3d engine</a>. Anything this cool you know it has to be from Japan.<br />
Also of note, it has been rumored that Silverlight 3 will have fully hardware accelerated 3d and canvas and javascript engines are getting much faster with great demos like this.  Adobe needs to leap into hardware acceleration for flash on a broader scale soon.</p>
<p>But I digress, this demo it appears, was inspired by Papervision3D due to the naming and the javascript reference of &#8220;<a href="http://gyu.que.jp/jscloth/parpevision.js" target="_blank">parpevision.js</a>&#8220;.  I wasn&#8217;t able to find much more information about this but it is very well done and this example even shows some environment mapping. It is not close to flash pseudo-3d engines like Papervision3D yet but at the rate of javascript engine development lately this could rival flash AVM2 in the next couple of years.</p>
<p><a href="http://gyu.que.jp/jscloth/touch.html" target="_blank"><img class="alignnone" title="papervision in javascript" src="http://i81.photobucket.com/albums/j223/drawkbox/js-environment-mapping.png" alt="" width="479" height="375" /></a></p>
<h3>Demos</h3>
<ul>
<li><a href="http://gyu.que.jp/jscloth/" target="_blank">Cloth</a></li>
<li><a href="http://gyu.que.jp/jscloth/miku.html" target="_blank">Miku Character</a></li>
<li><a href="http://gyu.que.jp/jscloth/touch.html" target="_blank">Enviroment Mapping</a></li>
</ul>
<h3>Code</h3>
<ul>
<li>Sample iPod iTouch Mesh data (<a href="http://gyu.que.jp/jscloth/touchdat/meshdata.js" target="_blank">meshdata.js</a>) &#8211; contains models</li>
<li>Code from the main engine (<a href="http://gyu.que.jp/jscloth/parpevision.js" target="_blank">parpevision.js</a>)</li>
<li>Sample Viewport and main app (<a href="http://gyu.que.jp/jscloth/touch.js" target="_blank">touch.js</a> from demo 3)</li>
</ul>
<p>Here is the code for the parpevision.js file and the mini engine, it is an MIT license.<span id="more-389"></span></p>
<pre lang="javascript">/* MIT-LICENSE */
/*
Copyright (c) 2009 Satoshi Ueyama

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

window.P3D = {
	texture: null,
	g: null
};

P3D.clear = function(f, w, h) {
	var g = this.g;
	g.beginPath();
	g.fillStyle = f;
	g.fillRect(0, 0, w, h);

}

P3D.num_cmp = function(a,b){return a-b;}

P3D.drawTriangle = function(poss, uvs, shade_clr) {
	var w = this.texture.width;
	var h = this.texture.height;

	var g = this.g;

	var vAd = [ poss[1].x - poss[0].x , poss[1].y - poss[0].y ];
	var vBd = [ poss[2].x - poss[0].x , poss[2].y - poss[0].y ];

	var vA = [ uvs[1].u - uvs[0].u , uvs[1].v - uvs[0].v ];
	var vB = [ uvs[2].u - uvs[0].u , uvs[2].v - uvs[0].v ];

	vA[0] *= w;
	vA[1] *= h;

	vB[0] *= w;
	vB[1] *= h;

	var m = new M22();
	m._11 = vA[0];
	m._12 = vA[1];
	m._21 = vB[0];
	m._22 = vB[1];

	var im = m.getInvert();
	if (!im) return false;

	var a = im._11 * vAd[0] + im._12 * vBd[0];
	var b = im._21 * vAd[0] + im._22 * vBd[0];

	var c = im._11 * vAd[1] + im._12 * vBd[1];
	var d = im._21 * vAd[1] + im._22 * vBd[1];

	var wu = uvs[0].u * w;
	var hv = uvs[0].v * h;
	var du = wu * a + hv * b;
	var dv = wu * c + hv * d;

	g.save();

	g.beginPath();
	g.moveTo(poss[0].x, poss[0].y);
	g.lineTo(poss[1].x, poss[1].y);
	g.lineTo(poss[2].x, poss[2].y);
	g.clip();

	g.transform(a, c, b, d, poss[0].x - du, poss[0].y - dv);

	// bounds
	var bx = [wu, wu+vA[0], wu+vB[0]];
	var by = [hv, hv+vA[1], hv+vB[1]];

	bx.sort(P3D.num_cmp);
	by.sort(P3D.num_cmp);

	var bw = bx[2] - bx[0];
	var bh = by[2] - by[0];

	if ((bx[0]+bw) &lt;= (w-1)) bw++;
	if ((by[0]+bh) &lt;= (h-1)) bh++;
	if (bx[0] &gt;= 1) {bx[0]--; bw++;}
	if (by[0] &gt;= 1) {by[0]--; bh++;}

	g.drawImage(this.texture, bx[0], by[0], bw, bh, bx[0], by[0], bw, bh);

	if (shade_clr) {
		g.fillStyle = shade_clr;
		g.fillRect(bx[0], by[0], bw, bh);
	}

	g.restore();

	return true;
}

P3D.drawTestByIndexBuffer = function(pos_buf, ix_buf, culling) {
	var g = this.g;

	if ((ix_buf.length%3) != 0)
		throw "invalid index buffer length!";

	var len = ix_buf.length/3;

	var i, ibase, vbase;
	var poss = [{},{},{}];
	g.strokeWidth = 1;
	for (i = 0, ibase = 0;i &lt; len;++i)
	{
		vbase = ix_buf[ibase++] &lt;&lt; 2;
		poss[0].x = pos_buf[vbase++];
		poss[0].y = pos_buf[vbase  ];

		vbase = ix_buf[ibase++] &lt;&lt; 2;
		poss[1].x = pos_buf[vbase++];
		poss[1].y = pos_buf[vbase  ];

		vbase = ix_buf[ibase++] &lt;&lt; 2;
		poss[2].x = pos_buf[vbase++];
		poss[2].y = pos_buf[vbase  ];

		// z component of cross product &lt; 0 ?

		var Ax = poss[1].x - poss[0].x;
		var Ay = poss[1].y - poss[0].y;
		var Cx = poss[2].x - poss[1].x;
		var Cy = poss[2].y - poss[1].y;

		var cull = ( (((Ax * Cy) - (Ay * Cx))*culling) &lt; 0);

		g.beginPath();
		g.strokeStyle = cull ? "#592" : "#0f0";
		g.moveTo(poss[0].x, poss[0].y);
		g.lineTo(poss[1].x, poss[1].y);
		g.lineTo(poss[2].x, poss[2].y);
		g.lineTo(poss[0].x, poss[0].y);
		g.stroke();
	}
}

P3D.drawByIndexBuffer = function(pos_buf, ix_buf, tx_buf, culling, z_clip) {
	var w, h;
	var color_polygon = !this.texture;
	if (this.texture) {
		w = this.texture.width;
		h = this.texture.height;
	}

	var g = this.g;
	var m = new M22();

	if (!culling) culling = 0;

	if ((ix_buf.length%3) != 0)
		throw "invalid index buffer length!";

	var i, ibase, vbase, tbase, poss = [{},{},{}];
	var len = ix_buf.length/3;
	var uv_0u, uv_0v, uv_1u, uv_1v, uv_2u, uv_2v;

	for (i = 0, ibase = 0;i &lt; len;++i)
	{
		tbase = ix_buf[ibase++] &lt;&lt; 1
		vbase = tbase &lt;&lt; 1;
		poss[0].x = pos_buf[vbase++]; uv_0u = tx_buf[tbase++];
		poss[0].y = pos_buf[vbase++]; uv_0v = tx_buf[tbase];
		if (z_clip &amp;&amp; (pos_buf[vbase] &lt; 0 || pos_buf[vbase] &gt; 1)) {ibase += 2; continue;}

		tbase = ix_buf[ibase++] &lt;&lt; 1
		vbase = tbase &lt;&lt; 1;
		poss[1].x = pos_buf[vbase++]; uv_1u = tx_buf[tbase++];
		poss[1].y = pos_buf[vbase++]; uv_1v = tx_buf[tbase];
		if (z_clip &amp;&amp; (pos_buf[vbase] &lt; 0 || pos_buf[vbase] &gt; 1)) {++ibase; continue;}

		tbase = ix_buf[ibase++] &lt;&lt; 1
		vbase = tbase &lt;&lt; 1;
		poss[2].x = pos_buf[vbase++]; uv_2u = tx_buf[tbase++];
		poss[2].y = pos_buf[vbase++]; uv_2v = tx_buf[tbase];
		if (z_clip &amp;&amp; (pos_buf[vbase] &lt; 0 || pos_buf[vbase] &gt; 1)) {continue;}

		var vAd = [ poss[1].x - poss[0].x , poss[1].y - poss[0].y ];
		var vBd = [ poss[2].x - poss[0].x , poss[2].y - poss[0].y ];

		var vCd = [ poss[2].x - poss[1].x , poss[2].y - poss[1].y ];

		// z component of cross product &lt; 0 ?
		if( (((vAd[0] * vCd[1]) - (vAd[1] * vCd[0]))*culling) &lt; 0)
			continue;

		if (color_polygon) {
			g.fillStyle = uv_0u;

			g.beginPath();
			g.moveTo(poss[0].x, poss[0].y);
			g.lineTo(poss[1].x, poss[1].y);
			g.lineTo(poss[2].x, poss[2].y);
			g.fill();
			continue;
		}

		var vA = [ uv_1u - uv_0u , uv_1v - uv_0v ];
		var vB = [ uv_2u - uv_0u , uv_2v - uv_0v ];

		vA[0] *= w;
		vA[1] *= h;

		vB[0] *= w;
		vB[1] *= h;

		m._11 = vA[0];
		m._12 = vA[1];
		m._21 = vB[0];
		m._22 = vB[1];

		var im = m.getInvert();
		if (!im) { continue;}

		var a = im._11 * vAd[0] + im._12 * vBd[0];
		var b = im._21 * vAd[0] + im._22 * vBd[0];

		var c = im._11 * vAd[1] + im._12 * vBd[1];
		var d = im._21 * vAd[1] + im._22 * vBd[1];

		var wu = uv_0u * w;
		var hv = uv_0v * h;
		var du = wu * a + hv * b;
		var dv = wu * c + hv * d;

		g.save();

		g.beginPath();
		g.moveTo(poss[0].x, poss[0].y);
		g.lineTo(poss[1].x, poss[1].y);
		g.lineTo(poss[2].x, poss[2].y);
		g.clip();
		g.transform(a, c, b, d, poss[0].x - du, poss[0].y - dv);

		// bounds
		var bx = [wu, wu+vA[0], wu+vB[0]];
		var by = [hv, hv+vA[1], hv+vB[1]];

		bx.sort(P3D.num_cmp);
		by.sort(P3D.num_cmp);

		var bw = bx[2] - bx[0];
		var bh = by[2] - by[0];

		if ((bx[0]+bw) &lt;= (w-1)) bw++;
		if ((by[0]+bh) &lt;= (h-1)) bh++;
		if (bx[0] &gt;= 1) {bx[0]--; bw++;}
		if (by[0] &gt;= 1) {by[0]--; bh++;}

		g.drawImage(this.texture, bx[0], by[0], bw, bh, bx[0], by[0], bw, bh);
/*
		if (shade_clr) {
			g.fillStyle = shade_clr;
			g.fillRect(bx[0], by[0], bw, bh);
		}
*/
		g.restore();

	}

}

function Vec3(_x, _y, _z)
{
	this.x = _x || 0;
	this.y = _y || 0;
	this.z = _z || 0;
}

Vec3.prototype = {
	zero: function() {
		this.x = this.y = this.z = 0;
	},

	sub: function(v) {
		this.x -= v.x;
		this.y -= v.y;
		this.z -= v.z;

		return this;
	},

	add: function(v) {
		this.x += v.x;
		this.y += v.y;
		this.z += v.z;

		return this;
	},

	copyFrom: function(v) {
		this.x = v.x;
		this.y = v.y;
		this.z = v.z;

		return this;
	},

	norm:function() {
		return Math.sqrt(this.x*this.x + this.y*this.y + this.z*this.z);
	},

	normalize: function() {
		var nrm = Math.sqrt(this.x*this.x + this.y*this.y + this.z*this.z);
		if (nrm != 0)
		{
			this.x /= nrm;
			this.y /= nrm;
			this.z /= nrm;
		}
		return this;
	},

	smul: function(k) {
		this.x *= k;
		this.y *= k;
		this.z *= k;

		return this;
	},

	dpWith: function(v)	{
		return this.x*v.x + this.y*v.y + this.z*v.z;
	},

	cp: function(v, w) {
		this.x = (w.y * v.z) - (w.z * v.y);
		this.y = (w.z * v.x) - (w.x * v.z);
		this.z = (w.x * v.y) - (w.y * v.x);

		return this;
	},

	toString: function() {
		return this.x + ", " + this.y + "," + this.z;
	}
}

function M44(cpy)
{
	if (cpy)
		this.copyFrom(cpy);
	else {
		this.ident();
	}
}

M44.prototype = {
	ident: function() {
			  this._12 = this._13 = this._14 = 0;
		this._21 =       this._23 = this._24 = 0;
		this._31 = this._32 =       this._34 = 0;
		this._41 = this._42 = this._43 =       0;

		this._11 = this._22 = this._33 = this._44 = 1;

		return this;
	},

	copyFrom: function(m) {
		this._11 = m._11;
		this._12 = m._12;
		this._13 = m._13;
		this._14 = m._14;

		this._21 = m._21;
		this._22 = m._22;
		this._23 = m._23;
		this._24 = m._24;

		this._31 = m._31;
		this._32 = m._32;
		this._33 = m._33;
		this._34 = m._34;

		this._41 = m._41;
		this._42 = m._42;
		this._43 = m._43;
		this._44 = m._44;

		return this;
	},

	transVec3: function(out, x, y, z) {
		out[0] = x * this._11 + y * this._21 + z * this._31 + this._41;
		out[1] = x * this._12 + y * this._22 + z * this._32 + this._42;
		out[2] = x * this._13 + y * this._23 + z * this._33 + this._43;
		out[3] = x * this._14 + y * this._24 + z * this._34 + this._44;
	},

	transVec3Rot: function(out, x, y, z) {
		out[0] = x * this._11 + y * this._21 + z * this._31;
		out[1] = x * this._12 + y * this._22 + z * this._32;
		out[2] = x * this._13 + y * this._23 + z * this._33;
	},

	perspectiveLH: function(vw, vh, z_near, z_far) {
		this._11 = 2.0*z_near/vw;
		this._12 = 0;
		this._13 = 0;
		this._14 = 0;

		this._21 = 0;
		this._22 = 2*z_near/vh;
		this._23 = 0;
		this._24 = 0;

		this._31 = 0;
		this._32 = 0;
		this._33 = z_far/(z_far-z_near);
		this._34 = 1;

		this._41 = 0;
		this._42 = 0;
		this._43 = z_near*z_far/(z_near-z_far);
		this._44 = 0;

		return this;
	},

	lookAtLH: function(aUp, aFrom, aAt) {
		var aX = new Vec3();
		var aY = new Vec3();

		var aZ = new Vec3(aAt.x, aAt.y, aAt.z);
		aZ.sub(aFrom).normalize();

		aX.cp(aUp, aZ).normalize();
		aY.cp(aZ, aX);

		this._11 = aX.x;  this._12 = aY.x;  this._13 = aZ.x;  this._14 = 0;
		this._21 = aX.y;  this._22 = aY.y;  this._23 = aZ.y;  this._24 = 0;
		this._31 = aX.z;  this._32 = aY.z;  this._33 = aZ.z;  this._34 = 0;

		this._41 = -aFrom.dpWith(aX);
		this._42 = -aFrom.dpWith(aY);
		this._43 = -aFrom.dpWith(aZ);
		this._44 = 1;

	    return this;
	},

	mul: function(A, B) {
		this._11 = A._11*B._11  +  A._12*B._21  +  A._13*B._31  +  A._14*B._41;
		this._12 = A._11*B._12  +  A._12*B._22  +  A._13*B._32  +  A._14*B._42;
		this._13 = A._11*B._13  +  A._12*B._23  +  A._13*B._33  +  A._14*B._43;
		this._14 = A._11*B._14  +  A._12*B._24  +  A._13*B._34  +  A._14*B._44;

		this._21 = A._21*B._11  +  A._22*B._21  +  A._23*B._31  +  A._24*B._41;
		this._22 = A._21*B._12  +  A._22*B._22  +  A._23*B._32  +  A._24*B._42;
		this._23 = A._21*B._13  +  A._22*B._23  +  A._23*B._33  +  A._24*B._43;
		this._24 = A._21*B._14  +  A._22*B._24  +  A._23*B._34  +  A._24*B._44;

		this._31 = A._31*B._11  +  A._32*B._21  +  A._33*B._31  +  A._34*B._41;
		this._32 = A._31*B._12  +  A._32*B._22  +  A._33*B._32  +  A._34*B._42;
		this._33 = A._31*B._13  +  A._32*B._23  +  A._33*B._33  +  A._34*B._43;
		this._34 = A._31*B._14  +  A._32*B._24  +  A._33*B._34  +  A._34*B._44;

		this._41 = A._41*B._11  +  A._42*B._21  +  A._43*B._31  +  A._44*B._41;
		this._42 = A._41*B._12  +  A._42*B._22  +  A._43*B._32  +  A._44*B._42;
		this._43 = A._41*B._13  +  A._42*B._23  +  A._43*B._33  +  A._44*B._43;
		this._44 = A._41*B._14  +  A._42*B._24  +  A._43*B._34  +  A._44*B._44;

		return this;
	},

	translate: function(x, y, z) {
		this._11 = 1;  this._12 = 0;  this._13 = 0;  this._14 = 0;
		this._21 = 0;  this._22 = 1;  this._23 = 0;  this._24 = 0;
		this._31 = 0;  this._32 = 0;  this._33 = 1;  this._34 = 0;

		this._41 = x;  this._42 = y;  this._43 = z;  this._44 = 1;
		return this;
	},

	transpose33: function() {
		var t;

		t = this._12;
		this._12 = this._21;
		this._21 = t;

		t = this._13;
		this._13 = this._31;
		this._31 = t;

		t = this._23;
		this._23 = this._32;
		this._32 = t;

		return this;
	},

	// OpenGL style rotation
	glRotate: function(angle, x, y, z) {
		var s = Math.sin( angle );
		var c = Math.cos( angle );

		var xx = x * x;
		var yy = y * y;
		var zz = z * z;
		var xy = x * y;
		var yz = y * z;
		var zx = z * x;
		var xs = x * s;
		var ys = y * s;
		var zs = z * s;
		var one_c = 1.0 - c;
/*
		this._11 = (one_c * xx) + c;
		this._21 = (one_c * xy) - zs;
		this._31 = (one_c * zx) + ys;
		this._41 = 0;

		this._12 = (one_c * xy) + zs;
		this._22 = (one_c * yy) + c;
		this._32 = (one_c * yz) - xs;
		this._42 = 0;

		this._13 = (one_c * zx) - ys;
		this._23 = (one_c * yz) + xs;
		this._33 = (one_c * zz) + c;
		this._43 = 0;

		this._14 = 0;
		this._24 = 0;
		this._34 = 0;
		this._44 = 1;
*/

		this._11 = (one_c * xx) + c;
		this._12 = (one_c * xy) - zs;
		this._13 = (one_c * zx) + ys;
		this._14 = 0;

		this._21 = (one_c * xy) + zs;
		this._22 = (one_c * yy) + c;
		this._23 = (one_c * yz) - xs;
		this._24 = 0;

		this._31 = (one_c * zx) - ys;
		this._32 = (one_c * yz) + xs;
		this._33 = (one_c * zz) + c;
		this._34 = 0;

		this._41 = 0;
		this._42 = 0;
		this._43 = 0;
		this._44 = 1;

		return this;
	}

}

// matrix 2x2
function M22()
{
	this._11 = 1;
	this._12 = 0;
	this._21 = 0;
	this._22 = 1;
}

M22.prototype.getInvert = function()
{
	var out = new M22();
	var det = this._11 * this._22 - this._12 * this._21;
	if (det &gt; -0.0001 &amp;&amp; det &lt; 0.0001)
		return null;

	out._11 = this._22 / det;
	out._22 = this._11 / det;

	out._12 = -this._12 / det;
	out._21 = -this._21 / det;

	return out;
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/02/18/mini-javascript-version-of-papervision3d-with-canvas-pseudo-3d-with-2d/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Box2D based Javascript 2D Physics Engine called Box2DJS</title>
		<link>http://drawlogic.com/2009/02/18/box2d-based-javascript-2d-physics-engine-called-box2djs/</link>
		<comments>http://drawlogic.com/2009/02/18/box2d-based-javascript-2d-physics-engine-called-box2djs/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 20:31:12 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[ANIMATION]]></category>
		<category><![CDATA[DEVELOPMENT]]></category>
		<category><![CDATA[ENGINE]]></category>
		<category><![CDATA[GAMEDEV]]></category>
		<category><![CDATA[GAMES]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PHYSICS]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[2d]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[FLASH]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=386</guid>
		<description><![CDATA[Box2D is responsible for inspiring many 2d physics engines including Motor2, Box2DFlashAS3 and others.  Box2D the original toolkit is a solid c++ physics engine that has many great examples and features including real collision.
Now it has inspired a pure Javascript version of Box2D called Box2Djs to (using prototype dependency) to implement many of the same [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.box2d.org/" target="_blank">Box2D</a> is responsible for inspiring many 2d physics engines including Motor2, Box2DFlashAS3 and others.  Box2D the original toolkit is a solid c++ physics engine that has many great examples and features including real collision.</p>
<p>Now it has<a href="http://box2d-js.sourceforge.net/index2.html" target="_blank"> inspired a pure Javascript version of Box2D called Box2Djs</a> to (using prototype dependency) to implement many of the same demos using the same functionality.  So it appears Box2D if you want to find a baseline standard physics kit for 2D, it now has versions in many languages that might allow you to have 2d physics capabilities across many platforms.</p>
<p><a href="http://box2d-js.sourceforge.net/index2.html" target="_blank"><img class="alignnone" title="box2d js" src="http://i81.photobucket.com/albums/j223/drawkbox/box2djs.png" alt="" width="392" height="230" /></a></p>
<blockquote><p>Box2DJS is a JavaScript port of <a href="http://www.box2d.org/" target="_blank">Box2D Physics Engine</a>. 		To tell the truth, this is converted from <a href="http://box2dflash.sourceforge.net/">Box2DFlashAS3</a>_1.4.3.1 in an automatic manner. 		(The reason why not Box2DFlashAS3_2.0.0 based is simply because I overlooked the renewal.)</p></blockquote>
<h3>Dependencies</h3>
<ul>
<li><a href="http://www.prototypejs.org/">prototype.js</a></li>
<li><a href="http://sourceforge.net/projects/iecanvas">IECanvas</a> (when you use a canvas tag to display the result of your physics simulation)</li>
</ul>
<p><a name="links"></a></p>
<h3>Links</h3>
<ul>
<li><a href="http://sourceforge.net/projects/box2d-js/">Project Page (SF)</a></li>
<li><a href="http://sourceforge.net/project/showfiles.php?group_id=227549">Download Page (SF)</a></li>
<li><a href="http://www.box2d.org/">Box2D</a></li>
<li><a href="http://box2dflash.sourceforge.net/">Box2DFlashAS3</a></li>
<li><a href="http://www.kyucon.com/doc/box2d/">API Doc (Box2DFlashAS3)</a></li>
</ul>
<h3>How to use</h3>
<ol>
<li> <a href="http://sourceforge.net/project/showfiles.php?group_id=227549">Download a zip file</a> and extract it.</li>
<li> Copy js/ and lib/ directories from the extracted directory to your app directory.</li>
<li> Copy script tags in the header part of index.html in the extacted directory to your html file where you want to simulate physics.
<p class="note">Because this library does not have a lazy-loading system now, you should load all classes before starting your simulation. To make things worse, each library has a bit complicated dependency each other so that loading libraries in wrong order may cause a fatal error. To avoid such a trouble, it is strongly recommended to copy the header part of this file or `index.html&#8217; including the downloaded zip file.</p>
</li>
<li> Utilizing Box2D APIs, simulate the newton world as you like.
<p class="note">The Box2DJS APIs are completely same as those of Box2DFlashAS3. Please refer <a href="http://www.kyucon.com/doc/box2d/">information about it</a>.</p>
</li>
</ol>
<p>Also the speed of your javascript engine makes a big difference just like the AS2 AVM1 to the AS3 AVM2 virtual machines.  Chrome is much faster than FF3.</p>
<h3>Video of Box2DJS in Chrome</h3>
<p><!--start_raw--></p>
<p><object width="540" height="450"><param name="movie" value="http://www.youtube.com/v/9mcXNCOpZHQ&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/9mcXNCOpZHQ&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="540" height="450"></embed></object></p>
<p><!--end_raw--></p>
<h3>Video of Box2DJS in FF3</h3>
<p><!--start_raw--><br />
<object width="540" height="450"><param name="movie" value="http://www.youtube.com/v/42yegPinLic&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/42yegPinLic&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="540" height="450"></embed></object></p>
<p><!--end_raw--></p>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2009/02/18/box2d-based-javascript-2d-physics-engine-called-box2djs/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>SWFAddress 2.2 Released, Deep Linking Solution for Flash,Flex and Silverlight (soon)</title>
		<link>http://drawlogic.com/2008/12/30/swfaddress-22-released-deep-linking-solution-for-flashflex-and-silverlight-soon/</link>
		<comments>http://drawlogic.com/2008/12/30/swfaddress-22-released-deep-linking-solution-for-flashflex-and-silverlight-soon/#comments</comments>
		<pubDate>Tue, 30 Dec 2008 07:38:45 +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[INTERACTIVE]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[SILVERLIGHT]]></category>
		<category><![CDATA[USER EXPERIENCE]]></category>
		<category><![CDATA[deep]]></category>
		<category><![CDATA[embed]]></category>
		<category><![CDATA[embedding]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[linking]]></category>
		<category><![CDATA[swfaddress]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=332</guid>
		<description><![CDATA[SWFAddress 2.2 has been released.  SWFAddress is pretty much THE solution for deep linking in flash and works greatly in combo with THE embedding solution into (X)HTML/Javascript for flash SWFObject.
The new SWFAddress has just arrived after seven months of active development, various contributions and lots of positive feedback from the community. The list of changes [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.asual.com/blog/swfaddress/?permalink=swfaddress-22.html" target="_blank">SWFAddress 2.2 has been released</a>.  SWFAddress is pretty much THE solution for deep linking in flash and works greatly in combo with THE embedding solution into (X)HTML/Javascript for flash SWFObject.</p>
<blockquote><p>The new <a href="http://www.asual.com/swfaddress/">SWFAddress</a> has just arrived after seven months of active development, various contributions and lots of positive feedback from the community. The list of changes includes the following:</p>
<ul>
<li>Refactored JavaScript implementation</li>
<li>New SWFAddress.swc AS3 component</li>
<li>New CS4 based Splash screen sample</li>
<li>New Digg API sample</li>
<li>New up() method for easier deep linking path navigation</li>
<li>New XSS protection that doesn&#8217;t affect special characters</li>
<li>Support for Internet Explorer 8</li>
<li>Support for custom HTTP status messages in the SEO sample</li>
<li>Improved title handling</li>
<li>Improved unload event handling for IE</li>
<li>Updated Rails sample</li>
<li>Fixed getBaseURL() for AS3</li>
<li>Fixed Safari 2.0-2.0.3 support</li>
<li>Build-in fix for the Firefox 3/Mac OSX blinking effect</li>
<li>Additional onLoad fix for application/xml content type</li>
<li>Fixed optional options parameter for the popup method</li>
<li>Cross platform build script</li>
<li>Various optimizations</li>
</ul>
<p>I believe that this new version is pretty stable and won&#8217;t require an update soon. There are two known Safari bugs (<a href="https://bugs.webkit.org/show_bug.cgi?id=19202">19202</a> and <a href="https://bugs.webkit.org/show_bug.cgi?id=20355">20355</a>) that currently affect the project and we can only hope that they will make it&#8217;s way into the next major release of the browser.</p>
<p>SWFAddress has grown significantly in the last two years and it&#8217;s very likely that we&#8217;re going to provide a lite version for users who need just the basic functionality. Very soon the same API will become available for <a href="http://www.asual.com/netaddress/">Silverlight</a> and we&#8217;re also scheduling the development of a jQuery plugin.</p></blockquote>
<ul>
<li><a href="http://www.asual.com/blog/swfaddress/?permalink=swfaddress-22.html" target="_blank">Post about the release</a></li>
<li><a href="http://sourceforge.net/project/downloading.php?groupname=swfaddress&amp;filename=swfaddress-2.2.zip&amp;use_mirror=voxel" target="_blank">Download SWFAddress 2.2</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2008/12/30/swfaddress-22-released-deep-linking-solution-for-flashflex-and-silverlight-soon/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>More Flash  Unity3D Communication &#8211; u3dObject at Google Code</title>
		<link>http://drawlogic.com/2008/12/23/more-flash-unity3d-communication-u3dobject-at-google-code/</link>
		<comments>http://drawlogic.com/2008/12/23/more-flash-unity3d-communication-u3dobject-at-google-code/#comments</comments>
		<pubDate>Wed, 24 Dec 2008 01:10:26 +0000</pubDate>
		<dc:creator>drawk</dc:creator>
				<category><![CDATA[3D ENGINES]]></category>
		<category><![CDATA[ACTIONSCRIPT]]></category>
		<category><![CDATA[ACTIONSCRIPT3]]></category>
		<category><![CDATA[AJAX]]></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[HOWTO]]></category>
		<category><![CDATA[INTERFACE]]></category>
		<category><![CDATA[JAVASCRIPT]]></category>
		<category><![CDATA[LIBRARIES]]></category>
		<category><![CDATA[OPEN SOURCE]]></category>
		<category><![CDATA[PROGRAMMING]]></category>
		<category><![CDATA[TECHNOLOGY]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[unity3d]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[embedding]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[swfaddress]]></category>
		<category><![CDATA[swfobject]]></category>
		<category><![CDATA[TOOLS]]></category>
		<category><![CDATA[u3dobject]]></category>
		<category><![CDATA[unity]]></category>
		<category><![CDATA[unityobject]]></category>

		<guid isPermaLink="false">http://drawlogic.com/?p=326</guid>
		<description><![CDATA[I have mentioned before that flash to unity3d communication is a key part of game development for the web now where you are using Unity3D as a higher end renderer and some of your other page elements might be flash. Now there is a new open source kit for this called u3dobject.]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/aquiris-u3dobject/" target="_blank"><img class="alignright" title="u3dobject" src="http://farm4.static.flickr.com/3108/3132296848_9de1576cd1_o.png" alt="" width="366" height="84" /></a>I have <a href="http://drawlogic.com/2008/11/28/as3-flash-flex-and-unity3d-browser-communication-with-javascript/" target="_blank">mentioned before that flash to unity3d communication is a key part of game development</a> for the web now where you are using Unity3D as a higher end renderer and some of your other page elements might be flash. Now there is a new open source kit for this called <strong><a href="http://code.google.com/p/aquiris-u3dobject/" target="_blank">u3dobject</a></strong>.</p>
<p>To get Flash and Unity3D to talk to one another in an HTML/XHTML page is pretty simple with javascript and with the internal Unity3D Application object and the ExternalInterface in Flash.  But there are lots of elements of that communication that can be consolidated and reused so you don&#8217;t have to recreate that over and over.  Various studios and programmers come up with their own kits but when it becomes a shared activity to get the best integration and make it more of a platform that is where things like <a href="http://code.google.com/p/swfobject/" target="_blank">swfobject</a>, <a href="http://www.asual.com/swfaddress/" target="_blank">swfaddress</a> and <a href="http://code.google.com/p/aquiris-u3dobject/" target="_blank">u3dobject </a>come in.</p>
<p>So far swfobject is the standard for flash html embedding and <a href="http://www.unifycommunity.com/wiki/index.php?title=UnityObject" target="_blank">unityObject </a>is a similar take (but a bit dated) on that but now <a href="http://code.google.com/p/aquiris-u3dobject/" target="_blank">we have u3dObject that is open as well and a more official open source project for unity3D &lt;&#8211;&gt; flash integration and test harnesses for development </a>when those two technologies are used together.</p>
<p><strong>Unity3D &lt;-&gt; Flash Embedding Info:<br />
</strong></p>
<ul>
<li><a href="http://code.google.com/p/aquiris-u3dobject/" target="_blank">u3dobject hosted at google code</a></li>
<li><a href="http://www.unifycommunity.com/wiki/index.php?title=UnityObject" target="_blank">Older unityobject from unity3d wiki </a>(outdated)</li>
<li><a href="http://drawlogic.com/2008/11/28/as3-flash-flex-and-unity3d-browser-communication-with-javascript/" target="_blank">Recent post on the same topic and some examples from Paul Tondeur</a></li>
<li><a href="http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html" target="_blank">ExternalInterface </a>for Flash</li>
<li><a href="http://unity3d.com/support/documentation/Manual/Unity%20Web%20Player%20and%20browser%20communication.html">Unity Web Player and browser communication</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://drawlogic.com/2008/12/23/more-flash-unity3d-communication-u3dobject-at-google-code/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
