<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Processing (Java) Apps</title>
	<atom:link href="http://bluethen.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://bluethen.wordpress.com</link>
	<description>Releases and Updates</description>
	<lastBuildDate>Fri, 01 Jan 2010 03:37:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='bluethen.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Processing (Java) Apps</title>
		<link>http://bluethen.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://bluethen.wordpress.com/osd.xml" title="Processing (Java) Apps" />
	<atom:link rel='hub' href='http://bluethen.wordpress.com/?pushpress=hub'/>
		<item>
		<title>We&#8217;ve Moved!</title>
		<link>http://bluethen.wordpress.com/2010/01/01/weve-moved/</link>
		<comments>http://bluethen.wordpress.com/2010/01/01/weve-moved/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 03:37:13 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=84</guid>
		<description><![CDATA[We&#8217;ve got a real host now, and a new theme! If you have bluethen.wordpress.com favorited or subscribed in your feeds, then unsubscribe and use www.bluethen.com instead.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=84&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve got a real host now, and a new theme! If you have bluethen.wordpress.com favorited or subscribed in your feeds, then unsubscribe and use www.bluethen.com instead.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=84&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2010/01/01/weve-moved/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>
	</item>
		<item>
		<title>Day 8</title>
		<link>http://bluethen.wordpress.com/2009/12/29/day-8/</link>
		<comments>http://bluethen.wordpress.com/2009/12/29/day-8/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 22:20:42 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=82</guid>
		<description><![CDATA[No significant additions today. Mostly optimizing and polishing of the graphics engine. I also did a lot of commenting for easier referencing. I&#8217;ve been experimenting around, trying to find the most efficient and clean way of rendering and handling 3D graphical data. Christmas was fun. I got some sketchpads, so now I can keep all [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=82&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>No significant additions today. Mostly optimizing and polishing of the graphics engine. I also did a lot of commenting for easier referencing. I&#8217;ve been experimenting around, trying to find the most efficient and clean way of rendering and handling 3D graphical data.</p>
<p>Christmas was fun. I got some sketchpads, so now I can keep all my notes and junk all in one place, instead of scattered all over my desk (I should probably clean this up). I&#8217;m using one sketchpad for the notes, and the other for all my formulas and algorithms. I also bought myself some pretty nice pens, of different colors, so labeling shouldn&#8217;t be a problem.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/82/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/82/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/82/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=82&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/29/day-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>
	</item>
		<item>
		<title>Merry Christmas</title>
		<link>http://bluethen.wordpress.com/2009/12/25/merry-christmas/</link>
		<comments>http://bluethen.wordpress.com/2009/12/25/merry-christmas/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 16:00:25 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Unrelated]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=76</guid>
		<description><![CDATA[Merry Christmas!<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=76&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Merry Christmas!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=76&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/25/merry-christmas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>
	</item>
		<item>
		<title>Day 7</title>
		<link>http://bluethen.wordpress.com/2009/12/24/71/</link>
		<comments>http://bluethen.wordpress.com/2009/12/24/71/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 03:01:14 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Chase Dev Log]]></category>
		<category><![CDATA[Chase Engine]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/2009/12/24/71/</guid>
		<description><![CDATA[There&#8217;s officially been about a week&#8217;s worth of development for Chase. Today, however, was admittedly disappointing in terms of progress. I started working on a quick reference, since the code was getting more and more complex, and keeping track of parameters for each function was difficult. This would be especially useful, since I&#8217;m developing Chase [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=71&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s officially been about a week&#8217;s worth of development for Chase.</p>
<p>Today, however, was admittedly disappointing in terms of progress. I started working on a quick reference, since the code was getting more and more complex, and keeping track of parameters for each function was difficult. This would be especially useful, since I&#8217;m developing Chase over a long time (up to a week or two between development days). The quick reference, however, wasn&#8217;t so quick. It ended up taking me longer to document the different functions than it did for me to actually make some of the functions, so I decided that it was a waste of time, and to ditch it. If it&#8217;s getting difficult for me to keep track of things, then it&#8217;s probably time for me to re-organize and clean up the code a bit.<img title="More..." src="http://bluethen.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p><span id="more-71"></span></p>
<p><a href="http://bluethen.files.wordpress.com/2009/12/3drotate.gif"><img class="alignright" title="3Drotate" src="http://bluethen.files.wordpress.com/2009/12/3drotate.gif?w=356&#038;h=322" alt="" width="356" height="322" /></a>I did get a working 3D rotation function in today. It&#8217;ll allow me to rotate models, polygons, and coordinates along the x, y, or z axis freely.</p>
<p>I&#8217;ll probably devote an entire day to organizing and cleaning up the code soon, and start following a little more strict and consistent standard of coding. I might even start naming functions <a href="http://en.wikibooks.org/wiki/OpenGL_Programming/Basics/NamingConventions#OpenGL_Functions">the same way openGL does with their functions</a>. Being somewhat new to programming,  it&#8217;s best for me to set some good habits for the long run.</p>
<p>Even though I haven&#8217;t programmed in the past week and a half until today, I&#8217;ve been hard at work at composing some of the formulas to be used in Chase. One that&#8217;ll be particularly essential is line to polygon intersection detection in 3D space. This would be used in my lighting algorithm and collision detection, unless I pick up a more efficient method of calculating these.</p>
<p>Another feature I&#8217;ll implement is culling. There&#8217;s a working zbuffer right now, but polygons intersection won&#8217;t actually draw that way. I&#8217;ll hopefully implement that eventually as well.</p>
<p>By the end of Winter Break, I hope to port the entire engine to C++. I originally chose Processing for ease of creation, and to make playing convenient and available to users from within their browser. Chase is looking a little too ambitious to be ran quickly within the browser. Making Chase in a lower level language (compared to Processing) will probably be a wise decision, since it&#8217;ll allow me more resources.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=71&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/24/71/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>

		<media:content url="http://bluethen.wordpress.com/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" medium="image">
			<media:title type="html">More...</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/3drotate.gif" medium="image">
			<media:title type="html">3Drotate</media:title>
		</media:content>
	</item>
		<item>
		<title>Finals</title>
		<link>http://bluethen.wordpress.com/2009/12/18/finals/</link>
		<comments>http://bluethen.wordpress.com/2009/12/18/finals/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 02:17:27 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=61</guid>
		<description><![CDATA[I normally set aside my weekends for developing programs (in this case, Chase), but it&#8217;s looking like I won&#8217;t be this weekend. We have finals this Friday, next Monday, and the day after that, and I need to prepare for that. Also, we&#8217;ll be having company on Saturday, and my sister is coming over from [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=61&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I normally set aside my weekends for developing programs (in this case, Chase), but it&#8217;s looking like I won&#8217;t be this weekend. We have finals this Friday, next Monday, and the day after that, and I need to prepare for that. Also, we&#8217;ll be having company on Saturday, and my sister is coming over from College on Monday.</p>
<p>Development on Chase up to this point has been going super slow. I&#8217;ve only been able to use a few weekends to work on it. I&#8217;d work on it on the week days if I didn&#8217;t have school crowding my time, and family keeps making plans with me during some weekends. I&#8217;ve only had 6 days since the 21st of November to work on this. At this rate, Chase isn&#8217;t going to be completed any time soon, unless I get together a development team of some sort, which I doubt I&#8217;ll do.</p>
<p><span id="more-61"></span></p>
<p>Fortunately, Winter Break is coming up. It starts next Wednesday. I&#8217;d spend everyday developing, but no promises. I&#8217;ll take advantage of the time available as much as possible, and hopefully get some significant features done.</p>
<p>Even when I&#8217;m not developing Chase, I&#8217;m still perpetually thinking of the various algorithms and formulas to be implemented. Polygon to line intersection in 3D space, lighting and shading, 3D model collision detection, etc. The next time I develop, I plan to implement 3D model rotating along x, y, and z axis freely, have suspensions work with rotations on vehicles, and clean up.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=61&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/18/finals/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>
	</item>
		<item>
		<title>Chase Day 6</title>
		<link>http://bluethen.wordpress.com/2009/12/14/chase-day-6/</link>
		<comments>http://bluethen.wordpress.com/2009/12/14/chase-day-6/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 01:32:09 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Chase Dev Log]]></category>
		<category><![CDATA[Chase Engine]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=59</guid>
		<description><![CDATA[I spent most of the day managing data, organizing data, and extending the graphics engine. Currently, the buffering accounts for translations, zooming, and rotations. Models can be displayed at different parts of the environment, and can be rotated and scaled freely now. I plan to later add different features, such as 3D rotations to the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=59&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I spent most of the day managing data, organizing data, and extending the graphics engine. Currently, the buffering accounts for translations, zooming, and rotations. Models can be displayed at different parts of the environment, and can be rotated and scaled freely now.</p>
<p>I plan to later add different features, such as 3D rotations to the model drawing, and possibly lighting and texturing. It really depends on how much resources will remain when the engine nears completion.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/59/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/59/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/59/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=59&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/14/chase-day-6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>
	</item>
		<item>
		<title>Chase</title>
		<link>http://bluethen.wordpress.com/2009/12/13/chase/</link>
		<comments>http://bluethen.wordpress.com/2009/12/13/chase/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 04:42:24 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Chase Dev Log]]></category>
		<category><![CDATA[Chase Engine]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=37</guid>
		<description><![CDATA[I&#8217;ve been working on a game for a little under a month (ever since November 21st). It started out as an idea several months earlier, in which I proceeded to work on in mSL.  I got a  wireframe isometric engine made and running fairly nice (roughly 40 fps, which was godly for such a slow language). I had [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=37&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on a game for a little under a month (ever since November 21st). It started out as an idea several months earlier, in which I proceeded to work on in mSL.  I got a  wireframe isometric engine made and running fairly nice (roughly 40 fps, which was godly for such a slow language). I had some problems with mSL, however. Resources played too large of a factor, and involved having to use every little hack I could come up with to speed it up. I was literally optimizing it to the very byte. That would&#8217;ve been fine for a simple game, but I had bigger plans for my game.</p>
<p><span id="more-37"></span></p>
<p>I didn&#8217;t really want my game to be wireframe. It didn&#8217;t seem very ideal to me.  So I scripted up a simple hidden line removal algorithm, where lines being overlapped by polygons wouldn&#8217;t be displayed. mSL didn&#8217;t provide support for drawing custom polygons, and making a loop to draw each individual pixel of one would be way too slow. I went over every solution I could come up with, like storing different values that would be used in some of the frames. But I&#8217;d always run into one problem or another.</p>
<p>So I gave up on the idea all together. Later, I moved on to Processing. I made a couple of experimental apps, some being duplicates of previous scripts in mSL, and released them on<a title="BlueThen's profile on OpenProcessing" href="http://www.openprocessing.org/portal/?userID=3044"> OpenProcessing</a>. After getting a feel for the language, I started to revisit the idea of the game I wanted to make. The idea of it kept coming back to me. In my mind, it seemed completely revolutionary. Concepts that are used very little, if at all, in main stream games.</p>
<p>I love isometric rendering. Something about the diagonal lines grabs my attention, and stimulates interest into the media. Photographers and artists would tell you that diagonal lines shows action, depth, and stimulation. They convey feelings of movement, and tend to lead your eyes throughout the piece.</p>
<p>Another reason I was interested in isometric rendering was the ease of use. All that&#8217;s required is a simple formula to plug the xyz coordinates, and you&#8217;re done. No rotations, matrixes, or whatever is really required. Just a basic knowledge of 3 dimensional Cartesian coordinates.</p>
<p><a href="http://bluethen.files.wordpress.com/2009/12/isometric.gif"><img class="size-full wp-image-38 alignright" title="isometric" src="http://bluethen.files.wordpress.com/2009/12/isometric.gif?w=292&#038;h=261" alt="" width="292" height="261" /></a></p>
<p>I began using an isometric formula I came across a number of months ago.<br />
onScreenX = (x &#8211; z) * cos(radians(30)) + width/2<br />
onScreenY = (x + z) * sin(radians(30)) &#8211; y + height/2<br />
Assentially, adding width/2 to the x, and height/2 to the y, moves the point of origin (0,0) to the center of the window. I later came across the translate() function in Processing, which allowed me to do just that: translate(width/2,height/2);<br />
onScreenX = (x &#8211; z) * cos(radians(30))<br />
onScreenY = (x + z) * sin(radians(30)) &#8211; y</p>
<p>When multiplying anything by cosine and sine, the radius of an ellipse is created. (x-z) determines the width of the ellipse, and (x+z) is the height. The x-coordinate is then calculated to be 30 degrees counter clockwise from the x axis, and the z-coordinate is calculated 30 degrees clockwise from the x axis.</p>
<p><a href="http://bluethen.files.wordpress.com/2009/12/pixels.gif"><img class="alignleft size-full wp-image-39" title="pixels" src="http://bluethen.files.wordpress.com/2009/12/pixels.gif?w=100&#038;h=70" alt="" width="100" height="70" /></a>I was suggested to later on to use something like 33 degrees instead. Ideally to line it up so that the pixels aren&#8217;t abnormally lined up when drawn directly along the x or z axis. Instead of having 2 dots sideways, then one up, then 3 side, or whatever, it&#8217;d be a clean 2 dots to the side, then 2 dots vertical from that. I never adopted the idea, since none of my scripts ever heavily involved lines parallel to the x or z axis.</p>
<p>The isometric formula was an essential part of all my algorithms. It&#8217;d be used hundreds of thousands of times, for each coordinate involves this calculation. I later decided that it&#8217;d be a good idea to optimize it. Knowing that I&#8217;ll always be using 30 degrees for my isometric formulas, I precalculated that accordingly. 30 degrees in radians is 0.523598776,  cosine of that is roughly 0.866, and sin of our radians is conveniently 0.5.</p>
<p>Later, I rounded the 0.866 to 1. Rounding it that much seemed like it&#8217;d have a significant effect, and it sort of did. It was, however, only noticeable when placed side by side, or immediately compared, to an accurate rendering. The inaccurate rendering only appeared to be a slightly wider scaled version of the accurate rendering.  I ended up with an extremely simple formula:<br />
onScreenX = x &#8211; z<br />
onScreenY = (x + z)/2 &#8211; y</p>
<p>This, I planned to be the main component of the Chase Engine. Chase Engine is essentially going to be the name of the collective algorithms, functions, and classes in my game. I plan to make the graphical engine vector-based. Most isometric/dimetric/trimetric games are bitmap based, where images are used for every angle of every object.</p>
<p>I will render models polygon by polygon, just as if I were doing everything as if it were truely 3D. Textures would probably not be used, and if they are, they&#8217;d be procedural just as well as the rendering.</p>
<p>The isometric formula is the simple part of my game. Other, more complex and brain-tumor-inducing, things will be involved. They will involve my collective knowledge of everything I know about mathematics, programming, graphical algorithms, and plus some. I&#8217;ve thought about it for hours on end,  getting every basic concept ironed out. I knew my game inside and out before I even started, or so I assumed.</p>
<p>I started on November 21st, 2009. I&#8217;ve been dedicating entire days to the game. No less than 3 hours at a time, if you don&#8217;t count the brief breaks I take frequently to keep a fresh mind. The first thing I&#8217;ve accomplished was simple rendering. Functions that&#8217;d draw different shapes and lines in the isometric space. I then added a rough draft of the vehicle class, and of the environment class. The environment class was simply a place-holder, to test the vehicle class. In the vehicle class, featured a simple algorithm for calculating the y position of the vehicle&#8217;s corners, as they act as springs according to the wheels. This was to simulate suspension.</p>
<p>By day 2, November 22nd, I already had about 402 lines of code.  I created a model class and a function for reading files. I then wrote an algorithm to take on screen coordinates and convert them to isometric coordinates.</p>
<p>On day 3, or November 25th, the line count was cut down to 342, and the file reader was turned into a model importer. The model importer took in coordinates from a file, and loaded them into a 3D model class. I was lacking a z-buffer at that time.</p>
<p><a href="http://bluethen.files.wordpress.com/2009/12/suspensions.gif"><img class="alignright size-medium wp-image-48" title="suspensions" src="http://bluethen.files.wordpress.com/2009/12/suspensions.gif?w=288&#038;h=300" alt="" width="288" height="300" /></a>I got a basic Scene buffer going by December 6th, 2009. There was no z-buffering yet. I also recreated the suspension algorithm for vehicles. This one was a little more dynamic, since it allowed me to change the mass, dampening, and other values with ease.</p>
<p>The algorithm I came up with for suspension was</p>
<p>newRest = rest + min ; The resting y position, is determined by a preset rest coordinate + min, or the tire&#8217;s y coordinate. This allows the resting coordinate to change as the wheel coordinate changes.</p>
<div id="_mcePaste">velocity += 0.2 * (newRest &#8211; yPos) &#8211; mass ; The velocity is adjusted. The y position of the car is subtracted from the new resting coordinate. This finds the distance between the vehicle and the resting position. It&#8217;s then multiplied by 0.2 so it the velocity isn&#8217;t significant, and mass is subtracted to simulate gravity.</div>
<div id="_mcePaste">velocity *= dampening ; velocity is multiplied by dampening (which is less than 1), to simulate friction.</div>
<div id="_mcePaste">yPos += velocity ; velocity is added to the y position.</div>
<div id="_mcePaste">constrain(yPos, newMin, maxHeight+newMin) ; the y position is constrained to withing the minimum and maximum heights.</div>
<div></div>
<div>On the 5th day, today, December 12th, 2009, I finally made a working zbuffer. I&#8217;ve probably spent over 10 hours trying to get a working zbuffer. My main problem was the syntax. The logic seemed simple. Simply sort the polygons according to their values.  sort(polygons), right? Wrong!</div>
<div></div>
<div>The sort() function doesn&#8217;t support objects, and arrays are often a pain. I eventually came across a pretty simple way of getting around this. Using comparables for sorting the objects. So I went ahead and created a polygon class for storing all the coordinates in, creating a large array of that for the buffer, then sorting it using comparable. It ended up technically being xyzBuffering, since x, y, and z are all playing a factor in the buffer. In an isometric rendering, the camera is simply at (1,1,1) pointed towards (0,0,0), so I added together the mean (average) x, y, and z of a coordinate to represent it&#8217;s depth.</p>
<div>without zbuffering (CLICK):</div>
</div>
<div><a href="http://bluethen.files.wordpress.com/2009/12/withoutzbuffer.gif"><img class="alignnone size-thumbnail wp-image-33" style="border:0 initial initial;" title="withoutZBuffer" src="http://bluethen.files.wordpress.com/2009/12/withoutzbuffer.gif?w=150&#038;h=150" alt="" width="150" height="150" /></a></div>
<div><a href="http://bluethen.files.wordpress.com/2009/12/withoutzbuffer.gif"></a></div>
<div>With zbuffering (CLICK):</div>
<div><a href="http://bluethen.files.wordpress.com/2009/12/withzbuffer1.gif"><img class="alignnone size-thumbnail wp-image-35" title="withZBuffer" src="http://bluethen.files.wordpress.com/2009/12/withzbuffer1.gif?w=150&#038;h=150" alt="" width="150" height="150" /></a></div>
<div></div>
<div></div>
<div></div>
<div>I have a lot more planned for the game. It&#8217;ll probably take me months, if not one or two years, to complete. I&#8217;m willing to take however long to make the game though. I will not give up, even if it takes me 10+ hours to complete a simple function, or 3+ days to get a formula to work.</div>
<div>

<a href='http://bluethen.wordpress.com/2009/12/13/chase/pixels/' title='pixels'><img width="100" height="70" src="http://bluethen.files.wordpress.com/2009/12/pixels.gif?w=100&#038;h=70" class="attachment-thumbnail" alt="pixels" title="pixels" /></a>
<a href='http://bluethen.wordpress.com/2009/12/13/chase/graphical-2/' title='graphical'><img width="127" height="150" src="http://bluethen.files.wordpress.com/2009/12/graphical1.jpg?w=127&#038;h=150" class="attachment-thumbnail" alt="graphical" title="graphical" /></a>
<a href='http://bluethen.wordpress.com/2009/12/13/chase/codeflow2/' title='codeflow2'><img width="137" height="150" src="http://bluethen.files.wordpress.com/2009/12/codeflow2.gif?w=137&#038;h=150" class="attachment-thumbnail" alt="codeflow2" title="codeflow2" /></a>
<a href='http://bluethen.wordpress.com/2009/12/13/chase/suspensions/' title='suspensions'><img width="144" height="150" src="http://bluethen.files.wordpress.com/2009/12/suspensions.gif?w=144&#038;h=150" class="attachment-thumbnail" alt="suspensions" title="suspensions" /></a>
<a href='http://bluethen.wordpress.com/2009/12/13/chase/isometric/' title='isometric'><img width="150" height="134" src="http://bluethen.files.wordpress.com/2009/12/isometric.gif?w=150&#038;h=134" class="attachment-thumbnail" alt="isometric" title="isometric" /></a>
<a href='http://bluethen.wordpress.com/2009/12/13/chase/withoutzbuffer/' title='withoutZBuffer'><img width="150" height="150" src="http://bluethen.files.wordpress.com/2009/12/withoutzbuffer.gif?w=150&#038;h=150" class="attachment-thumbnail" alt="withoutZBuffer" title="withoutZBuffer" /></a>
<a href='http://bluethen.wordpress.com/2009/12/13/chase/withzbuffer-2/' title='withZBuffer'><img width="150" height="150" src="http://bluethen.files.wordpress.com/2009/12/withzbuffer1.gif?w=150&#038;h=150" class="attachment-thumbnail" alt="withZBuffer" title="withZBuffer" /></a>

</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/37/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/37/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/37/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=37&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/13/chase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/isometric.gif" medium="image">
			<media:title type="html">isometric</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/pixels.gif" medium="image">
			<media:title type="html">pixels</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/suspensions.gif?w=288" medium="image">
			<media:title type="html">suspensions</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/withoutzbuffer.gif?w=150" medium="image">
			<media:title type="html">withoutZBuffer</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/withzbuffer1.gif?w=150" medium="image">
			<media:title type="html">withZBuffer</media:title>
		</media:content>
	</item>
		<item>
		<title>Galaxy</title>
		<link>http://bluethen.wordpress.com/2009/12/04/galaxy/</link>
		<comments>http://bluethen.wordpress.com/2009/12/04/galaxy/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 03:12:23 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Processing App]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=14</guid>
		<description><![CDATA[Galaxy is another one of my Processing Apps. It&#8217;s another particle engine, but with the particles all rotating around the center on their own axis. Each particle&#8217;s speed is determined by the distance from the center, and can be effected by the user dragging the cursor left or right. The particle count is about 5,000. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=14&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.openprocessing.org/visuals/?visualID=5582"><img class="alignleft size-full wp-image-15" title="galaxyScreeny" src="http://bluethen.files.wordpress.com/2009/12/galaxyscreeny.gif?w=450&#038;h=466" alt="" width="450" height="466" /></a><a href="http://www.openprocessing.org/visuals/?visualID=5582">Galaxy</a> is another one of my Processing Apps. It&#8217;s another particle engine, but with the particles all rotating around the center on their own axis. Each particle&#8217;s speed is determined by the distance from the center, and can be effected by the user dragging the cursor left or right.</p>
<p><span id="more-14"></span></p>
<ul>
<li>The particle count is about 5,000. The code uses a custom class object for each particle, for easy updating and management. In the class for the particles, a number of variables are used to define the properties of each particle.</li>
<li>The angle, to keep track of the position of the particle around the center</li>
<li>The radius, or distance from the center the particle is</li>
<li>dec and turnVelocity, both to decide the speed. dec is constant speed, where the particles closer to the center are faster (simply by multiplying by its distance inverted, 200-radius. We use 200 since that&#8217;s the max radius), and turnVelocity the speed of the particles controlled by the cursor&#8217;s x position, for when it&#8217;s dragged. turnVelocity is reduced by 5% every frame to simulate friction.</li>
<li>tilt is pretty much the tilt of the particle&#8217;s orbit.</li>
</ul>
<p>When each particle is initialized, the angle is set to in between 0 and 6.28 (2Pi), since 2Pi is about a full circle, this should distribute particles somewhat evenly. Radius is randomly in between 70 and 200. The 70 allows a visible gap about 140 pixels in diameter at the center.  The tilt is between -60 and 60 (60 below and 60 above the origin), and dec is (200-radius) * 0.00014. Since dec is the rotational speed, and the rotation is measured in Radians, our values will be pretty small (again, in between 0 and 6.28). So we multiply by 0.00014 to get a desired speed. Multiplying by radius will have the speed determined by distance from center, and by subtracting radius from 200, it will invert the speeds, meaning that the particles closer will be faster than ones on the outside.</p>
<p>Every frame, the particle is updated. Here is where we apply the rotational algorithms, and update the coordinates of the particles. Before the update function is called, a turn rate is determined by the cursor. The program finds out whether or not the user is clicking, and if so, it finds the change in x coordinate, and plugs it in to the update function. This is done so the program can run a lot more smoothly. If we were to have these 2 lines of code in the update function, then it&#8217;d have to be recalculated for every particle.</p>
<p>The first thing the update function does is, update the coordinates. It uses the formula:<br />
<span style="font-family:Consolas, Monaco, 'Courier New', Courier, monospace;line-height:18px;font-size:12px;white-space:pre;">x = radius * cos(angle)<br />
y = tilt + 20 * cos(angle + 3.5)<br />
z = radius * sin(angle)</span></p>
<p>In the x part of the formula, cosine is used to find the x coordinate around the center the particle is, and radius is multiplied on to apply distance. In the y part, tilt is added on to move the origin to (0,tilt,0).  20 shows that the y varies by about 20 pixels. In the cosine of the y value, 3.5 is added to the angle. The reason here is simply to orientate the swirl to face the camera at a correct angle. The calculation for z is the same as x, but uses sin to achieve a circular orbit.</p>
<p>The next part checks to see if turn is 0. Turn variable is the value plugged in earlier. The value was determined by the mouse&#8217;s effect on Galaxy&#8217;s spin. If it isn&#8217;t 0, it is multiplied by (200-radius), then set to turnVelocity. This makes the values so it&#8217;s larger if the particle is closer to center, rather than farther away. If it were 0, which is prevented, then (200 &#8211; radius) * turn would return 0. We don&#8217;t want this because we want to apply our own stopping algorithm, which will make it seemingly slow to a halt, but that is applied after angle is recalculated.</p>
<p>We use the formula: angle -= dec + turnVelocity to determine the angle. dec is the constant rotation the Galaxy goes through, and turnVelocity determined by the user.</p>
<p>turnVelocity is decreased by about 5% to simulate friction, and to make it seemingly slow down to a halt.</p>
<p>The previous coordinate is set if the current coordinate isn&#8217;t already (for the first frame).</p>
<p>A line is then rendered isometrically using the previous and current coordinate. I explain my isometric algorithm in the <a href="http://bluethen.wordpress.com/2009/12/02/explode/">Explode</a> post. Afterwards, the previous coordinate is set to the current, for drawing the tail in the next frame.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=14&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/04/galaxy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/galaxyscreeny.gif" medium="image">
			<media:title type="html">galaxyScreeny</media:title>
		</media:content>
	</item>
		<item>
		<title>Explode Code Updated</title>
		<link>http://bluethen.wordpress.com/2009/12/03/explode-code-updated/</link>
		<comments>http://bluethen.wordpress.com/2009/12/03/explode-code-updated/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 03:44:19 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Dev Log]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=12</guid>
		<description><![CDATA[Explode updated again, Galaxy updated, and lacking programming time<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=12&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I didn&#8217;t have much time last night to fully revise Explode&#8217;s code. So today I finished that job. I revised a lot of the comments, converted the coordinates from float to PVector datatype, PVector is a class object in Processing&#8217;s API, which allows programmers to easily manage vector coordinates in 2 or 3 dimensions. I combined two calculations done to find the new coordinate of each particle into one, among other changes.</p>
<p>I also updated Galaxy, but I&#8217;ve yet to document the actual app on here. If you&#8217;ve seen the app before (on <a title="Galaxy" href="http://www.openprocessing.org/visuals/?visualID=5582" target="_self">OpenProcessing</a>), you&#8217;ll find that there&#8217;s a noticeable change now.  The speeds are inverted. Instead of being faster on the outside and slower on the inside, it&#8217;s now faster on the inside and slower on the outside. I also did similar changes to Galaxy as I did to Explode. Coordinates converted to PVector, and revised comments and code.</p>
<p>It&#8217;s been pretty hard in keeping up with programming. I&#8217;m taking Drivers Ed, which is taking up a good part of my day, and I&#8217;m often exhausted by the time I return from school.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/12/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/12/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/12/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=12&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/03/explode-code-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>
	</item>
		<item>
		<title>Explode</title>
		<link>http://bluethen.wordpress.com/2009/12/02/explode/</link>
		<comments>http://bluethen.wordpress.com/2009/12/02/explode/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 02:49:03 +0000</pubDate>
		<dc:creator>BlueThen</dc:creator>
				<category><![CDATA[Processing App]]></category>

		<guid isPermaLink="false">http://bluethen.wordpress.com/?p=3</guid>
		<description><![CDATA[Explode is an isometric "fireworks" type animation involving particles programmed in Processing, an API for Java (language extension). It harnesses trigonometry to calculate positioning of each particle.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=3&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.openprocessing.org/visuals/?visualID=5629"><img class="alignleft size-full wp-image-28" title="explodeScreeny" src="http://bluethen.files.wordpress.com/2009/12/explodescreeny.gif?w=450&#038;h=466" alt="" width="450" height="466" /></a></p>
<p>Press any key to restart animation.</p>
<p>Explode was my first processing applet.  It involves about 15,000 particles. It&#8217;s an animation of a particle fireworks effect.</p>
<p><span id="more-3"></span></p>
<p>In the setup, 10,000 particles are initialized in an array, using a custom Class. The class holds all the information and functions for the particle, so it allows easy particle management. When initialized, an x, y, and z variable is created for the particle&#8217;s coordinates all start at (0,width/4,0) in the format of (x,y,z), with y being up and down. Then another coordinate (px,py,pz) for the tail of the particle. There&#8217;s also speed, theta, and phi. These variables controls which direction, and how fast each particle goes. Speed (or in this case, rho), phi, and theta are all spherical coordinates.  Rho simply defines the distance from the center, phi is the latitude (along the y axis, up and down), and theta is the longitude (along the x axis, around the sides). They&#8217;re randomly assigned when initialized. Last of all, there&#8217;s gravity. Gravity simply defines the y velocity (up and down).</p>
<p>All that happens for each frame is that the update function in the particle class is called, for each particle. Before any calculation is done, (px,py,pz) is set to the current coordinate, for the tail of the particle. Afterwards, the new (x,y,z) coordinate is calculated, using the speed, phi, theta, and gravity. These are used to calculate a coordinate on a theoretical sphere around the current coordinate, which ends up being the resulting coordinate.</p>
<p>The resulting coordinate is rotated along the x and z plane 2 degrees clockwise. This adds to the wow factor, and creates the illusion of 3d.</p>
<p>After the coordinates are calculated, the y velocity (gravity) is increased by 0.3, and the speed is decreased by 2% to simulate friction. Then the particle is drawn using an isometric formula.</p>
<p>The isometric formula is pretty simple in concept. It converts our 3D (x,y,z) coordinate to the 2D screen coordinate (x,y). Isometric pretty much means that the sides, x and z coordinates, are rotated 45 degrees along the x axis. In my formula, I simply rotate them 30 degrees. The x axis is adjusted to be 30 degrees diagonal one way (top left to bottom right), and z axis is rotated the other (top right to bottom left). The y coordinate, however, isn&#8217;t adjusted. It&#8217;s simply added or subtracted according to the x and z coordinates.</p>
<p>When the final on screen (x,y) coordinate is calculated, the color is set according to how far along the particle is along the x axis (top left is darkest, bottom right is lightest), and the particle is drawn.</p>
<p>You can view the app and her source on OpenProcessing (linked above), with the source commented.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/bluethen.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/bluethen.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/bluethen.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/bluethen.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/bluethen.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/bluethen.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/bluethen.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/bluethen.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/bluethen.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/bluethen.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/bluethen.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/bluethen.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/bluethen.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/bluethen.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=bluethen.wordpress.com&amp;blog=10765645&amp;post=3&amp;subd=bluethen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://bluethen.wordpress.com/2009/12/02/explode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/e1964a9c3a50b28f3727c4bdea1b856d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">BlueThen</media:title>
		</media:content>

		<media:content url="http://bluethen.files.wordpress.com/2009/12/explodescreeny.gif" medium="image">
			<media:title type="html">explodeScreeny</media:title>
		</media:content>
	</item>
	</channel>
</rss>
