<?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>Slowchop Studios</title>
	<atom:link href="http://slowchop.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://slowchop.com</link>
	<description>Indie Game Development</description>
	<lastBuildDate>Fri, 19 Jun 2015 07:28:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.2.2</generator>
	<item>
		<title>New Website Launched!</title>
		<link>https://slowchop.com/2015/06/18/new-website-launched/</link>
		<comments>https://slowchop.com/2015/06/18/new-website-launched/#comments</comments>
		<pubDate>Thu, 18 Jun 2015 06:32:51 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Updates]]></category>

		<guid isPermaLink="false">https://slowchop.com/?p=477</guid>
		<description><![CDATA[Slowchop Studios now has a new look to the brand, including a cool new snail logo. We are also looking for contract work for any type of short to medium term projects. This includes game development, Python, Android, and a wide variety of technologies. Contact us if you wish to get a quote and discuss &#8230; <a href="https://slowchop.com/2015/06/18/new-website-launched/" class="more-link">Continue reading <span class="screen-reader-text">New Website Launched!</span></a>]]></description>
				<content:encoded><![CDATA[<p>Slowchop Studios now has a new look to the brand, including a cool new snail logo.</p>
<p>We are also looking for contract work for any type of short to medium term projects. This includes game development, Python, Android, and a wide variety of technologies. <a href="mailto:work@slowchop.com">Contact us</a> if you wish to get a quote and discuss the work.</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2015/06/18/new-website-launched/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tower X: A New Era</title>
		<link>https://slowchop.com/2011/03/10/tower-x/</link>
		<comments>https://slowchop.com/2011/03/10/tower-x/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 21:30:57 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[towerx]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=421</guid>
		<description><![CDATA[I released a strategy game on the iPhone called TowerDefend several years ago. It hasn&#8217;t sold many copies, but there appears to be a few who really enjoy it, so I&#8217;ve finally decided to update it. UPDATE Tower X has been released! Here are the new things that I&#8217;m working on for the next release &#8230; <a href="https://slowchop.com/2011/03/10/tower-x/" class="more-link">Continue reading <span class="screen-reader-text">Tower X: A New Era</span></a>]]></description>
				<content:encoded><![CDATA[<p>I released a strategy game on the iPhone called TowerDefend several years ago. It hasn&#8217;t sold many copies, but there appears to be a few who really enjoy it, so I&#8217;ve finally decided to <a href="http://www.towerx.com/" title="Tower X" target="_blank" class="broken_link">update it</a>.<br />
<span id="more-421"></span><br />
<strong>UPDATE</strong> <a href="http://www.towerx.com/" target="_blank" class="broken_link">Tower X</a> has been released!</p>
<p>Here are the new things that I&#8217;m working on for the next release (v2.0.0):</p>
<ul>
<li>A new name: &#8220;Tower X&#8221;</li>
<li>You will now be ranked against everyone else in the world using Game Center.</li>
<li>Achievements are always fun. Give me a yell if you have any good ideas.</li>
<li>A few graphics improvements, including support for iPhone 4 retina display.</li>
<li>There will be many more levels.</li>
</ul>
<p>There are more features on the planning board, but I won&#8217;t mention them yet. Please tell me if you have any suggestions or problems with the game.</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2011/03/10/tower-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Geo Command: February Update</title>
		<link>https://slowchop.com/2011/03/01/geo-command-february-update/</link>
		<comments>https://slowchop.com/2011/03/01/geo-command-february-update/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 19:07:45 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[geocmd]]></category>
		<category><![CDATA[webgl]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=417</guid>
		<description><![CDATA[Geo Command, a GPS based game, is still under heavy development. The current target platform is HTML5 with WebGL, and later will be ported to iPhone, iPad and Android. UPDATE: Geo Command development has been discontinued. Sorry folks. Progress I&#8217;ve been fairly quiet in the last few weeks, but don&#8217;t fret! Here are the list &#8230; <a href="https://slowchop.com/2011/03/01/geo-command-february-update/" class="more-link">Continue reading <span class="screen-reader-text">Geo Command: February Update</span></a>]]></description>
				<content:encoded><![CDATA[<p>Geo Command, a GPS based game, is still under heavy development. The current target platform is HTML5 with WebGL, and later will be ported to iPhone, iPad and Android.</p>
<p><span id="more-417"></span><br />
<strong>UPDATE: Geo Command development has been discontinued. Sorry folks.</strong></p>
<p><strong>Progress</strong></p>
<p>I&#8217;ve been fairly quiet in the last few weeks, but don&#8217;t fret! Here are the list of features that have been worked on:</p>
<ul>
<li>We have a new logo! Check out <a href="http://twitter.com/geocmd/">@geocmd</a> to see it.</li>
<li>A new web layout and visual style. Here is a <a href="http://photos.gakman.com/Slowchop/Geo-Command/15604931_Ew4x6#1185933852_s99cs-A-LB" class="broken_link">screenshot</a>.</li>
<li>Font rendering in WebGL. There will be blog post about how to do this soon.</li>
<li>Partial map scaling, where you can be zoomed in between &#8220;major&#8221; zoom levels. Google Maps doesn&#8217;t even do this!</li>
<li>Slightly nicer texture rendering with mipmapping and correct clamp values.</li>
<li>A fair amount of infrastructure and deployment work.</li>
</ul>
<p><strong>Still Looking</strong></p>
<p>We are still collecting people who want to test Geo Command when we start public testing. If youâ€™re interested, please follow <a href="http://twitter.com/geocmd/">@geocmd</a> and <a href="http://twitter.com/?status=I demand to be an alpha tester for @geocmd!"> demand to be an alpha tester</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2011/03/01/geo-command-february-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geo Command: The First Month</title>
		<link>https://slowchop.com/2011/02/01/geo-conquer-the-first-month/</link>
		<comments>https://slowchop.com/2011/02/01/geo-conquer-the-first-month/#comments</comments>
		<pubDate>Tue, 01 Feb 2011 08:14:13 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[geocmd]]></category>
		<category><![CDATA[timelapse]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=378</guid>
		<description><![CDATA[For the last month I&#8217;ve been developing a GPS based game called Geo Command. So far it has been going very well. The details of the game are still mostly secret, so any information you&#8217;ll find on the Internet will probably only be from the Geo Command Twitter feed and this blog. UPDATE: Geo Command &#8230; <a href="https://slowchop.com/2011/02/01/geo-conquer-the-first-month/" class="more-link">Continue reading <span class="screen-reader-text">Geo Command: The First Month</span></a>]]></description>
				<content:encoded><![CDATA[<p>For the last month I&#8217;ve been developing a GPS based game called Geo Command. So far it has been going very well. The details of the game are still mostly secret, so any information you&#8217;ll find on the Internet will probably only be from the <a href="http://twitter.com/geocmd/">Geo Command Twitter feed</a> and this blog.</p>
<p><span id="more-378"></span><br />
<strong>UPDATE: Geo Command development has been discontinued. Sorry folks.</strong></p>
<p><strong>The Time-Lapse Video</strong></p>
<p>As <a href="http://slowchop.com/2011/01/21/a-new-game-geo-conquer/">promised</a>, here is the time-lapse video of my screen while developing Geo Cmd. To see it in Full HD, hit the full screen button, then turn on HD.</p>
<p><object width="640" height="400" ><param name="movie" value="http://cdn.smugmug.com/ria/ShizVidz-2010102501.swf" /><param name="allowFullScreen" value="true" /><param name="flashVars" value="s=ZT0xJmk9MTE3MzE4NzQwOCZrPUFjQjVFJmE9MTU2MDQ5MzFfRXc0eDYmdT1nYWttYW4=" /><embed src="http://cdn.smugmug.com/ria/ShizVidz-2010102501.swf" flashVars="s=ZT0xJmk9MTE3MzE4NzQwOCZrPUFjQjVFJmE9MTU2MDQ5MzFfRXc0eDYmdT1nYWttYW4=" width="640" height="400" type="application/x-shockwave-flash" allowFullScreen="true"></embed></object></p>
<p>The audio track is called &#8220;Liquid Night&#8221; by Redshirt Theory. Check out <a href="http://www.redshirttheory.com/">his website</a> if you want to hear more of his excellent music. There will be a follow up post on how this video was made, so follow <a href="http://twitter.com/slowchop/">@slowchop</a> or <a href="http://slowchop.com/feed/">subscribe to the blog</a> if you&#8217;re interested.</p>
<p>If you prefer YouTube, the link is <a href="http://www.youtube.com/watch?v=_tz9HkmGWJY">here</a>, but the quality isn&#8217;t so great. For some reason, the text is choppy at 1080p.</p>
<p><strong>Progress</strong></p>
<p>Right now I&#8217;m on a loose schedule, since it is difficult to work out how long this project will take. Here are the features implemented for the past month:</p>
<ul>
<li>Import OpenStreetMap data into PostgreSQL (1 week)</li>
<li>Create the server in Python (1 week)</li>
<ul>
<li>Ensure adequate unit tests for the Python server</li>
<li>Server to not allow building placement in water</li>
</ul>
<li>Create a Python prototype in PyGame and OpenGL (1 week)</li>
<li>Begin developing the HTML5 and WebGL client (1 week)</li>
<ul>
<li>Render a scrollable and zoomable map in WebGL</li>
<li>Detect your GPS location</li>
<li>Draw simple objects on the map for bases and units</li>
<li>Use HTML5 local storage to cache some client side data</li>
</ul>
</ul>
<p><strong>Alpha Testing</strong></p>
<p>I&#8217;m still collecting people who want to test Geo Command when we start public testing. If you&#8217;re interested, please follow <a href="http://twitter.com/geocmd/">@geocmd</a> and <a href="http://twitter.com/?status=I would love to be an alpha tester for @geocmd!"><del>ask</del> demand to be an alpha tester</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2011/02/01/geo-conquer-the-first-month/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>if __name__ == &#8216;__main__&#8217; can be nicer!</title>
		<link>https://slowchop.com/2011/01/25/automain/</link>
		<comments>https://slowchop.com/2011/01/25/automain/#comments</comments>
		<pubDate>Mon, 24 Jan 2011 23:16:26 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=341</guid>
		<description><![CDATA[After many times of writing out this default &#8220;main&#8221; code, I decided to work out if there is a way that I don&#8217;t have to type as much and make it look nicer. Yes, I&#8217;m pedantic with code neatness. Here is an example of what I&#8217;m talking about: def main(): print 'this runs only when &#8230; <a href="https://slowchop.com/2011/01/25/automain/" class="more-link">Continue reading <span class="screen-reader-text">if __name__ == &#8216;__main__&#8217; can be nicer!</span></a>]]></description>
				<content:encoded><![CDATA[<p>After many times of writing out this default &#8220;main&#8221; code, I decided to work out if there is a way that I don&#8217;t have to type as much and make it look nicer. Yes, I&#8217;m pedantic with code neatness. Here is an example of what I&#8217;m talking about:</p>
<pre name="code" class="py">def main():
    print 'this runs only when executed directly'

if __name__ == '__main__':
    main()
</pre>
<p>I asked on <a href="http://stackoverflow.com/questions/4777031/shortcut-for-if-name-main/4777139">Stack Overflow</a>, but the general answer was &#8220;deal with it&#8221;. After a quick discussion of the problem, <a href="http://twitter.com/dsturnbull">@dsturnbull</a> and <a href="http://twitter.com/gakman">myself</a> worked out that it was possible to import a module and use a decorator in place of this if statement.</p>
<p>The module is called automain, and here is an example of its usage:</p>
<pre name="code" class="py">from automain import *

@automain
def main():
    print 'this runs only when executed directly'
</pre>
<p>I threw it on <a href="https://github.com/gak/automain">github</a>, and <a href="http://pypi.python.org/pypi/automain">Python Cheese Shop</a> and it can be easy_installed:</p>
<blockquote><p><code>easy_install automain</code></p></blockquote>
<p><strong>How does it work?</strong><br />
The source code of the decorator looks like this:</p>
<pre name="code" class="py">def automain(func):
    import inspect
    parent = inspect.stack()[1][0]
    name = parent.f_locals.get('__name__', None)
    if name == '__main__':
        func()
</pre>
<p>Basically it inspects the parent stack frame, and checks if __name__ is &#8216;__main__&#8217;, then executes the function. Otherwise it does nothing, as expected.</p>
<p><strong>Internet Trolls</strong><br />
Interestingly enough, a random internet troll rated the module 0/5 on Python Cheese Shop and started <a href="http://pypi.python.org/pypi?:action=comment&#038;msg=621">his comment</a> with:</p>
<blockquote><p>spookylukey (2011-01-24, 0 points):<br />
Seriously? Is this a joke?</p>
<p>1. Your implementation can&#8217;t possible work &#8211; it is going to do the same if the module is imported as a library or if it is run as a script.<br />
[..snip..]</p></blockquote>
<p>All I have to say is that it does work and I find it much better to use. Thanks for the terrible and incorrect feedback though, spookylukey!</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2011/01/25/automain/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Geo Command: A new game</title>
		<link>https://slowchop.com/2011/01/21/a-new-game-geo-conquer/</link>
		<comments>https://slowchop.com/2011/01/21/a-new-game-geo-conquer/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 22:49:11 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Games]]></category>
		<category><![CDATA[geocmd]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=334</guid>
		<description><![CDATA[At the start of the year I decided to start making a new game&#8211;one that I&#8217;ve been wanting to make for a little while. I&#8217;m not going to disclose much information about it yet, since it&#8217;s early in development, but I will say that it is a free GPS based game for the web and &#8230; <a href="https://slowchop.com/2011/01/21/a-new-game-geo-conquer/" class="more-link">Continue reading <span class="screen-reader-text">Geo Command: A new game</span></a>]]></description>
				<content:encoded><![CDATA[<p>At the start of the year I decided to start making a new game&#8211;one that I&#8217;ve been wanting to make for a little while. I&#8217;m not going to disclose much information about it yet, since it&#8217;s early in development, but I will say that it is a free GPS based game for the web and iOS devices called Geo Command.</p>
<p><span id="more-334"></span><br />
<strong>UPDATE: Geo Command development has been discontinued. Sorry folks.</strong></p>
<p>You probably know by now I&#8217;m a fan of time-lapse video, so in the coming weeks I&#8217;ll be posting time-lapse videos of my screen while coding the game. I&#8217;ve seen other game developers do this and I think it&#8217;s great. Alongside the videos, I&#8217;ll mention any cool stuff I&#8217;ve had to do and features implemented.</p>
<p><strong>UPDATE!</strong> Here is the <a href="http://slowchop.com/2011/02/01/geo-conquer-the-first-month/">time-lapse video</a>.</p>
<p>The plan so far is:</p>
<ul>
<li>Create design document (done!)</li>
<li>Create the server in Python</li>
<li>Create <del datetime="2011-01-28T07:48:59+00:00">a prototype</del> the intitial game in <del datetime="2011-01-28T07:48:59+00:00">Python with pygame</del> HTML5 and WebGL</li>
<li>Once the game is balanced and fun, write it for the iPhone and iPad</li>
<li>Release to App Store!</li>
</ul>
<p>I will be releasing the Python client to anyone interested in playing the development version of the game. There is a Twitter account called <a href="http://twitter.com/#!/geocmd">@geocmd</a> for the game, if you want to get some super secret information about it.</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2011/01/21/a-new-game-geo-conquer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mac App Store dealings with Gravit</title>
		<link>https://slowchop.com/2011/01/17/mac-app-store-dealings-with-gravit/</link>
		<comments>https://slowchop.com/2011/01/17/mac-app-store-dealings-with-gravit/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 23:49:26 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[gravit]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=324</guid>
		<description><![CDATA[The Mac App Store gave me an excuse to try to make money out of my Open Source gravity simulator, Gravit. I signed up to the Mac Developer Program, packaged Gravit, and uploaded it. Soon after, I got an email mentioning: 2.5 Apps that use non-public APIs will be rejected The following non-public APIs are &#8230; <a href="https://slowchop.com/2011/01/17/mac-app-store-dealings-with-gravit/" class="more-link">Continue reading <span class="screen-reader-text">Mac App Store dealings with Gravit</span></a>]]></description>
				<content:encoded><![CDATA[<p>The Mac App Store gave me an excuse to try to make money out of my Open Source gravity simulator, <a href="http://gravit.slowchop.com/" class="broken_link">Gravit</a>.</p>
<p>I signed up to the Mac Developer Program, packaged Gravit, and uploaded it. Soon after, I got an email mentioning:</p>
<blockquote><p>
2.5   Apps that use non-public APIs will be rejected</p>
<p>The following non-public APIs are included in your application:<br />
CPSSetFrontProcess, CPSGetCurrentProcess  and CPSEnableForegroundOperation  from the ApplicationServices.framework
</p></blockquote>
<p><span id="more-324"></span></p>
<p>After a quick search on the net, and some investigation of the code, it turns out that SDLMain.m (which is the entry point for Cocoa SDL apps) included these functions. It was trivial to fix, just by commenting out a define:</p>
<blockquote><p>
<code>#define SDL_USE_CPS 1<br />
</code>
</p></blockquote>
<p>Resubmitting the app worked fine, and it *just* made it into the Mac App Store for opening day. It was even ranked 35th in top downloads in Australia!</p>
<p><strong>Aftermath</strong><br />
There were a few bugs in Gravit, and some problems with using the function keys. I quickly fixed up a few things then tried to resubmit to the Mac App Store. It failed to upload. Something happened with either my computer, Gravit or their servers:</p>
<blockquote><p>
An error occurred on the Apple server while trying to authenticate the package: 411594302.itmsp<br />
An exception has occurred: Error invoking operation:<br />
java.lang.ClassCastException: org.apache.axis.attachments.AttachmentsImpl cannot be cast to org.apache.axis.attachments.Attachments: Exception trying to invoke operation: validateMetadata<br />
Could not connect to Apple&#8217;s web service.<br />
Unable to authenticate the package: 411594302.itmsp
</p></blockquote>
<p>I tried asking on <a href="http://stackoverflow.com/questions/4636280/application-loader-an-error-occurred-on-the-apple-server-while-trying-to-authen">Stack Overflow</a>, the <a href="https://devforums.apple.com/message/359761">Apple Developer Forums</a> and attempted to use the &#8220;Apple Developer Technical Support (DTS) team&#8221;. No responses from Apple, after two weeks.</p>
<p>So now Gravit in limbo and won&#8217;t be receiving updates until this problem is fixed.</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2011/01/17/mac-app-store-dealings-with-gravit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dark Fighter free for a limited time</title>
		<link>https://slowchop.com/2010/12/20/dark-fighter-free-for-a-limited-time/</link>
		<comments>https://slowchop.com/2010/12/20/dark-fighter-free-for-a-limited-time/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 08:29:28 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[darkfighter]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=319</guid>
		<description><![CDATA[We&#8217;ve release Dark Fighter for free on the App Store. Get it before we change our minds! App Store link: http://itunes.apple.com/us/app/dark-fighter/id376611717?mt=8 Website: http://darkfighter.com/]]></description>
				<content:encoded><![CDATA[<p>We&#8217;ve release Dark Fighter for free on the App Store. Get it before we change our minds!</p>
<p>App Store link: <a href="http://itunes.apple.com/us/app/dark-fighter/id376611717?mt=8" class="broken_link">http://itunes.apple.com/us/app/dark-fighter/id376611717?mt=8</a><br />
Website: <a href="http://darkfighter.com/">http://darkfighter.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2010/12/20/dark-fighter-free-for-a-limited-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webcam + Timelapse + OpenCV</title>
		<link>https://slowchop.com/2010/08/22/webcam-timelapse-opencv/</link>
		<comments>https://slowchop.com/2010/08/22/webcam-timelapse-opencv/#comments</comments>
		<pubDate>Sun, 22 Aug 2010 11:34:26 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[opencv]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[timelapse]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=297</guid>
		<description><![CDATA[Since the start of the year, I&#8217;ve made my laptop automatically take a photo of me every minute. A while ago I made a time lapse video out of it, but used a frame averaging technique, so it&#8217;s a bit blurry, but still interesting. The main problem is that my head is not positioned exactly &#8230; <a href="https://slowchop.com/2010/08/22/webcam-timelapse-opencv/" class="more-link">Continue reading <span class="screen-reader-text">Webcam + Timelapse + OpenCV</span></a>]]></description>
				<content:encoded><![CDATA[<p>Since the start of the year, I&#8217;ve made my laptop automatically take a photo of me every minute. A while ago I made a time lapse video out of it, but used a frame averaging technique, so it&#8217;s a bit blurry, but still interesting.<br />
<span id="more-297"></span><br />
<iframe class="youtube-player" type="text/html" width="480" height="385" src="http://www.youtube.com/embed/xOvnsWz5dHY?hl=en_US" frameborder="0"></iframe></p>
<p>The main problem is that my head is not positioned exactly in the same spot every time the photo is taken, so the average frame becomes blurry. I looked into facial recognition and found <a href="http://opencv.willowgarage.com/wiki/" class="broken_link">OpenCV</a> which is a free &#8220;computer vision&#8221; library written in C++. OpenCV comes with face detection, eye detection, and all sorts of different image and video processing tools. It also has wrappers for languages such as Python, Ruby and C#, so I decided to give the Python interface a go.</p>
<p>Compiling it took a fair amount of work on OS X with working Python bindings, and it was completely worth it. Once OpenCV was ready to go, detecting a face was trivial. It gives you a rectangle for each face that were detected in the image.</p>
<p><img src="http://slowchop.com/wp-content/uploads/2010/08/faces_detected-450x337.jpg" alt="" title="Beatles faces detected using OpenCV" width="450" height="337" class="alignnone size-medium wp-image-298" /></p>
<p>Usually it&#8217;s pretty accurate, but when I attempted to run this through all the webcam frames collected, it would sometimes think an inanimate object was a face:</p>
<p><img src="http://slowchop.com/wp-content/uploads/2010/08/not-a-face-450x337.png" alt="" title="not-a-face" width="450" height="337" class="alignnone size-medium wp-image-304" /></p>
<p>There are ways to tweak how sensitive the detection is, but I thought it would be cool to also detect my eyes. Eye detection appears to be more inaccurate, so I made it count if there are 2 eyes detected within the detected face rectangle. The white squares are detected eyes (the label says &#8220;in&#8221;) and the blue squares (&#8220;out&#8221;) are eyes detected outside the face rectangle. The eye detected on the right does creepily look like an eye!</p>
<p><img src="http://slowchop.com/wp-content/uploads/2010/08/eyes-450x337.png" alt="" title="Face and Eyes detected with OpenCV" width="450" height="337" class="alignnone size-medium wp-image-306" /></p>
<p>Once a correct face is detected, the position of the face is moved to the center of the image, so that my head is always in the center for the time lapse. I filtered out any images that didn&#8217;t detect a face or if the face was too small on the screen. I also set it to only pick 10 images per day, ending up with 1280 frames. It took me a weekend to do all of this, and here&#8217;s the video:</p>
<p><iframe class="youtube-player" type="text/html" width="480" height="385" src="http://www.youtube.com/embed/ekGXzbgO7Lg?hl=en_US" frameborder="0"></iframe></p>
<p>All the data is backed up to Amazon S3 just incase the laptop dies, so I plan on continuing this project, possibly for the rest of my life! I&#8217;ll be interested to hear what other ideas you have that I can do with these images. My next plan is to do more frame-average videos similar to the first video posted.</p>
<p>The code for this is fairly messy since it&#8217;s all mostly a hack, but you can <a href="http://github.com/gak/capture/blob/master/opencv/face-to-center">access the script on github</a>. If you have any questions, don&#8217;t hesitate to ask me on twitter: <a href="http://twitter.com/gakman">@gakman</a>.</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2010/08/22/webcam-timelapse-opencv/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Gravit universal binary released for Mac OS X</title>
		<link>https://slowchop.com/2010/08/10/gravit-universal-binary-released-for-mac-os-x/</link>
		<comments>https://slowchop.com/2010/08/10/gravit-universal-binary-released-for-mac-os-x/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 08:53:43 +0000</pubDate>
		<dc:creator><![CDATA[Gerald Kaszuba]]></dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[gravit]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[opengl]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[sdl]]></category>
		<category><![CDATA[visualisation]]></category>

		<guid isPermaLink="false">http://slowchop.com/?p=264</guid>
		<description><![CDATA[Gravit is an Open Source gravity simulator I started writing in 2003 and worked on it in my spare time until about 2005. It&#8217;s written in C and uses OpenGL, SDL and Lua. Even though Gravit has worked on Mac OS X for a while, I didn&#8217;t get around to actually making a bundled application &#8230; <a href="https://slowchop.com/2010/08/10/gravit-universal-binary-released-for-mac-os-x/" class="more-link">Continue reading <span class="screen-reader-text">Gravit universal binary released for Mac OS X</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://gravit.slowchop.com/" class="broken_link">Gravit</a> is an Open Source <a href="http://en.wikipedia.org/wiki/N-body_simulation">gravity simulator</a> I started writing in 2003 and worked on it in my spare time until about 2005. It&#8217;s written in C and uses OpenGL, SDL and Lua.</p>
<p>Even though Gravit has worked on Mac OS X for a while, I didn&#8217;t get around to actually making a bundled application for it until now. Normally you would have had to compile it from source, usually with some tinkering of the source code and build settings.</p>
<p>The UI needs some more work to make it more like an OS X application, but I don&#8217;t have time for it at the moment. For now, here is the <a href="http://gravit.slowchop.com/dist/gravit-0.5.0.dmg" class="broken_link">gravit-0.5.0.dmg universal binary</a> and a <a href="http://gravit.slowchop.com/docs/Tutorial.php" class="broken_link">quick tutorial</a> on using it. Don&#8217;t forget to hold down the fn key when dealing with function keys, and if you have any problems please <a href="http://twitter.com/gakman">tweet</a> them at me. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>https://slowchop.com/2010/08/10/gravit-universal-binary-released-for-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
