<?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; TableTop</title>
	<atom:link href="http://blog.minst.net/category/tabletop/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.minst.net</link>
	<description>Thoughts of a lost soul</description>
	<lastBuildDate>Fri, 16 Jul 2010 16:24:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Surface glitches</title>
		<link>http://blog.minst.net/2009/02/18/surface-glitches</link>
		<comments>http://blog.minst.net/2009/02/18/surface-glitches#comments</comments>
		<pubDate>Wed, 18 Feb 2009 11:26:43 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[bastet]]></category>
		<category><![CDATA[work]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Surface]]></category>
		<category><![CDATA[wpf]]></category>

		<guid isPermaLink="false">http://blog.minst.net/?p=169</guid>
		<description><![CDATA[We&#8217;ve got the surface for a while now and have written our first real application. It is based on BruTile and allows you to show various maps, zoom and pan. We created a short movie to show it:
BruTile @ the Surface
Once we got the basics running I tried to edit the XAML to make it [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve got the surface for a while now and have written our first real application. It is based on <a href="http://www.codeplex.com/brutile">BruTile </a>and allows you to show various maps, zoom and pan. We created a short movie to show it:</p>
<p><a href="http://www.youtube.com/watch?v=Fawfagg-BIg">BruTile @ the Surface</a></p>
<p>Once we got the basics running I tried to edit the XAML to make it look better. This turned out to be harder than expected. The surface has once again its own default designs, which in my opinion are worse than the WPF standard designs. The default look is grey and square. So I wanted to change it to something more akin to our other touchtable applications: white and round. However <a href="http://pauldendulk.com/">Paul </a>used a ScatterView component to display the layerlist and the geodan logo. He had read that one can just drop components in a ScatterView, without the need to embed them in ScatterViewItems. This is true, but it is a nightmare for the (non-initiated) designer. What happens is that the grey-square design of the ScatterViewItem is drawn beneath any layout you come up with for your own item. This is a very puzzling behaviour, although not entirely unexpected once you know that the ScatterViewItem exists.</p>
<p>Once I solved this issue I could seriously try to change the layout of the ScatterViewItems. Here however real glitches appeared. We use rounded borders and dropshadows for our items. As you can see below there are (at least) two issues:</p>
<div id="attachment_171" class="wp-caption alignnone" style="width: 603px"><a href="http://blog.minst.net/wp-content/uploads/2009/02/surface-artefact1.png"><img class="size-full wp-image-171" title="surface-artefact1" src="http://blog.minst.net/wp-content/uploads/2009/02/surface-artefact1.png" alt="Rounded border on the Surface don't work" width="593" height="491" /></a><p class="wp-caption-text">Rounded border on the Surface don&#39;t work</p></div>
<p>The dark rectangle in the top of the image is actually a shadow of  a ScatterViewItem which for some reason doesn&#8217;t start below it. However this makes it easy to see the first glitch in the rendering. As you can see there is a thin dark line near the edge, which makes a weird square corner at the corner. This shouldn&#8217;t be there and when you resize the ScatterViewItem down, the shadow becomes darker (as it should have been in the first place) and the line is not visible anymore. If you don&#8217;t use rounded corners on the shadow the line is still there, but harder to notice because it is exactly following the edge of the shadow.</p>
<p>The second annoying glitch I&#8217;ve found is the gap between the border and the content. If we zoom in a bit on the layercontrol you can see there is a pixel space between the border and the content:</p>
<div id="attachment_170" class="wp-caption alignnone" style="width: 603px"><a href="http://blog.minst.net/wp-content/uploads/2009/02/surface-artefact2.png"><img class="size-full wp-image-170" title="surface-artefact2" src="http://blog.minst.net/wp-content/uploads/2009/02/surface-artefact2.png" alt="A gap between border and content" width="593" height="225" /></a><p class="wp-caption-text">A gap between border and content</p></div>
<p>So far I haven&#8217;t been able to eliminate the pixel wide gap. It doesn&#8217;t look bad in our application right now, but in general it is bad that there is such an uncontrollable gap. So I have the feeling that the Surface people are not a big fan of borders in general and rounded border specifically. <img src='http://blog.minst.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2009/02/18/surface-glitches/feed</wfw:commentRss>
		<slash:comments>1</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. When [...]]]></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: 512px"><a href="http://farm4.static.flickr.com/3434/3209077185_afb64c9931_b.jpg"><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="502" height="335" /></a><p class="wp-caption-text">Playing piano on a Surface</p></div>
<p>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"><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"><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"><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"><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>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"><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"><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>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[user interaction]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/11/05/showing-private-data-on-a-public-touch-table</guid>
		<description><![CDATA[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 traditional game he would have his cards turned upside down and would view them [...]]]></description>
			<content:encoded><![CDATA[<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>
<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>
]]></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>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>

		<guid isPermaLink="false">http://blog.minst.net/2008/04/18/two-handed-physics/</guid>
		<description><![CDATA[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 are generally unimanual is mistaken. Handwriting for instance is almost [...]]]></description>
			<content:encoded><![CDATA[<p>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 href="http://www.billbuxton.com/inputManuscript.html" title="buxton">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><span id="more-55"></span> 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.<br />
</em></p>
<p>more to come&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/04/18/two-handed-physics/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Physics in touch</title>
		<link>http://blog.minst.net/2008/04/09/physics-in-touch</link>
		<comments>http://blog.minst.net/2008/04/09/physics-in-touch#comments</comments>
		<pubDate>Wed, 09 Apr 2008 13:37:44 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[user interaction]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/04/09/physics-in-touch/</guid>
		<description><![CDATA[The whole point of interface design is to create a natural/intuitive interface. However, since computers are not natural by definition it is hard to decide what is natural. In the classic WIMP interface the desktop has been used as a metaphor to design the interaction with the computer.  Commonly a traditional desktop is horizontal [...]]]></description>
			<content:encoded><![CDATA[<p>The whole point of interface design is to create a natural/intuitive interface. However, since computers are not natural by definition it is hard to decide what is natural. In the classic <a href="http://en.wikipedia.org/wiki/WIMP_%28computing%29" title="wikipedia">WIMP</a> interface the desktop has been used as a metaphor to design the interaction with the computer.  Commonly a traditional desktop is horizontal and a computer screen is vertical. This and many other shortcomings of the metaphor creates a mental gap which has to be bridged by training. This training has <a href="http://en.wikipedia.org/wiki/Cognitive_dissonance" title="This altered perception turns into cognitive dissonance according to Alan Cooper">altered our perception</a> of &#8216;natural&#8217; or intuitive interfaces for computers. For the trained user it makes sense that pressing the right mouse button pops up a context menu. Also it is only possible to move a window by dragging its handle bar and it is not possible to rotate a window. Obviously the desktop-metaphor can only go so far. There is no such thing as a menu on a classic desktop, not can one resize a piece of paper easily. It is not hard to point out the short comings of the WIMP interface, nor is it very difficult to create a &#8216;better&#8217; interface. Unfortunately the average user is used to the Windows interface and invested a serious amount of time to be able to navigate it. So any new interface that works with similar in-/output devices as the standard PC has to unlearn the Windows way and learn the new way. Obviously this is quite a hurdle for people and as such new interfaces seldom survive let alone go main stream.</p>
<p>Enter tabletop computing&#8230;</p>
<p>Since tabletop computing hasn&#8217;t developed a standard interface, yet, we still have a chance to create new metaphors which will stick. Apple has managed to get a serious grip on multi-touch interface design. Many people believe that the multi-touch interface has empowered the designer to create such a novel interface. However it is my believe that only a few actions really need multi-touch, zooming being one. I don&#8217;t think people really want to use two hands to control a computer when they can do it with one hand. Since tabletop computing is much more akin to the classic desktop we can have another look at this metaphor. To rotate a piece of paper you don&#8217;t put your two index fingers on the sheet of paper and start rotating. If you want to rotate it 180degrees you probably don&#8217;t even try to turn it out of your wrist. Instead you grab it at a corner and give it a twist. &#8211; <em>To be honest, since you can manipulate the piece of paper in 3D it is most likely that you grab the piece of paper from the table and turn it in the air <img src='http://blog.minst.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </em> -</p>
<p>However if we stick to the concept of 2D manipulation we can use it to enhance the current metaphor. Even if you don&#8217;t know <a href="http://en.wikipedia.org/wiki/Newton's_laws_of_motion" title="I'm a big fan of the 1st">Newton&#8217;s laws of motion,</a> you still expect them to work. Turning a piece of paper by putting a finger in the corner and moving it, whilst counting on the inertia and drag of the paper to rotate instead of translate the paper doesn&#8217;t require any degree in physics. Few people would know which forces are at work on the paper, even fewer do care, only the result counts. Why does one not use a multi-touch gesture as used in the iPhone? Basically because it is more complicated. Look at the very simple animation below. The upper user is using physics to turn its object, while the lower user is using multi-touch. As you can see the upper user can keep on spinning if he likes, while the lower user runs into a wrist issue.</p>
<p><img src="http://blog.minst.net/wp-content/uploads/2008/04/physics-rotate1.gif" alt="Rotating with and without physics" /></p>
<p><em>manipulating object with and without pysics</em></p>
<p>While in real life we don&#8217;t need to understand the Newtonian laws to be able to use them, in the software world it is not that simple. Since there is no natural gravity within the computer, the Newtonian laws don&#8217;t apply naturally either. We need to introduce physics into the GUI. Fortunately physics is very important in current games and a lot of effort has been put in creating physics engines which recreate the Newtonian world of physics in the virtual world of the computer. We are planning to use <a href="http://www.codeplex.com/FarseerPhysics">Farseer</a>, since it is both open source and runs in C#. Having physics at our finger tips we can create much cooler interfaces. Instead of having two seperate actions to translate and rotate an object, you can do it in one fluid motion (upper user). Moving an object is also much easier, just give it a push in the right direction (lower user).</p>
<p><img src="http://blog.minst.net/wp-content/uploads/2008/04/physics.png" alt="Physics in tabletop computing" /></p>
<p><em>Using physics to manipulate objects &#8211; please note that the third hand of the lower user doesn&#8217;t touch the table anymore -</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/04/09/physics-in-touch/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Multi-user mini-maps</title>
		<link>http://blog.minst.net/2008/03/12/multi-user-mini-maps</link>
		<comments>http://blog.minst.net/2008/03/12/multi-user-mini-maps#comments</comments>
		<pubDate>Wed, 12 Mar 2008 12:16:02 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[user interaction]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/03/12/multi-user-mini-maps/</guid>
		<description><![CDATA[As I explained earlier, there are some interesting challenges when designing multi-touch multi-user applications. Take for instance the use of the table in a command and control center during a disaster. In this scenario there is a map which displays the area where the disaster has occurred. Additionally you can view the real-time location of [...]]]></description>
			<content:encoded><![CDATA[<p>As I explained earlier, there are some interesting challenges when designing multi-touch multi-user applications. Take for instance the use of the table in a command and control center during a disaster. In this scenario there is a map which displays the area where the disaster has occurred. Additionally you can view the real-time location of different emergency vehicles. It could be that the chief fireman is interested in tracking a particular vehicle moving outside the current view, where as the rest of the staff around the table want to keep the current view. Right now the processes inside those command and control centers do not resemble the described scenario. For a starter because they don&#8217;t have a table.</p>
<p>There is an area though where you have similar scenarios: Gaming, especially RTS and certain simulation games. You need to keep track of different units and at the same time require a detailed zoom level which will exclude certain units. Although these games are rarely, if at all, multi-user in the sense of multiple users behind 1 computer at the same time, it does provide some interesting ideas. This is a screenshot of Transport Tycoon (from <a href="http://members.chello.at/theodor.lauppert/games/tt.htm" target="_blank">here</a>):</p>
<p><img src="http://blog.minst.net/wp-content/uploads/2008/03/transport_tycoon.png" alt="transport tycoon screenshot" /></p>
<p>It has the main mapview and two smaller mapviews. One with an overview of the entire area and one that tracks a train. Using mini-maps you could track particular vehicles are keep an eye on a specific location. Also you can use it to look something up on a different part of the map, while the main stays in view for the others. So the tug-of-war action, as described earlier, suddenly is possible without the tugging or warring bit.</p>
<p><img src="http://blog.minst.net/wp-content/uploads/2008/03/miniwindows.png" alt="Mini-maps on the tabletop" /></p>
<p>One user is still zooming in, where as the other user has his own mini-map where he can drag the map at the same time. If anything interesting occurs in one of the mini-maps it can become the main view, where as the former main view becomes a mini-map itself.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/03/12/multi-user-mini-maps/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multi user multi touch zooming problems</title>
		<link>http://blog.minst.net/2008/03/04/multi-user-multi-touch-zooming-problems</link>
		<comments>http://blog.minst.net/2008/03/04/multi-user-multi-touch-zooming-problems#comments</comments>
		<pubDate>Tue, 04 Mar 2008 17:56:03 +0000</pubDate>
		<dc:creator>stvn</dc:creator>
				<category><![CDATA[TableTop]]></category>
		<category><![CDATA[user interaction]]></category>

		<guid isPermaLink="false">http://blog.minst.net/2008/03/04/multi-user-multi-touch-zooming-problems/</guid>
		<description><![CDATA[Working with multi-user tabletop computing produces some interesting problems. On our mapping application we discovered that every now and then multiple people want to control the map. Resulting in a tug-of-war for control over the map. On multi-user environments like the DiamondTouch it could be solved by a simple first come first serve principle, where [...]]]></description>
			<content:encoded><![CDATA[<p>Working with multi-user tabletop computing produces some interesting problems. On our mapping application we discovered that every now and then multiple people want to control the map. Resulting in a tug-of-war for control over the map. On multi-user environments like the <a href="http://blog.minst.net/wp-admin/%3Ctable%3E%3Ctr%3E%3Ctd%3E%3Cimg%20mce_tsrc=" style="margin-bottom: -8px" title="DiamondTouch website" target="_blank">DiamondTouch </a>it could be solved by a simple first come first serve principle, where all input of other users is ignored. However this cannot be used by single user environments like the <a href="http://cs.nyu.edu/~jhan/ftirsense/index.html" title="FTIR as described Jeff Han" target="_blank">FTIR</a>-based tables and the <a href="http://www.microsoft.com/surface/" title="MS surface" target="_blank">Surface</a>.</p>
<p>On a typical multi-touch application zooming is done by putting two fingers on the surface and increase/decrease the space between those fingers (<a href="http://www.iphonefreak.com/2007/01/iphone_and_stev.html" title="the pinch" target="_blank">pinching </a>for the iPhone adepts). What happens is that the two fingers form the corners of a rectangle. If you move you fingers the box changes size, this can be used to calculate the zoom-factor. The result for the user will be that he zooms in or out on the image he is seeing. In theory he could select the corners of the object he wants to magnify and drag those corners to the corners of the table, enlarging the object to the size of the table.</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2008/03/singlezoom.png" title="multi touch zooming"><img src="http://blog.minst.net/wp-content/uploads/2008/03/singlezoom.png" alt="multi touch zooming" /></a></p>
<p>However if there is another user who wants to drag the image a bit to see a different part this will give a conflict. The single-user environments cannot distinguish between the various users and will only see 3 pressure points on the table. The chances are that the software still assumes that a zooming operation is going on and it will incorporate the extra input in the rectangle. So if the new user starts dragging the map, he might accidentally decrease the size of the rectangle the first user is using to zoom in. So instead of zooming in or panning, the application will zoom out, confusing both users.</p>
<p><a href="http://blog.minst.net/wp-content/uploads/2008/03/multizoom1.png" title="Multi-user multi-touch zooming"><img src="http://blog.minst.net/wp-content/uploads/2008/03/multizoom1.png" alt="Multi-user multi-touch zooming" /></a></p>
<p>Obviously this is not the desired behavior. Since there is no way to distinguish the different users, the people around the table will need to take turns controlling the table. However it could be that for some reason you really want to  take an eye on a specific area.  So you want to keep that area visible all the time. The easiest solution would be to make sure that area never leaves the viewing window and  as such limit the movement of the map image by other users. There is a much nice solution which is inspired by classic games as Transport Tycoon. More to follow &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.minst.net/2008/03/04/multi-user-multi-touch-zooming-problems/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
