<?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>i-create &#124; therefore-i am &#187; webGL</title>
	<atom:link href="http://i-create.org/tag/webgl/feed/" rel="self" type="application/rss+xml" />
	<link>http://i-create.org</link>
	<description>i-create &#124; therefore i-am &#124; a blog about opensource technology and rich internet applications</description>
	<lastBuildDate>Thu, 05 Aug 2010 04:19:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>WebGL Rendering of BSP Maps</title>
		<link>http://i-create.org/2010/05/14/webgl-renering-of-bsp-maps/</link>
		<comments>http://i-create.org/2010/05/14/webgl-renering-of-bsp-maps/#comments</comments>
		<pubDate>Fri, 14 May 2010 23:42:21 +0000</pubDate>
		<dc:creator>Brendon Smith</dc:creator>
				<category><![CDATA[3d]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[i-create]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Quake]]></category>
		<category><![CDATA[webGL]]></category>

		<guid isPermaLink="false">http://i-create.org/2010/05/14/webgl-renering-of-bsp-maps/</guid>
		<description><![CDATA[It has never been a better time to be a developer. I am really looking forward to full implementations of HTML5 everywhere I believe HTML5 / JavaScript / ActionScript will be an extremly potent combination! I believe their will be proliferation of new devices in the mobile arena. JavaScript and HTML are also becoming more [...]]]></description>
			<content:encoded><![CDATA[<p>It has never been a better time to be a developer.  I am really looking forward to full implementations of HTML5 everywhere I believe  HTML5 / JavaScript / ActionScript will be an extremly potent combination!  I believe their will be proliferation of new devices in the mobile arena.  JavaScript and HTML are also becoming more powerful.  I have been reading about WebGL and experimenting with it for awhile now and the other day I heard about <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hbWJpZXJhLmNvbS9jb3BwZXJjdWJlL2luZGV4Lmh0bWw=" title=\"CopperCube by Ambiera\" target=\"_blank\">CopperCube by Ambiera</a> based off of the <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2lycmxpY2h0LnNvdXJjZWZvcmdlLm5ldC8=" title=\"Irrlicht Engine\" target=\"_blank\">Irrlicht Engine</a> and I was immediately curious.  It is basically a world editor / game engine for the web that supports Flash and WebGL output.  I have to be honest I think for Flash, I will definitely stick with Away3D.  For WebGL output I am extremely impressed It was easy to use and in the next few months, I will be studying their web <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hbWJpZXJhLmNvbS9jb3BwZXJsaWNodC9pbmRleC5odG1s" title=\"Copperlicht WebGL\" target=\"_blank\">javascript api copperlicht</a>.  Here are a couple examples of scenes I was easily able to export out with CopperCube.  This stuff can also of course be done with Flash.  You can run Quake in flash using Alchemy.  Alchemy is an extremly innovative software project if you are not familiar with it by now I suggest looking at it.  I have found Bruce Jawn&#8217;s <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2JydWNlLWxhYi5ibG9nc3BvdC5jb20vc2VhcmNoL2xhYmVsL0FsY2hlbXk=" title=\"Bruce Jawn Alchemy\" target=\"_blank\">website</a> to be insightful not only on <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2xhYnMuYWRvYmUuY29tL3RlY2hub2xvZ2llcy9hbGNoZW15Lw==" title=\"What is Alchemy?\" target=\"_blank\">Alchemy</a> but also in regards to <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2JydWNlLWxhYi5ibG9nc3BvdC5jb20vc2VhcmNoL2xhYmVsL3JheS1jYXN0aW5n" title=\"Raycasting in Flash\" target=\"_blank\">Raytracing</a> with flash.</p>
<p>You will only be able to see the example below if you have a webGL compatiable browser.  <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jM2RsLm9yZy9pbmRleC5waHAvdHV0b3JpYWxzL3R1dG9yaWFsLTEtYnJvd3NlcnMv" title=\"WebGL browser how to\" target=\"_blank\">Here are instructions on how to get a webGL browser.</a></p>
<p><a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3F1YWtlLw==" target=\"_blank\" title=\"WebGL Quake Map\">Click Here to View<br />
<img src="http://i-create.org/JavaScript/quake/quakeMap1.jpg" title="Quake Map in JavaScript" /><br />
</a></p>
<p>To create the environment that are displayed above it was easy. I was able to download Quake3 maps from a few sites like <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2x2bHdvcmxkLmNvbS8=" title=\"lvlworld BSP Maps\" target=\"_blank\">lvlworld</a> or <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5tYXAtZmFjdG9yeS5vcmcvcXVha2UtMy8=" title=\"Map-Factory BSP Maps\" target=\"_blank\">Map Factory</a>.  Once the maps have been downloaded and unzipped notice that it has a .pk3 extension change it to a zip file and then extract it.  You will find all you need in that folder from their all you have to do to get it into CopperCube is navigate to the folder named Map and select the .bsp file and from that point on you are good to go.  I have also been attempting to convert these files to <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL25lbWVzaXMudGhld2F2ZWxlbmd0aC5uZXQvaW5kZXgucGhwP3A9NDY=" title=\"Convert .BSP files to .OBJ\" target=\"_blank\">OBJ</a> and then bring them into <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jbG9zaWVyLm5sL3ByZWZhYi8=" title=\"PreFab\" target=\"_blank\">PreFab</a>.  I will keep you all posted on the updates as I progress.</p>
<p><a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3F1YWtlL1EyLw==" title=\"WebGl Quake Map\" target=\"_blank\">Click Here to View<br />
<img src="http://i-create.org/JavaScript/quake/quakeMap2.jpg" title="Quake Map in JavaScript" /><br />
</a></p>
<p>WebGL Libraries:<br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2MzZGwub3Jn" title=\"C3DL -> Canvas #D Library&#8221; target=&#8221;_blank&#8221;>C3DL</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hbWJpZXJhLmNvbS9jb3BwZXJsaWNodC9pbmRleC5odG1s" title=\"Copperlicht WebGL\" target=\"_blank\">Copperlicht</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jdWJpY3ZyLm9yZy8=" title=\"CubicVR\" target=\"_blank\">CubicVR</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2VuZXJnaXplLmNjLw==" title=\"Energize\" target=\"_blank\">Energize</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5nbGdlLm9yZy8=" title=\"GLGE\" target=\"_blank\">GLGE</a></p>
<p>WebGL / HTML5 Links:<br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2xlYXJuaW5nd2ViZ2wuY29tL2Jsb2cv" title=\"Learning WebGL\" target=\"_blank\">Learning WebGL</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zYXRpbmUub3JnL2FyY2hpdmVzLzIwMDkvMDcvMTEvc25vdy1zdGFjay1pcy1oZXJlLw==" title=\"HTML5 3D Gallery\" target=\"_blank\">HTML5 3D Gallery</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3RoZWJhY2tidXR0b24uY29tL3Bvc3Rfb2xkYmxvZ3Bvc3RfODY=" title=\"HTML5 Planes and Cubes\" target=\"_blank\">HTML5 Planes and Cubes</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3BhdWxiYWthdXMuY29tLzIwMDgvMDUvMzEvY292ZXJmbG93LWFueW9uZS8=" title=\"Coverflow in JavaScript\" target=\"_blank\">JavaScript Coverflow</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL25ldC50dXRzcGx1cy5jb20vdGFnL3ByZW1pdW0v" title=\"Nettuts Premium Tutorial on CSS3 Cubes\" target=\"_blank\">CSS3 Cube NetTuts Premium Tutorial</a></p>
 <img src="http://i-create.org/wp-content/plugins/feed-statistics.php?view=1&post_id=816" width="1" height="1" style="display: none;" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fi-create.org%2F2010%2F05%2F14%2Fwebgl-renering-of-bsp-maps%2F&amp;linkname=WebGL%20Rendering%20of%20BSP%20Maps"><img src="http://i-create.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://i-create.org/2010/05/14/webgl-renering-of-bsp-maps/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebGL TweetTank Built with C3DL Part 2</title>
		<link>http://i-create.org/2010/04/26/webgl-tweettank-built-with-c3dl-part-2/</link>
		<comments>http://i-create.org/2010/04/26/webgl-tweettank-built-with-c3dl-part-2/#comments</comments>
		<pubDate>Tue, 27 Apr 2010 04:27:42 +0000</pubDate>
		<dc:creator>Brendon Smith</dc:creator>
				<category><![CDATA[3d]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MashUp]]></category>
		<category><![CDATA[i-create]]></category>
		<category><![CDATA[C3DL]]></category>
		<category><![CDATA[Experiment]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[webGL]]></category>

		<guid isPermaLink="false">http://i-create.org/2010/04/26/webgl-tweettank-built-with-c3dl-part-2/</guid>
		<description><![CDATA[I have added the ability to search twitter and re-populate the fish tank. So now you can place a search in like &#8220;Tool&#8221; or &#8220;Toledo&#8221; or whatever you query it will pull results from twitter. I have noticed this experiment is resource intensive. In part three of this experiment I will look for ways to [...]]]></description>
			<content:encoded><![CDATA[<p>I have added the ability to search twitter and re-populate the fish tank.  So now you can place a search in like &#8220;Tool&#8221; or &#8220;Toledo&#8221; or whatever you query it will pull results from twitter.  I have noticed this experiment is resource intensive.  In part three of this experiment I will look for ways to tidy up the code make it more reusable and less resource intensive.  I also noticed in <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jM2RsLm9yZy8=" title=\"C3Dl\" target=\"_blank\">c3dl</a> they already have a nice <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jM2RsLm9yZy93cC1jb250ZW50L2RvY3VtZW50YXRpb24vMi4wX3VzZXJfZG9jcy9zeW1ib2xzL2MzZGwuaHRtbCMuZ2V0UmFuZG9t" title=\"Random Function\" target=\"_blank\">random number</a> function built in I will have to try and use that in the future.  I am also curious to see if I can&#8217;t use this library to augment the <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3Byb2Nlc3Npbmdqcy5vcmcv" title=\"ProcessingJS\" target=\"_blank\">Processing.JS</a> library I noticed the same group at <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3Byb2Nlc3Npbmdqcy5vcmcvYmxvZy8/Y2F0PTE=" title=\"Students at Seneca Working on ProcessingJS\" target=\"_blank\">Secena</a> is also working on this library I believe they have ported most of the new functions.  I also added two sliders with jQuery to control the camera I am currently using an orbitCamera I think I will change this in the future to utilize a free camera and use the animateAxis function to animate around a vector with an angle.  Currently I am using the Yaw and Pitch functions of the orbitCamera of course it looks kind of awkward to spin it.  I will try to find ways to speed this experiment up, fix the picking result to be more sensitive, clean up the look and feel of it for part three.   If there is a part four it will be about making the fish bound to the sphere and maybe making them so the swim back and forth not in a straight line.</p>
<p>I might also be making a similar experiment with <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2F3YXkzZC5jb20vYXdheTNkLWxpdGUtdjEtMC1mYXN0ZXN0LWFuZC1zbWFsbGVzdC0zZC1lbmdpbmUtaW4tZmxhc2g=" title=\"Away3D Lite\" target=\"_blank\">away3Dlite</a> and the hype framework with flash this weekend.  This has been a fun experiment to play around with.  Maybe Adobe should allocate some of their resources to compiling to javascript and using the webGL and DirectX for IE with the canvas tag (Even though It isn&#8217;t as fast as flash and doensn&#8217;t display the same across browsers).  Haxe I believe currently does this to some extent I am not sure how fast the results are but seems to me their are <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jaHJvbWVleHBlcmltZW50cy5jb20vZGV0YWlsLzNkLWphdmFzY3JpcHQtd2l0aC1zYW5keS1oeC8=" title=\"sandy3D with haXe on Chrome Experiments\" target=\"_blank\">Sandy3D experiments on Google Experiments</a>.</p>
<p><a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3R3aXR0ZXJTZWEvVHdlZXRUYW5rLmh0bWw=" title=\"TweetTank WebGL example Created with C3DL\" target=\"_blank\"><img src="http://i-create.org/JavaScript/twitterSea/tweetTank.jpg" alt="TweetTank WebGL example Created with C3DL" /></a></p>
<p>Here is the code for the experiment:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> CANVAS_WIDTH <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> CANVAS_HEIGHT <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span>CANVAS_WIDTH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span>CANVAS_HEIGHT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'display'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'block'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> arrayTwit<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> schooloffish<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> fishArray <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> bubblesArray <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> bubbles<span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> objectsHit <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> objectSelected<span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> cam<span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> searchInt <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">function</span> mRandom<span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> randomInt <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> r <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">return</span> randomInt<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        c3dl.<span style="color: #660066;">addModel</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fish.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        c3dl.<span style="color: #660066;">addModel</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;OceanSphere.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
        <span style="color: #006600; font-style: italic;">// The program main</span>
        <span style="color: #003366; font-weight: bold;">function</span> canvasMain<span style="color: #009900;">&#40;</span>canvasName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Create new c3dl.Scene object</span>
            scn <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Scene</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            scn.<span style="color: #660066;">setCanvasTag</span><span style="color: #009900;">&#40;</span>canvasName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Create GL context</span>
            renderer <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">WebGL</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            renderer.<span style="color: #660066;">addTexture</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;bubble.jpg&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            renderer.<span style="color: #660066;">createRenderer</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Attach renderer to the scene</span>
            scn.<span style="color: #660066;">setRenderer</span><span style="color: #009900;">&#40;</span>renderer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            scn.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span>canvasName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #006600; font-style: italic;">//the isReady() function tests whether or not a renderer</span>
            <span style="color: #006600; font-style: italic;">//is attached to a scene.  If the renderer failed to</span>
            <span style="color: #006600; font-style: italic;">//initialize this will return false but only after you</span>
            <span style="color: #006600; font-style: italic;">//try to attach it to a scene.</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>renderer.<span style="color: #660066;">isReady</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #006600; font-style: italic;">// Create a Collado object that</span>
                <span style="color: #006600; font-style: italic;">// will contain a imported</span>
                <span style="color: #006600; font-style: italic;">// model of something to put</span>
                <span style="color: #006600; font-style: italic;">// in the scene.</span>
                <span style="color: #003366; font-weight: bold;">var</span> schooloffish <span style="color: #339933;">=</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003366; font-weight: bold;">var</span> ocean <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Collada</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;OceanSphere.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">setAngularVel</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> .00005<span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">scale</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">20.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">20.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">20.0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">setPickable</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                scn.<span style="color: #660066;">addObjectToScene</span><span style="color: #009900;">&#40;</span>ocean<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
				<span style="color: #006600; font-style: italic;">//console.log(arrayTwit.length);</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> arrayTwit.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #006600; font-style: italic;">//console.log(arrayTwit[i]);</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Collada</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fish.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">yaw</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">45.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">ID</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Fish&quot;</span> <span style="color: #339933;">+</span> i<span style="color: #339933;">;</span>
                    <span style="color: #006600; font-style: italic;">//fish.roll(25.0);</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">pitch</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">86.4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setLinearVel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">url</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;http://twitter.com/&quot;</span> <span style="color: #339933;">+</span> arrayTwit<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">from_user</span><span style="color: #339933;">;</span>
                    <span style="color: #006600; font-style: italic;">//fish.setPosition([1200, 100, 700]);</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setPosition</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">900</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1500</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    scn.<span style="color: #660066;">addObjectToScene</span><span style="color: #009900;">&#40;</span>fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">7</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">ParticleSystem</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinVelocity</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxVelocity</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinLifetime</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">5.3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxLifetime</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10.7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinColor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0.3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxColor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0.3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0.5</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setSrcBlend</span><span style="color: #009900;">&#40;</span>c3dl.<span style="color: #660066;">ONE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setDstBlend</span><span style="color: #009900;">&#40;</span>c3dl.<span style="color: #660066;">ONE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinSize</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxSize</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">5.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setTexture</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;bubble.gif&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setAcceleration</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">9</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setEmitRate</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setPosition</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">700</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    scn.<span style="color: #660066;">addObjectToScene</span><span style="color: #009900;">&#40;</span>bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #006600; font-style: italic;">// Create a camera</span>
                <span style="color: #006600; font-style: italic;">//var cam = new c3dl.FreeCamera();</span>
&nbsp;
&nbsp;
&nbsp;
               <span style="color: #006600; font-style: italic;">// scn.setCamera(cam);</span>
                cam <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">OrbitCamera</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                cam.<span style="color: #660066;">setFarthestDistance</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">//cam.pitch(90);</span>
                cam.<span style="color: #660066;">setPosition</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3000.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">300.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">200.0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">//cam.setLookAtPoint(new Array(0.0, 0.0, 0.0));</span>
                cam.<span style="color: #660066;">setOrbitPoint</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">800.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">200.0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                cam.<span style="color: #660066;">setClosestDistance</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                cam.<span style="color: #660066;">setDistance</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">900</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">//cam.pitch(1);</span>
                scn.<span style="color: #660066;">setCamera</span><span style="color: #009900;">&#40;</span>cam<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">// Start the scene</span>
                scn.<span style="color: #660066;">startScene</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                scn.<span style="color: #660066;">setPickingCallback</span><span style="color: #009900;">&#40;</span>goLink<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">//scn.setKeyboardCallback(onKeyUp, onKeyDown);</span>
                scn.<span style="color: #660066;">setMouseCallback</span><span style="color: #009900;">&#40;</span>mouseWheel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">function</span> goLink<span style="color: #009900;">&#40;</span>pickingObj<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
 			<span style="color: #003366; font-weight: bold;">var</span> objectsHit <span style="color: #339933;">=</span> pickingObj.<span style="color: #660066;">getObjects</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
 			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> objectsHit.<span style="color: #660066;">length</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span> <span style="color: #009900;">&#41;</span>
			 <span style="color: #009900;">&#123;</span>
 				<span style="color: #003366; font-weight: bold;">var</span> sepiaEffect <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Effect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				sepiaEffect.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span>c3dl.<span style="color: #660066;">effects</span>.<span style="color: #660066;">SEPIA</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 				window.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>objectsHit<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">url</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'_blank'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				objectsHit<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setEffect</span><span style="color: #009900;">&#40;</span>sepiaEffect<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 					<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> arrayTwit.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 						<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>objectsHit<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">url</span> <span style="color: #339933;">==</span> scn.<span style="color: #660066;">getObj</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">url</span><span style="color: #009900;">&#41;</span>
 					scn.<span style="color: #660066;">getObject</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setEffect</span><span style="color: #009900;">&#40;</span>sepiaEffect<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 					<span style="color: #009900;">&#125;</span>
 				<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
        <span style="color: #003366; font-weight: bold;">function</span> mouseWheel<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> delta <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">const</span> ZOOM_SENSITIVITY <span style="color: #339933;">=</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">;</span>
            <span style="color: #006600; font-style: italic;">// Chromium</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">wheelDelta</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                delta <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>event.<span style="color: #660066;">wheelDelta</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">20</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #006600; font-style: italic;">// Minefield</span>
            <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">detail</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                delta <span style="color: #339933;">=</span> event.<span style="color: #660066;">detail</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">4</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>keyD<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    cam.<span style="color: #660066;">yaw</span><span style="color: #009900;">&#40;</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY <span style="color: #339933;">/</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
&nbsp;
                    <span style="color: #006600; font-style: italic;">// towards user</span>
                    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        cam.<span style="color: #660066;">goFarther</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">*</span> <span style="color: #339933;">-</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
&nbsp;
                    <span style="color: #006600; font-style: italic;">// towards screen</span>
                    <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
                        cam.<span style="color: #660066;">goCloser</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> twitterSearch<span style="color: #009900;">&#40;</span>searchTag<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//console.log(searchTag);</span>
	arrayTwit <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	arrayTwit <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                $.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;http://search.twitter.com/search.json?q=&quot;</span> <span style="color: #339933;">+</span> searchTag <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&amp;callback=?&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            $.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>data.<span style="color: #660066;">results</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                twitSeach <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">item</span><span style="color: #339933;">;</span>
                arrayTwit.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>twitSeach<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>searchInt <span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				searchInt<span style="color: #339933;">++;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#TweetTankBowl'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#TweetTankBowl'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;canvas style=&quot;display: block;&quot; id=&quot;tweetTank&quot; width=&quot;800&quot; height=&quot;800&quot;&gt;&lt;/canvas&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span>CANVAS_WIDTH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span>CANVAS_HEIGHT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'display'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'block'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				canvasMain<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;tweetTank&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				searchInt<span style="color: #339933;">++;</span>	
				c3dl.<span style="color: #660066;">addMainCallBack</span><span style="color: #009900;">&#40;</span>canvasMain<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;tweetTank&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		 <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            twitterSearch<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fishing&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			sliderGo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> goTwitter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #003366; font-weight: bold;">var</span> tweet <span style="color: #339933;">=</span>  $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetSearchTxt'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
twitterSearch<span style="color: #009900;">&#40;</span>tweet<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">function</span> sliderGo<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sliderVeritcal&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				step<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.15</span><span style="color: #339933;">,</span>
				min<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.00</span><span style="color: #339933;">,</span>
				max<span style="color: #339933;">:</span><span style="color: #CC0000;">360.00</span><span style="color: #339933;">,</span>
				orientation<span style="color: #339933;">:</span> <span style="color: #3366CC;">'vertical'</span><span style="color: #339933;">,</span>
				slide<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #339933;">,</span> ui<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
					cam.<span style="color: #660066;">pitch</span><span style="color: #009900;">&#40;</span>ui.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sliderHorizontal&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				step<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.15</span><span style="color: #339933;">,</span>
				min<span style="color: #339933;">:</span> <span style="color: #CC0000;">0.00</span><span style="color: #339933;">,</span>
				max<span style="color: #339933;">:</span><span style="color: #CC0000;">360.00</span><span style="color: #339933;">,</span>
				slide<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>event<span style="color: #339933;">,</span> ui<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>  
					cam.<span style="color: #660066;">yaw</span><span style="color: #009900;">&#40;</span>ui.<span style="color: #660066;">value</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3R3aXR0ZXJTZWEvVHdlZXRUYW5rLmh0bWw=" title=\"TweetTank WebGL example Created with C3DL\" target=\"_blank\">Launch Experiment</a> / <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3R3aXR0ZXJTZWEuemlw" title=\"TweetTank WebGL example Created with C3DL Download\" target=\"_blank\">Download Code</a></p>
 <img src="http://i-create.org/wp-content/plugins/feed-statistics.php?view=1&post_id=809" width="1" height="1" style="display: none;" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fi-create.org%2F2010%2F04%2F26%2Fwebgl-tweettank-built-with-c3dl-part-2%2F&amp;linkname=WebGL%20TweetTank%20Built%20with%20C3DL%20Part%202"><img src="http://i-create.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://i-create.org/2010/04/26/webgl-tweettank-built-with-c3dl-part-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebGL TweetTank Built with C3DL Part 1</title>
		<link>http://i-create.org/2010/04/18/webgl-tweettank-built-with-c3dl-part-1/</link>
		<comments>http://i-create.org/2010/04/18/webgl-tweettank-built-with-c3dl-part-1/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 01:04:01 +0000</pubDate>
		<dc:creator>Brendon Smith</dc:creator>
				<category><![CDATA[3d]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[i-create]]></category>
		<category><![CDATA[C3DL]]></category>
		<category><![CDATA[Experiment]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[MashUp]]></category>
		<category><![CDATA[webGL]]></category>

		<guid isPermaLink="false">http://i-create.org/2010/04/18/webgl-tweettank-built-with-c3dl-part-1/</guid>
		<description><![CDATA[First of all let me mention you will not be able to run this demo unless your browser is WebGL ready. So that means if you want to see this then you have to download a nightly build of FireFox, Chrome, or Safari. You can read how to do this here. My first impressions of [...]]]></description>
			<content:encoded><![CDATA[<p>First of all let me mention you will not be able to run this demo unless your browser is WebGL ready.  So that means if you want to see this then you have to download a nightly build of FireFox, Chrome, or Safari.  You can read how to do this <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jM2RsLm9yZy9pbmRleC5waHAvdHV0b3JpYWxzL3R1dG9yaWFsLTEtYnJvd3NlcnMv" title=\"Get WebGL Ready Browser!\" target=\"_blank\">here</a>. </p>
<p>My first impressions of WebGL is it is awesome and easy to do.  I believe WebGL will make it easy for any developer to rapidly create a game on the web.  It is fast appears to have decent support meaning that it works awesome on my Apple computers and on one of my Windows7 computers but then fails for me on one of my workstations that has a souped up ATI graphics card humm.. go figure.  It is hard to say how well the graphics rendering will perform on the majority of computers out their but it probably won&#8217;t be that bad and after all these are nightly builds that are pre-alpha for the most part.  It also makes me wonder if the next iPhones will have this feature built into their webkit.  Hard to say.  It is known that out of all the new browsers coming out that ie9 will not support graphics rendering shocking (Not really).  It might be because Microsoft believes that WebGL will be an epic failure or maybe they simply don&#8217;t have the resources to devote to it at this time. </p>
<p>I believe graphic card support in these new browsers will speed up canvas rendering a little but I when looking at the <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2Jsb2cuaTJmbHkuY29tLz9wPTEwODA=" title=\"Flash vs. HTML5\" target=\"_blank\">flash benchmarks</a> that are currently out their it definitely shows you how fast the flash player is in comparison.  In short canvas tag is not even remotely as fast. In the news their has been lots of discussion about flash being dead but this simply isn&#8217;t true.  Here is why forthcoming <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53aXJlZC5jb20vZXBpY2VudGVyLzIwMTAvMDQvYXMtYXBwbGUtYmFycmljYWRlcy1mbGFzaC1oZHR2LWVtYnJhY2VzLWl0Lw==" title=\"Flash on your TV!\" target=\"_blank\">HDTV/3DTV</a> will support flash, google phones will support flash, blackberry, and windows phones will all support flash.  So as a mobile platform it will be the easiest way to build and deploy to all platforms.  It is too bad Apple doesn&#8217;t see it but oh well.  I guess I will just have to get better at Objective-C to be on that platform.</p>
<p>This is the first part of a two part example.  I created a simple mashup.  To create this example I used <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jM2RsLm9yZw==" title=\"What is C3DL?\" target=\"_blank\">C3DL</a> and jQuery.  C3DL is an awesome opensouce library put together by the wonderful people at <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zZW5lY2FjLm9uLmNhLw==" title=\"Seneca College\" target=\"_blank\">Seneca College</a>.  This example pulls a search results from twitter with the search query subject being fishing.  Yes, I know that twitter is all about birds and tweets but after scouring the Google 3D warehouse, I decided that most of the models for birds that are freely available suck.  So I made a virtual fish tank instead.  The tank has bubbles rendered with the C3DL particle library and it also has a school of fish that swim slowly though the tank.  It&#8217;s not really ground shaking stuff pretty simple.  I will work on a future version where it pulls results with ajax.  I noticed the C3DL library attaches an event listener in the init.js that listens for the document to be loaded <img src='http://i-create.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  .  This of course makes my search function of twitter fail.  I have looked at overriding this feature a number of ways not limited to jQuery getScript, etc.. I could also put the query on the query string for the window location and then re-load the page but I think that would be kind of wonky so whatever I will do this in the next version of the experiment.  So whatever I will save it for next time.</p>
<p>Check out the experiment here but before you do <strong><a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL25pZ2h0bHkubW96aWxsYS5vcmcv" title=\"MineField Firefox Nightly Build\" target=\"_blank\">download a nightly build of Firefox</a></strong>.</p>
<p><a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3R3aXR0ZXJTZWEvVHdlZXRUYW5rLmh0bWw=" title=\"TweetTank WebGL example Created with C3DL\" target=\"_blank\"><img src="http://i-create.org/JavaScript/twitterSea/tweetTank.jpg" alt="TweetTank WebGL example Created with C3DL" /></a></p>
<p>Here is the code for the experiment:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> CANVAS_WIDTH <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> CANVAS_HEIGHT <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>window<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span>CANVAS_WIDTH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span>CANVAS_HEIGHT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#tweetTank'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'display'</span><span style="color: #339933;">,</span><span style="color: #3366CC;">'block'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">var</span> arrayTwit<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> schooloffish<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> fishArray <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> bubblesArray <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">var</span> bubbles<span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> objectsHit <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> objectSelected<span style="color: #339933;">;</span>
        <span style="color: #003366; font-weight: bold;">function</span> mRandom<span style="color: #009900;">&#40;</span>r<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> randomInt <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">*</span> r <span style="color: #339933;">+</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #000066; font-weight: bold;">return</span> randomInt<span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
        c3dl.<span style="color: #660066;">addModel</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fish.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        c3dl.<span style="color: #660066;">addModel</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;OceanSphere.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
        <span style="color: #006600; font-style: italic;">// The program main</span>
        <span style="color: #003366; font-weight: bold;">function</span> canvasMain<span style="color: #009900;">&#40;</span>canvasName<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Create new c3dl.Scene object</span>
            scn <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Scene</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            scn.<span style="color: #660066;">setCanvasTag</span><span style="color: #009900;">&#40;</span>canvasName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Create GL context</span>
            renderer <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">WebGL</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            renderer.<span style="color: #660066;">addTexture</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;bubble.jpg&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            renderer.<span style="color: #660066;">createRenderer</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Attach renderer to the scene</span>
            scn.<span style="color: #660066;">setRenderer</span><span style="color: #009900;">&#40;</span>renderer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            scn.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span>canvasName<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">//the isReady() function tests whether or not a renderer</span>
            <span style="color: #006600; font-style: italic;">//is attached to a scene.  If the renderer failed to</span>
            <span style="color: #006600; font-style: italic;">//initialize this will return false but only after you</span>
            <span style="color: #006600; font-style: italic;">//try to attach it to a scene.</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>renderer.<span style="color: #660066;">isReady</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #006600; font-style: italic;">// Create a Collado object that</span>
                <span style="color: #006600; font-style: italic;">// will contain a imported</span>
                <span style="color: #006600; font-style: italic;">// model of something to put</span>
                <span style="color: #006600; font-style: italic;">// in the scene.</span>
&nbsp;
                <span style="color: #006600; font-style: italic;">//fish.setAngularVel(new Array(0.0, 0.0001, 0.0));</span>
&nbsp;
                <span style="color: #003366; font-weight: bold;">var</span> schooloffish <span style="color: #339933;">=</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #003366; font-weight: bold;">var</span> ocean <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Collada</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;OceanSphere.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">setAngularVel</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> .00005<span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">scale</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">20.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">20.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">20.0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                ocean.<span style="color: #660066;">setPickable</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                scn.<span style="color: #660066;">addObjectToScene</span><span style="color: #009900;">&#40;</span>ocean<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
				<span style="color: #006600; font-style: italic;">//console.log(arrayTwit.length);</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> arrayTwit.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #006600; font-style: italic;">//console.log(arrayTwit[i]);</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Collada</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fish.dae&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">yaw</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">45.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">ID</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;Fish&quot;</span> <span style="color: #339933;">+</span> i<span style="color: #339933;">;</span>
                    <span style="color: #006600; font-style: italic;">//fish.roll(25.0);</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">pitch</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">86.4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setLinearVel</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">url</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;http://twitter.com/&quot;</span> <span style="color: #339933;">+</span> arrayTwit<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">from_user</span><span style="color: #339933;">;</span>
                    <span style="color: #006600; font-style: italic;">//fish.setPosition([1200, 100, 700]);</span>
                    fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setPosition</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">900</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1500</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    scn.<span style="color: #660066;">addObjectToScene</span><span style="color: #009900;">&#40;</span>fishArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">7</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">ParticleSystem</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinVelocity</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxVelocity</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">25</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinLifetime</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">5.3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxLifetime</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">10.7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinColor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0.3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxColor</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0.3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0.5</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setSrcBlend</span><span style="color: #009900;">&#40;</span>c3dl.<span style="color: #660066;">ONE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setDstBlend</span><span style="color: #009900;">&#40;</span>c3dl.<span style="color: #660066;">ONE</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMinSize</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setMaxSize</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">5.0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setTexture</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;bubble.gif&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setAcceleration</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">9</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setEmitRate</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">40</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">150</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setPosition</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span>mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> mRandom<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">700</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    scn.<span style="color: #660066;">addObjectToScene</span><span style="color: #009900;">&#40;</span>bubblesArray<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #006600; font-style: italic;">// Create a camera</span>
                <span style="color: #006600; font-style: italic;">//var cam = new c3dl.FreeCamera();</span>
&nbsp;
&nbsp;
&nbsp;
               <span style="color: #006600; font-style: italic;">// scn.setCamera(cam);</span>
                cam <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">OrbitCamera</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                cam.<span style="color: #660066;">setFarthestDistance</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">//cam.pitch(90);</span>
                cam.<span style="color: #660066;">setPosition</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3000.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">300.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">200.0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">//cam.setLookAtPoint(new Array(0.0, 0.0, 0.0));</span>
                cam.<span style="color: #660066;">setOrbitPoint</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">800.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">100.0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">200.0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                cam.<span style="color: #660066;">setClosestDistance</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                cam.<span style="color: #660066;">setDistance</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">900</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">//cam.pitch(1);</span>
                scn.<span style="color: #660066;">setCamera</span><span style="color: #009900;">&#40;</span>cam<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #006600; font-style: italic;">// Start the scene</span>
                scn.<span style="color: #660066;">startScene</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                scn.<span style="color: #660066;">setPickingCallback</span><span style="color: #009900;">&#40;</span>goLink<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                scn.<span style="color: #660066;">setKeyboardCallback</span><span style="color: #009900;">&#40;</span>onKeyUp<span style="color: #339933;">,</span> onKeyDown<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                scn.<span style="color: #660066;">setMouseCallback</span><span style="color: #009900;">&#40;</span>mouseMove<span style="color: #339933;">,</span> mouseWheel<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">function</span> goLink<span style="color: #009900;">&#40;</span>pickingObj<span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
 			<span style="color: #003366; font-weight: bold;">var</span> objectsHit <span style="color: #339933;">=</span> pickingObj.<span style="color: #660066;">getObjects</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
 			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span> objectsHit.<span style="color: #660066;">length</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span> <span style="color: #009900;">&#41;</span>
			 <span style="color: #009900;">&#123;</span>
 				<span style="color: #003366; font-weight: bold;">var</span> sepiaEffect <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> c3dl.<span style="color: #660066;">Effect</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				sepiaEffect.<span style="color: #660066;">init</span><span style="color: #009900;">&#40;</span>c3dl.<span style="color: #660066;">effects</span>.<span style="color: #660066;">SEPIA</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 				window.<span style="color: #000066;">open</span><span style="color: #009900;">&#40;</span>objectsHit<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">url</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">'_blank'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				objectsHit<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">setEffect</span><span style="color: #009900;">&#40;</span>sepiaEffect<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 					<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> arrayTwit.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
 						<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>objectsHit<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">url</span> <span style="color: #339933;">==</span> scn.<span style="color: #660066;">getObj</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">url</span><span style="color: #009900;">&#41;</span>
 					scn.<span style="color: #660066;">getObject</span><span style="color: #009900;">&#40;</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">setEffect</span><span style="color: #009900;">&#40;</span>sepiaEffect<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
 					<span style="color: #009900;">&#125;</span>
 				<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span> 
&nbsp;
&nbsp;
        <span style="color: #003366; font-weight: bold;">function</span> onKeyUp<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">keyCode</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">89</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> keyD <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #003366; font-weight: bold;">function</span> mouseWheel<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #003366; font-weight: bold;">var</span> delta <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
&nbsp;
            <span style="color: #006600; font-style: italic;">// Chromium</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">wheelDelta</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                delta <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>event.<span style="color: #660066;">wheelDelta</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">20</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #006600; font-style: italic;">// Minefield</span>
            <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">detail</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                delta <span style="color: #339933;">=</span> event.<span style="color: #660066;">detail</span> <span style="color: #339933;">*</span> <span style="color: #CC0000;">4</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
&nbsp;
            <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>keyD<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    cam.<span style="color: #660066;">yaw</span><span style="color: #009900;">&#40;</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY <span style="color: #339933;">/</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
                <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
&nbsp;
                    <span style="color: #006600; font-style: italic;">// towards user</span>
                    <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY <span style="color: #339933;">&lt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                        cam.<span style="color: #660066;">goFarther</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">*</span> <span style="color: #339933;">-</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
&nbsp;
                    <span style="color: #006600; font-style: italic;">// towards screen</span>
                    <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
                        cam.<span style="color: #660066;">goCloser</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span>delta <span style="color: #339933;">*</span> ZOOM_SENSITIVITY<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
&nbsp;
&nbsp;
        <span style="color: #003366; font-weight: bold;">function</span> onKeyDown<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">keyCode</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">65</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                cam.<span style="color: #660066;">setOrbitPoint</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>event.<span style="color: #660066;">keyCode</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">89</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                keyD <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
        <span style="color: #003366; font-weight: bold;">function</span> mouseMove<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #006600; font-style: italic;">// get mouse coords relative to window</span>
            <span style="color: #003366; font-weight: bold;">var</span> mmx <span style="color: #339933;">=</span> event.<span style="color: #660066;">pageX</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
            <span style="color: #003366; font-weight: bold;">var</span> mmy <span style="color: #339933;">=</span> event.<span style="color: #660066;">pageY</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
&nbsp;
&nbsp;
&nbsp;
            <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>mmx <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #339933;">&amp;&amp;</span> mmy <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                <span style="color: #006600; font-style: italic;">// NDC</span>
                <span style="color: #003366; font-weight: bold;">var</span> normalizedDeviceCoords <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>
        <span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span> <span style="color: #339933;">*</span> mmx <span style="color: #339933;">/</span> CANVAS_WIDTH<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span>
       <span style="color: #339933;">-</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span> <span style="color: #339933;">*</span> mmy <span style="color: #339933;">/</span> CANVAS_HEIGHT<span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
        <span style="color: #CC0000;">1</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                <span style="color: #006600; font-style: italic;">// Sometimes this is called before the perspective transform</span>
                <span style="color: #006600; font-style: italic;">// is setup which causes warnings. This check prevents that.</span>
                <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c3dl.<span style="color: #660066;">isValidMatrix</span><span style="color: #009900;">&#40;</span>scn.<span style="color: #660066;">getProjectionMatrix</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                    <span style="color: #003366; font-weight: bold;">var</span> iproj <span style="color: #339933;">=</span> c3dl.<span style="color: #660066;">inverseMatrix</span><span style="color: #009900;">&#40;</span>scn.<span style="color: #660066;">getProjectionMatrix</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #006600; font-style: italic;">// To get the clip coords, we multiply the viewspace coordinates by</span>
                    <span style="color: #006600; font-style: italic;">// the projection matrix.</span>
                    <span style="color: #006600; font-style: italic;">// Working backwards across the pipeline, we have to take the normalized</span>
                    <span style="color: #006600; font-style: italic;">// device coordinates and multiply by the inverse projection matrix to get</span>
                    <span style="color: #006600; font-style: italic;">// the clip coordinates.</span>
                    <span style="color: #003366; font-weight: bold;">var</span> clipCoords <span style="color: #339933;">=</span> c3dl.<span style="color: #660066;">multiplyMatrixByVector</span><span style="color: #009900;">&#40;</span>iproj<span style="color: #339933;">,</span> normalizedDeviceCoords<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #006600; font-style: italic;">// perspective divide</span>
                    clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">/=</span> clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                    clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">/=</span> clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                    clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">/=</span> clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                    clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #339933;">-</span>clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #003366; font-weight: bold;">var</span> rayInitialPoint <span style="color: #339933;">=</span> cam.<span style="color: #660066;">getPosition</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #003366; font-weight: bold;">var</span> x <span style="color: #339933;">=</span> clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                    <span style="color: #003366; font-weight: bold;">var</span> y <span style="color: #339933;">=</span> clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                    <span style="color: #003366; font-weight: bold;">var</span> z <span style="color: #339933;">=</span> clipCoords<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #003366; font-weight: bold;">var</span> kludge <span style="color: #339933;">=</span> c3dl.<span style="color: #660066;">multiplyVector</span><span style="color: #009900;">&#40;</span>cam.<span style="color: #660066;">getLeft</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #003366; font-weight: bold;">var</span> viewMatrix <span style="color: #339933;">=</span> c3dl.<span style="color: #660066;">makePoseMatrix</span><span style="color: #009900;">&#40;</span>kludge<span style="color: #339933;">,</span> cam.<span style="color: #660066;">getUp</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> cam.<span style="color: #660066;">getDir</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> cam.<span style="color: #660066;">getPosition</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #003366; font-weight: bold;">var</span> rayTerminalPoint <span style="color: #339933;">=</span> c3dl.<span style="color: #660066;">multiplyMatrixByVector</span><span style="color: #009900;">&#40;</span>viewMatrix<span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span>x<span style="color: #339933;">,</span> y<span style="color: #339933;">,</span> z<span style="color: #339933;">,</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #003366; font-weight: bold;">var</span> rayDir <span style="color: #339933;">=</span> c3dl.<span style="color: #660066;">normalizeVector</span><span style="color: #009900;">&#40;</span>rayTerminalPoint<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #006600; font-style: italic;">// get angle</span>
                    <span style="color: #003366; font-weight: bold;">var</span> angle <span style="color: #339933;">=</span> Math.<span style="color: #660066;">acos</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">*</span> rayDir<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                    <span style="color: #003366; font-weight: bold;">var</span> camHeight <span style="color: #339933;">=</span> rayInitialPoint<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
                    <span style="color: #003366; font-weight: bold;">var</span> hyp <span style="color: #339933;">=</span> camHeight <span style="color: #339933;">/</span> Math.<span style="color: #660066;">cos</span><span style="color: #009900;">&#40;</span>angle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
                    mx <span style="color: #339933;">=</span> hyp <span style="color: #339933;">*</span> rayDir<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> rayInitialPoint<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                    my <span style="color: #339933;">=</span> hyp <span style="color: #339933;">*</span> rayDir<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                    mz <span style="color: #339933;">=</span> hyp <span style="color: #339933;">*</span> rayDir<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">+</span> rayInitialPoint<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
                <span style="color: #009900;">&#125;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span>
<span style="color: #003366; font-weight: bold;">function</span> twitterSearch<span style="color: #009900;">&#40;</span>searchTag<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">//console.log(searchTag);</span>
	arrayTwit <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	arrayTwit <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
                $.<span style="color: #660066;">getJSON</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;http://search.twitter.com/search.json?q=&quot;</span> <span style="color: #339933;">+</span> searchTag <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;&amp;callback=?&quot;</span><span style="color: #339933;">,</span>
        <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>data<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            $.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>data.<span style="color: #660066;">results</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                twitSeach <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">item</span><span style="color: #339933;">;</span>
                arrayTwit.<span style="color: #660066;">push</span><span style="color: #009900;">&#40;</span>twitSeach<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #006600; font-style: italic;">//c3dl.init();</span>
			c3dl.<span style="color: #660066;">addMainCallBack</span><span style="color: #009900;">&#40;</span>canvasMain<span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;tweetTank&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        <span style="color: #009900;">&#125;</span>
$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            twitterSearch<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fishing&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3R3aXR0ZXJTZWEvVHdlZXRUYW5rLmh0bWw=" title=\"TweetTank WebGL example Created with C3DL\" target=\"_blank\">Launch Experiment</a> / <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2ktY3JlYXRlLm9yZy9KYXZhU2NyaXB0L3R3aXR0ZXJTZWEuemlw" title=\"TweetTank WebGL example Created with C3DL Download\" target=\"_blank\">Download Code</a></p>
<p>I mentioned possibly creating a spider with silverlight.  I still would like to do that in the near future. <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovLzc0LjEyNS40NS4xMzIvc2VhcmNoP3E9Y2FjaGU6TlMwdFdTdHZFRllKOnd3dy5zaWx2ZXJsaWdodHNob3cubmV0L2l0ZW1zL0J1aWxkaW5nLWFuLWludGVyYWN0aXZlLXNwaWRlci1pbi1TaWx2ZXJsaWdodC5hc3B4K3NwaWRlcit3aXRoK3NpbHZlcmxpZ2h0JmFtcDtjZD0xJmFtcDtobD1lbiZhbXA7Y3Q9Y2xuayZhbXA7Z2w9dXMmYW1wO2NsaWVudD1maXJlZm94LWE=" title=\"Silverlight Spider\" target=\"_blank\">I found this cool silverlight examples and would like to study it</a>!  I have installed Visual Studio 2010 on my Windows boxes and it is awesome!</p>
<p>I have also been eying a new tutorial on the <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5oeXBlZnJhbWV3b3JrLm9yZy9ibG9nL2NvbnRlbnQvaHlwZS1nZXRzLWEtbmV3LWRvbWFpbi8=" title=\"What is the Hype Framework?\" target=\"_blank\">Hype Framework</a> in <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jb21wdXRlcmFydHMuY28udWsv" title=\"Computer Arts\" target=\"_blank\">ComputerArts</a> latest issue(174).  Has a really cool example that teaches you how to use Hype to make music drawings created by <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2NyZWF0aXZld2F4LmNvLnVrLw==" title=\"CreativeWax\" target=\"_blank\">Stewart Hamilton-Arrandale</a>.  I will learn from this code.  I could add this type of functionality into my KulerSplash.</p>
<p>I also found this resource recently on Objective-C really <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5mYWJpZW5zYW5nbGFyZC5uZXQv" title=\"Fabien's Cool - Code Review and Souce Code\" target=\"_blank\">cool web site it was nice of them to share so much</a> Fabien also has some cool JAVA examples as well.</p>
<p>WebGL libraries:<br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jM2RsLm9yZw==" title=\"What is C3DL?\" target=\"_blank\">C3DL</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hbWJpZXJhLmNvbS9jb3BwZXJsaWNodC8=" title=\"CopperLicht\" target=\"_blank\">CopperLicht</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5zY2VuZWpzLm9yZy8=" title=\"SceneJS\" target=\"_blank\">SceneJS</a></p>
 <img src="http://i-create.org/wp-content/plugins/feed-statistics.php?view=1&post_id=808" width="1" height="1" style="display: none;" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fi-create.org%2F2010%2F04%2F18%2Fwebgl-tweettank-built-with-c3dl-part-1%2F&amp;linkname=WebGL%20TweetTank%20Built%20with%20C3DL%20Part%201"><img src="http://i-create.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://i-create.org/2010/04/18/webgl-tweettank-built-with-c3dl-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>jQuery CenterIT</title>
		<link>http://i-create.org/2010/02/07/jquery-centerit/</link>
		<comments>http://i-create.org/2010/02/07/jquery-centerit/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 00:37:54 +0000</pubDate>
		<dc:creator>Brendon Smith</dc:creator>
				<category><![CDATA[3d]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[QuickTip]]></category>
		<category><![CDATA[JavaScript programming language]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[quick tip]]></category>
		<category><![CDATA[webGL]]></category>

		<guid isPermaLink="false">http://i-create.org/?p=765</guid>
		<description><![CDATA[Have you ever had to deal with the hassle of centering modal windows? I made this function to automagically center windows I call this function after I load a modal and it centers the object perfectly for every browser. It takes the hassle of wondering if something is perfectly center in every browser. The only [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever had to deal with the hassle of centering modal windows?  I made this function to automagically center windows I call this function after I load a modal and it centers the object perfectly for every browser.  It takes the hassle of wondering if something is perfectly center in every browser.  The only thing I do to use it is send it the main containing div that the object should be centered in and the div that I want to be centered.  It grabs the offset does a little basic math and that&#8217;s it.  No more hassle with centering now it will be perfectly centered.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> CenterIT<span style="color: #009900;">&#40;</span>mainModal<span style="color: #339933;">,</span> mainContainer<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> modalW <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>mainModal<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> windowW <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>mainContainer<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">width</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> modalH <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>mainModal<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> windowH <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>mainContainer<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">height</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">/</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> centerPointW <span style="color: #339933;">=</span> windowW <span style="color: #339933;">-</span> modalW<span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> centerPointH <span style="color: #339933;">=</span> windowH <span style="color: #339933;">-</span> modalH<span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> myPoint <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>mainContainer<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">offset</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    centerPointW <span style="color: #339933;">=</span> myPoint.<span style="color: #660066;">left</span> <span style="color: #339933;">+</span> centerPointW<span style="color: #339933;">;</span>
    centerPointH <span style="color: #339933;">=</span> myPoint.<span style="color: #660066;">top</span> <span style="color: #339933;">+</span> centerPointH<span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span>mainModal<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'left'</span><span style="color: #339933;">,</span> centerPointW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    $<span style="color: #009900;">&#40;</span>mainModal<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'top'</span><span style="color: #339933;">,</span> centerPointH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Some Useful/Interesting Flash Links:<br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jbG9zaWVyLm5sL3ByZWZhYi8=" title=\"PreFab\" target=\"_blank\">Prefab</a> &#8211; Highly useful tool when it comes to 3D in flash with <a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2F3YXkzZC5jb20v" title=\"Away3D\" target=\"_blank\">Away3D</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3Nub29rLmNhL2FyY2hpdmVzL29waW5pb24vYWRvYmUtaHRtbDUtY2FudmFz" title=\"Snook on HTML5 and Adobe\" target=\"_blank\">Snook on HTML5 and Adobe</a></p>
<p>Some Useful/Interesting JavaScript Links:<br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5hcmd1aW5nd2l0aG15c2VsZi5jb20vYXJjaGl2ZXMvMTI0LXJheWNhc3Rlci12ZXJzaW9uLTU=" title=\"RayCaster\" target=\"_blank\">Javascript RayCaster</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5oeXBlci1tZXRyaXguY29tLyNCdXJzdA==" title=\"Burst Engine\" target=\"_blank\">Burst Engine for SVG in JavaScript</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5jM2RsLm9yZy8=" title=\"Canvas 3D\" target=\"_blank\">Canvas 3D</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy53eHMuY2EvanMzZC8jZGVtb3M=" title=\"JS3D\" target=\"_blank\">JS3D library</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL2FqYXhpYW4uY29tL2FyY2hpdmVzLzNkY3NzP3V0bV9zb3VyY2U9ZmVlZGJ1cm5lciYjMDM4O3V0bV9tZWRpdW09ZmVlZCYjMDM4O3V0bV9jYW1wYWlnbj1GZWVkJTNBK2FqYXhpYW4rJTI4QWpheGlhbitCbG9nJTI5" title=\"Parallax in CSS\" target=\"_blank\">Parallax in CSS</a><br />
<a href="http://i-create.org/wp-content/plugins/feed-statistics.php?url=aHR0cDovL3d3dy5yb3plbmdhaW4uY29tL2Jsb2cvMjAxMC8wMi8wNC9ibGVuZGVyLXRvLXdlYmdsLWphdmFzY3JpcHQtZXhwb3J0ZXIv" title=\"WebGL\" target=\"_blank\">WebGL Example</a></p>
 <img src="http://i-create.org/wp-content/plugins/feed-statistics.php?view=1&post_id=765" width="1" height="1" style="display: none;" /><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fi-create.org%2F2010%2F02%2F07%2Fjquery-centerit%2F&amp;linkname=jQuery%20CenterIT"><img src="http://i-create.org/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a>]]></content:encoded>
			<wfw:commentRss>http://i-create.org/2010/02/07/jquery-centerit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
