<?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>spatial nodes &#187; user interaction</title>
	<atom:link href="http://blog.minst.net/category/user-interaction/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.minst.net</link>
	<description>Thoughts of a lost soul</description>
	<lastBuildDate>Mon, 23 Jan 2012 16:33:44 +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>Timesliding canvas maplayer</title>
		<link>http://blog.minst.net/2012/01/23/timesliding-canvas-maplayer</link>
		<comments>http://blog.minst.net/2012/01/23/timesliding-canvas-maplayer#comments</comments>
		<pubDate>Mon, 23 Jan 2012 16:30:10 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[GIS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[user interaction]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=297</guid>
		<description><![CDATA[After someone saw my BAG building data movie he asked if it would be possible to create an interactive map of the entire Netherlands. This made me think, since creating the movie was a very time consuming action. The problem is that there are about 6 million buildings in the BAG database. This makes the [...]]]></description>
			<content:encoded><![CDATA[<p>After someone saw my BAG building data movie <p><a href="http://blog.minst.net/2012/01/23/timesliding-canvas-maplayer"><em>Click here to view the embedded video.</em></a></p> he asked if it would be possible to create an<a title="Interactive BAG viewer" href="http://bag.edugis.nl/" target="_blank"> interactive map</a> of the entire Netherlands. This made me think, since creating the movie was a very time consuming action. The problem is that there are about 6 million buildings in the <a href="http://bag.vrom.nl">BAG</a> database. This makes the data a bit unwieldy to use directly in the browser. The old fashioned way to do time series on maps involves creating a new layer for each time-moment (year in this case). This would mean that there would be over 150 layers to be loaded on the map and switching between those for the &#8216;time sliding&#8217; effect. Apart from the hideous task to set up 150 almost the same layers, it would end up with too much images for a browser to handle.</p>
<p><span id="more-297"></span>However modern browsers have the &lt;canvas&gt; element. This element allows for the manipulation of single pixels within this element. So I figured if I could encode the building-dates in a PNG and use canvas to display only those pixels which represent a building older than the given date it should be possible to time-slide through the buildings. Fortunately the fancy new mapping library <a href="http://leaflet.cloudmade.com/">Leaflet.js</a> has a canvas tile layer build in. The BAG data is already available through EduGIS, so I only needed it to encode the data differently in the PNGs.</p>
<p>The encoding is very simple: per pixel there are 4 values available: red, green, blue and alpha. Since I only needed to encode 200-odd values I used just the red value. The years before 1850 are encoded as groups, since the data is so sparse, after 1850 each year is individually encoded. This means that from 1850 onwards the red value increases with 1. The client retrieves the encoded PNGs as normal tiles and look like this: <img class="alignright" title="Encoded BAG tile" src="http://bag.edugis.nl/tiles/tilecache.py/ibag/14/8416/10998.png" alt="" width="256" height="256" /></p>
<p>The image appears grey because I kept the green and blue values of the PNG the same as the red. This image is loaded into canvas and the imageData is retrieved using ctx.getImageData(0, 0, 256, 256) and stored as a jQuery data object on the canvas. This is important, since for visual effect we will manipulate the imageData on the canvas and we want to keep track of the original values. Once the imageData is attached to the canvas the colors are being calculated. It will take the original values, compares them to the current year and will decide whether or not to show the pixel and in which color.</p>
<p>Since only the grey tile is needed, the actual sliding through time is really fast because it doesn&#8217;t need to retrieve more data. With 4 bands of 255 values each you can encode an insane amount of data into a PNG, readily available through canvas for direct manipulation. Apart from time sliding, is detailed representation of DEM data an obvious use case.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2012/01/23/timesliding-canvas-maplayer/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Working Microsoft Surface</title>
		<link>http://blog.minst.net/2009/01/20/working-microsoft-surface</link>
		<comments>http://blog.minst.net/2009/01/20/working-microsoft-surface#comments</comments>
		<pubDate>Tue, 20 Jan 2009 11:16:53 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[user interaction]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[werk]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=155</guid>
		<description><![CDATA[Happy as we were with our new Surface we forgot the basic rule of Windows related problems; reboot if in trouble. We spend quite some time calibrating, recalibrating and reading documentation from the invite only Microsoft site without any effect. In the end Vista asked us to install an update and to reboot the Surface. [...]]]></description>
			<content:encoded><![CDATA[<p>Happy as we were with our new Surface we forgot the basic rule of Windows related problems; reboot if in trouble.</p>
<p>We spend quite some time calibrating, recalibrating and reading documentation from the invite only Microsoft site without any effect. In the end Vista asked us to install an update and to reboot the Surface. When it was rebooted we ran the &#8216;Surface Shell&#8217; application from the Desktop and suddenly it worked!!</p>
<p>The Surface, or at least our version, comes with a set of code examples. We tried several to see how well it works and found out that especially the Grand Piano demo is a crowd drawer (mainly due to the sound probably). The Piano is a limited set of piano keys in perspective view. &#8216;Pressing&#8217; a key results in a tone, just like a real piano <img src='http://blog.minst.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div class="wp-caption alignnone" style="width: 310px"><a href="http://farm4.static.flickr.com/3434/3209077185_afb64c9931_b.jpg" rel="lightbox[155]"><img title="Grand Piano on the Surface" src="http://farm4.static.flickr.com/3434/3209077185_afb64c9931_b.jpg" alt="Playing piano on a Surface" width="300" height="200" /></a><p class="wp-caption-text">Playing piano on a Surface</p></div>
<p><span id="more-155"></span>The sensitivity of the Surface is well balanced. The Surface doesn&#8217;t notice fingers which are hovering just above the surface and you don&#8217;t need to apply any pressure to get noticed once you touch it. We&#8217;ve built our own table using a similar <a href="http://en.wikipedia.org/wiki/Total_internal_reflection#Frustrated_total_internal_reflection">FTIR</a> technique and we had quite some problems getting that balance right. Also the Surface is using 5 camera&#8217;s where we used just one as such it&#8217;s resolution is better as well.</p>
<p>It has additional logic in the interpretation of the camera feeds. It has three different types of touches it can recognize: finger, blob and tag. From each type it gives a location, an orientation, an id and in case of the tags a value.</p>
<div id="attachment_156" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/20090120-20090120-_dsc0004.jpg" rel="lightbox[155]"><img class="size-medium wp-image-156" title="Finger touch" src="http://blog.minst.net/wp-content/uploads/2009/01/20090120-20090120-_dsc0004-300x200.jpg" alt="Surface information of a finger" width="300" height="200" /></a><p class="wp-caption-text">Surface information of a finger</p></div>
<p>The difference between a blob and a finger is the size and shape of the touch, for instance a small square object is seen as a blob and a larger oval object is seen as a finger. Furthermore the earlier white-only bias of the Surface we experienced is now changed to a no-black bias. This gives some interesting results; a black/orange marker on the surface is recognized as a single finger at the tip of the marker;</p>
<div id="attachment_157" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/20090120-20090120-_dsc0016.jpg" rel="lightbox[155]"><img class="size-medium wp-image-157" title="20090120-20090120-_dsc0016" src="http://blog.minst.net/wp-content/uploads/2009/01/20090120-20090120-_dsc0016-300x200.jpg" alt="Fingers come in strange shapes" width="300" height="200" /></a><p class="wp-caption-text">Fingers come in strange shapes</p></div>
<p>The Surface feels pretty responsive, but using the Data Visualizer you notice that the position of the touch as interpreted by the Surface lags behind the actual touch. In the demos it is not noticeable but we found a similar lag very annoying on the DiamondTouch. On that table we managed to get rid of the lag and hopefully we can do the same here.</p>
<p>There is the famous demo of the telephone on the Surface, where it gets recognised and you can drag and drop data. We tried it and noticed that it doesn&#8217;t like android phones; it just doesn&#8217;t see the phone. An (ancient) windows mobile phone however does get recognised for what it is: a blob;</p>
<div id="attachment_158" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/20090120-20090120-_dsc0012.jpg" rel="lightbox[155]"><img class="size-medium wp-image-158" title="20090120-20090120-_dsc0012" src="http://blog.minst.net/wp-content/uploads/2009/01/20090120-20090120-_dsc0012-300x200.jpg" alt="Android on the Surface" width="300" height="200" /></a><p class="wp-caption-text">Android on the Surface</p></div>
<p>Obviously the Surface doesn&#8217;t automagically recognize phones or any other object. The table comes with a set of <a href="http://en.wikipedia.org/wiki/Fiduciary_marker">fiducials</a> which you can stick on objects. These fiducials get recognised as tags with a value and using that value you can do fun stuff in your software.</p>
<p><strong>Update</strong></p>
<p>I discovered that while it doesn&#8217;t respond to hovering fingers, it does notice hovering areas the size of a hand. Which is slightly annoying since in normal use you easily have your hand hovering just above the surface while one or more fingers touch it. It might be possible to filter this unwanted behavior in real applications, because the hand shows up as a blob instead of a finger.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2009/01/20/working-microsoft-surface/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft Surface</title>
		<link>http://blog.minst.net/2009/01/16/microsoft-surface</link>
		<comments>http://blog.minst.net/2009/01/16/microsoft-surface#comments</comments>
		<pubDate>Fri, 16 Jan 2009 17:43:46 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[user interaction]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=147</guid>
		<description><![CDATA[Today the Microsoft Surface arrived, finally. They arrived in big boxes suggesting big tables, but alas they are actually pretty small. Microsoft envisages them as lounge table, as such they are very low, too low to sit comfortably on a normal chair. Being used to the Circle12 DiamondTouch, the Surface is both small and heavy. [...]]]></description>
			<content:encoded><![CDATA[<p>Today the Microsoft Surface arrived, finally. They arrived in big boxes suggesting big tables, but alas they are actually pretty small. Microsoft envisages them as lounge table, as such they are very low, too low to sit comfortably on a normal chair. Being used to the Circle12 DiamondTouch, the Surface is both small and heavy. Weighing about 80kg it is difficult to move it and the actual display area is about half the size of the DiamondTouch.</p>
<p>We were supposed to have two normal and one developer edition but it wasn&#8217;t very clear which one was which so we picked one and carried it to our office. This turned out to quite tricky, this thing is heavy and doesn&#8217;t have any clear handles. In the end we carried it by holding the projection-surface &#8230;</p>
<p>Once setup we had to fiddle a bit to get the powercable connected and find the proper (two) powerswitches. Once it booted it prompted us an EULA we had to accept. However the Surface is designed to be a standalone machine completely controlled by touch but before the touch was working we had to accept the EULA, which was only accessible by touch &#8230; hm</p>
<div id="attachment_148" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/dscn0274.jpg" rel="lightbox[147]"><img class="size-medium wp-image-148" title="EULA for the Surface" src="http://blog.minst.net/wp-content/uploads/2009/01/dscn0274-300x225.jpg" alt="You need to accept to start touch, and you need touch to accept" width="300" height="225" /></a><p class="wp-caption-text">You need to accept to start touch, and you need touch to accept</p></div>
<p><span id="more-147"></span>So we had to plug in a mouse, but apparently we hadn&#8217;t chosen the developer edition since no usb ports where visible. The manual explained that we need to open up the side of the table to access the ports. After two screws and a bit of force we managed to open up the side and it gave us full access to all normal PC ports.</p>
<div id="attachment_149" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/dscn0276.jpg" rel="lightbox[147]"><img class="size-medium wp-image-149" title="Surface ports" src="http://blog.minst.net/wp-content/uploads/2009/01/dscn0276-300x225.jpg" alt="The surface insides" width="300" height="225" /></a><p class="wp-caption-text">The surface insides</p></div>
<p>It asked us to create an admin account and once it was setup it gave us the choice to login as that admin or as TableUser, since we had no clue what the password for TableUser was, we logged in as admin.  After a bit we were shown a fresh Vista desktop with a few shortcuts. The most obvious for us was the calibration tool. We calibrated our table and started a touch application. It failed to run complaining that the filtergraph was not found at the location specified. We neither had knew what a filtergraph was, nor what the location specified was.  This got us stuck for quite a while, the manuals didn&#8217;t help and the online site with information was only accessible by invitation and due to some miscommunication(?) we were not (yet) invited.</p>
<p>Digging into things like registries, hidden folders and binary blobs we finally discovered that there are two versions of the calibration tool. One which does a background-light calibration and one which does a per camera calibration. We had run both, but we failed to notice that the latter had to run 5 times (5 cameras in the surface). Once we had done so the different surface programs ran without errors and without effect.</p>
<p>Pretty annoyed we banged our fist on the table and that seemed to have effect. It turned out that putting a lot of force on the table gave results, indicating a calibration issue. Having no idea how to finetune the calibration we started to experiment with different ways of touching. The current consensus is that it is designed for ubergeeks who never see the sun and are pure white; touching the Surface with a finger doesn&#8217;t give a result, wrapping the finger in white tissue suddenly does &#8230;</p>
<div id="attachment_150" class="wp-caption alignnone" style="width: 310px"><a href="http://blog.minst.net/wp-content/uploads/2009/01/dscn0556.jpg" rel="lightbox[147]"><img class="size-medium wp-image-150" title="The subsurface pond" src="http://blog.minst.net/wp-content/uploads/2009/01/dscn0556-300x225.jpg" alt="The 'attract' application" width="300" height="225" /></a><p class="wp-caption-text">The &#39;attract&#39; application</p></div>
<p>Hopefully we will figure out soon how to tweak the calibration and otherwise we need to buy a set of white surgical gloves to hand out to users <img src='http://blog.minst.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><img src="file:///H:/DCIM/100NIKON/DSCN0274.JPG" alt="" /></p>
<p><img src="file:///H:/DCIM/100NIKON/DSCN0274.JPG" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2009/01/16/microsoft-surface/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OSGeo dances the Tango</title>
		<link>http://blog.minst.net/2008/12/23/osgeo-dances-the-tango</link>
		<comments>http://blog.minst.net/2008/12/23/osgeo-dances-the-tango#comments</comments>
		<pubDate>Tue, 23 Dec 2008 10:35:21 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[user interaction]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/12/23/osgeo-dances-the-tango</guid>
		<description><![CDATA[I finally did the right thing and emailed OSGeo that I&#8217;ve stopped coding and would like to use my designer skills instead. I was pointed to this wiki which pointed me to the site of Robert Szczepanek. He had created an entire iconset for QGIS inspired by the tango rules. I contacted him and he [...]]]></description>
			<content:encoded><![CDATA[<p>I finally did the right thing and emailed OSGeo that I&#8217;ve stopped coding and would like to use my designer skills instead. I was pointed to this <a href="http://wiki.osgeo.org/wiki/OSGeo_map_symbol_set">wiki </a>which pointed me to the <a href="http://robert.szczepanek.pl/icons.php">site </a>of Robert Szczepanek. He had created an entire iconset for QGIS inspired by the <a href="http://tango.freedesktop.org/Tango_Desktop_Project">tango </a>rules. I contacted him and he was very much interested to extend his work for a broader iconset for the OSGeo community. So where I expected to start from scratch I&#8217;m kickstarted to the point that I have to think of secondlevel issues like hosting, naming-schemes etc.</p>
<p>Still I&#8217;m very much excited by the prospect of creating beautiful GIS applications and so far I&#8217;ve had enthousiast reactions from developers as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/12/23/osgeo-dances-the-tango/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Showing private data on a public touch table</title>
		<link>http://blog.minst.net/2008/11/05/showing-private-data-on-a-public-touch-table</link>
		<comments>http://blog.minst.net/2008/11/05/showing-private-data-on-a-public-touch-table#comments</comments>
		<pubDate>Wed, 05 Nov 2008 17:43:18 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[user interaction]]></category>
		<category><![CDATA[Surface]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/11/05/showing-private-data-on-a-public-touch-table</guid>
		<description><![CDATA[Designing interfaces for multi-touch tabletop computers; Basic animation of hiding a card from view After watching the Secondlight demo from Microsoft, Johan came up with an idea to show &#8216;private&#8217; information on a touchtable. For instance during a board game on the table a player wants to view his private stack of cards. In a [...]]]></description>
			<content:encoded><![CDATA[<p>Designing interfaces for multi-touch tabletop computers;</p>
<p><img src="http://blog.minst.net/wp-content/uploads/2008/11/hide.gif" alt="Showing private data on a public table" /></p>
<p><em>Basic animation of hiding a card from view</em></p>
<p><em><span id="more-128"></span><br />
</em></p>
<p>After watching the <a href="http://www.youtube.com/watch?v=D5NrdoJvu9s" target="_blank">Secondlight </a>demo from Microsoft, Johan came up with an idea to show &#8216;private&#8217; information on a touchtable. For instance during a board game on the table a player wants to view his private stack of cards. In a traditional game he would have his cards turned upside down and would view them behind his hand. This behaviour can be mimiced on the table as well. If the user puts the side of his hand on the table the table can show the card within the confines of his hand.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/11/05/showing-private-data-on-a-public-touch-table/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wiion – the movie</title>
		<link>http://blog.minst.net/2008/09/08/wiion-the-movie</link>
		<comments>http://blog.minst.net/2008/09/08/wiion-the-movie#comments</comments>
		<pubDate>Mon, 08 Sep 2008 19:02:16 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[user interaction]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[WII]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/09/08/wiion-the-movie</guid>
		<description><![CDATA[I&#8217;ve created a movie about the wiion game mentioned before. The movie only shows the process of finding and repairing one leak, in the real game there are a total of 3 leaks in 3 out of 4 different maps. We got green light for buying a new camcorder and I hope the next movie [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve created a movie about the wiion game mentioned before. The movie only shows the process of finding and repairing one leak, in the real game there are a total of 3 leaks in 3 out of 4 different maps. We got green light for buying a new camcorder and I hope the next movie I&#8217;ll show will be shot on the <a href="http://www.usa.canon.com/consumer/controller?act=ModelInfoAct&amp;fcategoryid=177&amp;modelid=17384">Canon HF11 </a> <img src='http://blog.minst.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<p><a href="http://blog.minst.net/2008/09/08/wiion-the-movie"><em>Click here to view the embedded video.</em></a></p></p>
<p><em>The movie, voiced over by Geodans own Barry White <img src='http://blog.minst.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/09/08/wiion-the-movie/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wii-on game</title>
		<link>http://blog.minst.net/2008/08/22/wii-on-game</link>
		<comments>http://blog.minst.net/2008/08/22/wii-on-game#comments</comments>
		<pubDate>Fri, 22 Aug 2008 10:25:08 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[user interaction]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[WII]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/08/22/wii-on-game</guid>
		<description><![CDATA[To present the new WION service which Geodan set up with its partners we, Geodan Research, were asked to create a nice WION related game. WION services is about preventing digging up cables and other underground infrastructure. The game will be used during conferences at the booth as a public-magnet. Animation showing the original map [...]]]></description>
			<content:encoded><![CDATA[<p>To present the new <a href="http://www.wionservices.nl/nl/" target="_blank">WION</a> service which Geodan set up with its partners we, Geodan Research, were asked to create a nice WION related game. WION services is about preventing digging up cables and other underground infrastructure. The game will be used during conferences at the booth as a public-magnet.</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2008/08/heusden1.gif" rel="lightbox[123]"><img src="http://blog.minst.net/wp-content/uploads/2008/08/heusden1.gif" alt="Creating a game map" width="306" height="229" /></a></p>
<p><em>Animation showing the original map and the final map</em></p>
<p><img title="More..." src="http://blog.minst.net/wp-includes/js/tinymce/plugins/wordpress/img/trans.gif" alt="" /></p>
<p><span id="more-123"></span></p>
<p>So we came up with a Wii-mote based game which is both simple and fun, at least we hope. You are presented with four maps in sequence. Each map has various cables and tubes hidden under streets and parks. You point the Wii-mote at the screen and a &#8216;searchlight&#8217; appears which allows you to look underground. Somewhere on the map there is a breach which you have to fix. Once you find the breach, you need to dig a hole using your Wii-mote. Once you have created a deep enough hole you need to fix it. This is done by hammering the broken tube until it is fixed, again with the Wii-mote. The time it took to find and fix all 4 breaches is your score.</p>
<p>We use an opensource library which allows to connect the Wii-mote to XNA and build the game with XNA. My task was obviously to help to design the game and do the in-game graphics. Since we only had a week time we opted for a simple style. To create the four background maps I selected four towns on a map and traced them in Inkscape to get a simplified and colorful version. Next I draw a few cables (yellow) and tubes (blue). Finally I selected 20 points where a breach could occur.</p>
<p>To dig and to fix the player has to make either a dig or a hammer motion with the Wii-mote. We use the <a href="http://blog.minst.net/2008/07/18/wii-mote-readings" target="_blank">accelerometer</a> to determine if the player is digging/hammering hard enough. He has to do it 4 times and the progress is shown as a simple animation:</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2008/08/graven.gif" rel="lightbox[123]"><img src="http://blog.minst.net/wp-content/uploads/2008/08/graven.gif" alt="Fixing in the wii-on game" width="304" height="228" /></a></p>
<p><em>Fixing animation</em></p>
<p>I hope to have a movie of people playing the game soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/08/22/wii-on-game/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wii-mote readings</title>
		<link>http://blog.minst.net/2008/07/18/wii-mote-readings</link>
		<comments>http://blog.minst.net/2008/07/18/wii-mote-readings#comments</comments>
		<pubDate>Fri, 18 Jul 2008 12:02:59 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[user interaction]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[WII]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/07/18/wii-mote-readings</guid>
		<description><![CDATA[We are asked to develop a short game which is controlled with the Wii-controller. Since it is expensive and not too easy to develop for the Wii itself (you require a SDK from Nintendo and permissions once the game is finished) we decided to develop it on the PC. It is possible to connect your [...]]]></description>
			<content:encoded><![CDATA[<p>We are asked to develop a short game which is controlled with the Wii-controller. Since it is expensive and not too easy to develop for the Wii itself (you require a SDK from Nintendo and permissions once the game is finished) we decided to develop it on the PC. It is possible to connect your Wii-mote with the PC using bluetooth. There are multiple libraries to do so.</p>
<p>I was curious what kind of feedback you get from the Wii-mote and where it fails (in light of the news about the Wii motion plus). There are some issues around getting your Wii-mote connected to a PC by bluetooth, not every stack is good, nor areall bluetooth chipsets, however the MacBook supports the Wii-mote out of the box. So I connected the Wii-mote to my MacBook instead and used the <a href="http://sourceforge.net/projects/darwiin-remote/">DarwiinRemote</a> application to get a reading from the sensors.</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2008/07/wiimote.png" title="Wiimote-graph" rel="lightbox[100]"><img src="http://blog.minst.net/wp-content/uploads/2008/07/wiimote.thumbnail.png" alt="Wiimote-graph" /></a></p>
<p><em>DarwiinRemote sensor readings.</em></p>
<p>The wii-mote is equiped with an <a href="http://en.wikipedia.org/wiki/Accelerometer">accelerometer</a>, which does <strong>not</strong> record the position of the wii-mote. What is does is that it records the different forces (accelerations) that are applied to the controller. So in rest it will record a force of 1G down (z= -1). If you hold the controller upside down it will record a force of 1G up (z = 1)  (seen from the point of view of the controller). If you hold it on its side the reading will be x=1 or x=-1 or y=1 or y= -1, depending on the side. The other axis will be 0 in rest. Actually since in rest the only force acting on the controller is earth gravitation, which is 1, the absolute sum of the forces on x, y and z will be 1.</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2008/07/3modes.png" title="Wii sensor in three orientations" rel="lightbox[100]"><img src="http://blog.minst.net/wp-content/uploads/2008/07/3modes.thumbnail.png" alt="Wii sensor in three orientations" /></a></p>
<p><em>Wii sensor reading in three orientations.</em></p>
<p>With this knowledge you can deduce the orientation of the Wii-mote from the readings above. In the beginning the Wii-mote is held horizontal pointing forward (blue line at -1). Then the Wii-mote is rotated along its body, the left side is pointing up (red line at 1). Finally the Wii-mote is pointing downward (green line at 1). Note that we do not know how the Wii-mote is pointing downwards (whether the buttons facing forward or sideways). When you start moving the Wii-mote the forces applied on the Wii-mote easily surpass the 1G and when that happens it is much more difficult to deduce the orientation. The new Wii-motion Plus extension is supposed to solve this problem. From what I&#8217;ve <a href="http://www.gametrailers.com/player/36624.html">seen</a> and <a href="http://www.invensense.com/news/071508.html">read</a> it most likely will use a <a href="http://en.wikipedia.org/wiki/Gyroscope">gyroscope</a> to calculate the orientation of the Wii-mote regardless of the forces applied to it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/07/18/wii-mote-readings/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using blend</title>
		<link>http://blog.minst.net/2008/07/08/using-blend</link>
		<comments>http://blog.minst.net/2008/07/08/using-blend#comments</comments>
		<pubDate>Tue, 08 Jul 2008 10:10:18 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[user interaction]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[TableTop]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/07/08/using-blend/</guid>
		<description><![CDATA[For various projects I&#8217;ve been using Microsoft Expression Blend to do the interface design while Paul and/or Van Exel were coding. Blend is part of a bigger set of tools, called Microsoft Expression Studio. As the experienced Visual Studio people can see, it is using the same .sln files as Visual Studio. However, there&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>For various projects I&#8217;ve been using<a href="http://www.microsoft.com/expression/products/Overview.aspx?key=blend"> Microsoft Expression Blend</a> to do the interface design while <a href="http://pauldendulk.com/">Paul</a> and/or <a href="http://schaaltreinen.nl/">Van Exel</a> were coding. Blend is part of a bigger set of tools, called <a href="http://www.microsoft.com/expression/products/Overview.aspx?key=studio">Microsoft Expression Studio. </a>As the experienced Visual Studio people can see, it is using the same .sln files as Visual Studio. However, there&#8217;s a <a title="blend bug" href="http://www.directorforum.de/showthread.php?t=70557">major bug</a> in Blend involving multiple projects within a solution. It automatically takes the first project in the solution file as  the startup project, regardless whether or not you set that as startup project in VS.</p>
<p><a title="PlectraeMenu in Blend" href="http://blog.minst.net/wp-content/uploads/2008/07/blend.png" rel="lightbox[98]"><img src="http://blog.minst.net/wp-content/uploads/2008/07/blend.png" alt="PlectraeMenu in Blend" width="304" height="279" /></a></p>
<p><em>&#8216;Onderwater scherm&#8217; of the PlectraeMenu</em></p>
<p><span id="more-98"></span>Once you managed to get the solution file to work with Blend (manually moving the correct project to the top of the list in the .sln file), it is major fun. It has a split screen which resemblesÂ  the <a href="http://en.wikipedia.org/wiki/Image:Corel_WordPerfect_X3_Reveal_Codes_screenshot.png" rel="lightbox[98]">reveal codes</a> screen of word perfect, back in the day. The drawing tools are quite good, not as good as inkscape, but since you can edit the XML as well you can copy the exact coordinates over from the SVG. It would be nicer if you could import the SVG directly though. To be honest, Blend is not designed to be a real graphic design tool, <a href="http://www.microsoft.com/expression/products/Overview.aspx?key=design">MS Ex. Design</a> is. I guess the proposed workflow is that you do your design in Design and then export that to Blend to integrate your design with C# code. I do my design in Inkscape and then import that to Blend so it&#8217;s not that much different, just a bit more hassle to get the design in.</p>
<p>Blend is the interaction tool of the Expression set and it shows. You can create animations (storyboards) and bind them to events (left top corner in the screenshot) on any object. Furthermore you can use databinding so the coders just manipulate the content inside the databinding without editing the XAML. On the other hand you can change anything in the XAML as long as the databinding stays intact. This way you can work parallel with the coders, their changes showup in you project and yours in their without (too much) interference.</p>
<p>This approach present some new problems though. Since you can do a lot in XAML regarding events and actions, but you can do everything from code aswell, you really need to think where the line of seperation is. You are forced to sit next to the coders and discuss what is done in code and what in XAML, where to use templates and databinding and what XAMLs to create. Since we are all new to WPF we still need to learn what can be done in XAML and what is better done in code. Looking back to the last three projects the general trend is that more and more is moved to XAML, but that is probably due to our previous non-existant knowledge of the possibilities of XAML.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/07/08/using-blend/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two handed physics</title>
		<link>http://blog.minst.net/2008/04/18/two-handed-physics</link>
		<comments>http://blog.minst.net/2008/04/18/two-handed-physics#comments</comments>
		<pubDate>Fri, 18 Apr 2008 09:57:41 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[user interaction]]></category>
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/04/18/two-handed-physics/</guid>
		<description><![CDATA[Designing interfaces for multi-touch tabletop computers; Asymmetrical bimanual touch gestures. Lynn pointed out earlier; &#8216;two handed interaction IS useful for many things&#8216;. Bill Buxton has written a chapter on two handed input in his work in progress book on human input to computer systems. Here he states that the common view that human manual actions [...]]]></description>
			<content:encoded><![CDATA[<p>Designing interfaces for multi-touch tabletop computers;</p>
<p><img src="http://blog.minst.net/wp-content/uploads/2008/04/tt-twohanded.gif" alt="Two handed physics" /></p>
<p><em>Asymmetrical bimanual touch gestures.</em></p>
<p><em><span id="more-55"></span></em>Lynn pointed out earlier; &#8216;<em>two handed interaction IS useful for many things</em>&#8216;. Bill Buxton has written a chapter on two handed input in his work in progress <a title="buxton" href="http://www.billbuxton.com/inputManuscript.html">book</a> on human input to computer systems. Here he states that the common view that human manual actions are generally unimanual is mistaken. Handwriting for instance is almost always seen as a one-handed activity, but in practice the non-dominant hand is used to hold the paper and as such forms a frame of reference. This bimanual task is asymmetric; the dominant hand is doing the precise work and the non-dominant hand frames the location. So I&#8217;ve been thinking how to implement two handed interaction.</p>
<p>Most examples I know which implement two handed touch interfaces use symmetrical  actions. The left hand is doing the same as the right hand, or in case of the iPhone they are fingers of the same hand. I&#8217;m more interested in asymmetrical bimanual actions, preferably using physics. These mirror the natural way we use our hands in different tasks, or at least I hope so.</p>
<p>My initial brainstorm somewhere late at night gave me two possible implementations. Using you left hand to fix the object you are manipulating and the right hand to rotate it. This way you can rotate it around a different point than its centroid (lower action). This actions very much mirrors the two multi-touch rotation I disliked earlier <img src='http://blog.minst.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Another implementation is to use the left hand to hold the object and the right hand to scroll its content. (upper action). This action doesn&#8217;t have a very clear added value over more traditional approaches either, but it is a start. One benefit of this approach is that you can manipulate both the object and the content without the need of titlebars and scrollbars.</p>
<p><img src="http://blog.minst.net/wp-content/uploads/2008/04/tt-twohanded.gif" alt="Two handed physics" /></p>
<p><em>Two examples of asymmetrical bimanual touch gestures.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/04/18/two-handed-physics/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

