<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6875531030337374586</id><updated>2011-07-28T19:03:03.797+01:00</updated><category term='Flash'/><category term='Rez'/><category term='Infrared'/><category term='Making Things Kit'/><category term='University'/><category term='Lingo'/><category term='Accelerometer'/><category term='DJ Max Portable'/><category term='Remote'/><category term='Nintendo'/><category term='Music'/><category term='3dsMAX'/><category term='Processing'/><category term='User Interfaces'/><category term='Wii'/><category term='Bluetooth'/><category term='Concerts'/><category term='Jean Michel Jarre'/><category term='Director MX'/><title type='text'>Glide Labs</title><subtitle type='html'>Diary containing details of my final year project.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-3467795577754791867</id><published>2009-02-17T12:35:00.005Z</published><updated>2009-02-17T12:50:44.075Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infrared'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>IR Dot to Dot</title><content type='html'>&lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt; &lt;p  style="margin-bottom: 0cm; font-family: georgia;font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;“&lt;i&gt;One of the next tasks in this iteration of the gesture application is to investigate a reliable method of using the coordinate data of more than one IR blob. Not only would this method increase the sensitive area of the Wiimote, it would also make the motion much smoother (similar to my averaging method to smooth out the accelerometer readings).”&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-style: normal; font-family: georgia;font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;Well, I've managed to do this now – as you will have seen from the video in the 'intro' post of the same title.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-style: normal; font-family: georgia;font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;First, view the video below that shows the latest iteration of the application&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-style: italic; font-family: georgia;font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;videohere&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-style: normal; font-family: georgia;font-family:georgia;"&gt;&lt;span style="font-size:100%;"&gt;For the purposes of development, I've decided to show the positioning of the infrared 'blobs' that the Wii Remote's camera tracks, along with their index numbers.  These index numbers are assigned by the Wii Remote itself, along with the calculations to determine the position of each indexed blob.  This in itself is actually quite interesting (believe it or not!) and is due to a limitation of Bluetooth:&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-family: georgia;font-family:georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;“&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;i&gt;...the camera is a high resolution camera and works incredibly fast (on 100 Hz). This generates a lot of data which has to be analyzed. It is way too much to send by Bluetooth to the Wii, for Bluetooth has a maximum capacity of 1 Mbit/s. Assumed that one pixels takes one byte, sending 100 images of 1024x768 pixels take 630 Mbit/s, which is way too much for Bluetooth to handle.”&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-family: georgia;font-family:georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-style: normal;"&gt;Smit, J.B.. (2008). Affordable Head Tracking.&lt;/span&gt;&lt;i&gt; University of Groningen. &lt;/i&gt;&lt;span style="font-style: normal;"&gt;(chapter 2), p17.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-style: normal; font-family: georgia;font-family:georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;Consider that figure of 630 Mbit/s when you can have up to 4 Wii Remotes connected to a PC (or indeed Wii) at once – that's an awful lot of bandwidth!&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; font-style: normal; font-family: georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;Instead of very long explanations, I'll reel off a list of features that the application now has, associated with infrared. (Still probably long explanations!)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-style: normal; font-family: georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;1.  Can  use 1 to 4 infrared dots to determine the position of the Wii  Remote&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-style: normal; font-family: georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;2.  When  2 dots are detected (this is where my Bluetack comes out again to  cover up all but 2 LEDs) then the distance between them in pixels  (relative to the resolution of the application) is calculated.  From  this, it's possible to track &lt;i&gt;backward&lt;/i&gt; and &lt;i&gt;forward&lt;/i&gt;  motion and make an approximate representation for the 3D model's  movement.  This is a significant step to adding the ability to  recognise gestures in three-dimensions&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-style: normal; font-family: georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;I've  limited it to using only 2 dots at the moment because then it's a  simple Pythagoras calculation to get the distance between the dots.   If the Wii Remote is detecting 4 blobs then it's a question of  working out the greatest distance between all 4 points.  This is  potentially a lot of calculations that could slow the program down.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-style: normal; font-family: georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;Aside  from that, if the remote is really close to a cluster of LEDs at one  end of the sensor-bar then it it would appear that the remote is far  away due to the small distance between the LEDs.  Therefore, the  LEDs must be at either end of the sensor-bar.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; font-style: normal; font-family: georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;3.  If  there aren't any IR sources detected by the Wii Remote then the 3D  model shader changes to represent it as 'off-line'.  The application  stops registering movement rather than registering lots of strange  directions.  When the remote is moved out of range then the remote  freezes in it's last position.  When the remote is moved back into  range then the movement from the last position continues.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="margin-bottom: 0cm; font-style: normal; font-family: georgia;font-family:georgia;" align="left"&gt;&lt;span style="font-size:100%;"&gt;Next up will be the explanation of the Levenshtein algorithm!&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-3467795577754791867?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/3467795577754791867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=3467795577754791867' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3467795577754791867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3467795577754791867'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/02/ir-dot-to-dot.html' title='IR Dot to Dot'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-889544934022250407</id><published>2009-02-16T20:51:00.005Z</published><updated>2009-02-17T12:45:03.045Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infrared'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>IR Dot to Dot - intro</title><content type='html'>Consider the following video - more detailed explanation and other videos on the way!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-5ca1ae65d1c37137" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v22.nonxt5.googlevideo.com/videoplayback?id%3D5ca1ae65d1c37137%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7DA5A4E69DDB8E5AB6301BC251F9375AE031272E.67925F78C281F3CDA76E81505795653C4DB6C873%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5ca1ae65d1c37137%26offsetms%3D5000%26itag%3Dw160%26sigh%3D7bkMRtApHjgi-rGocA0eKM8PTjw&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v22.nonxt5.googlevideo.com/videoplayback?id%3D5ca1ae65d1c37137%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7DA5A4E69DDB8E5AB6301BC251F9375AE031272E.67925F78C281F3CDA76E81505795653C4DB6C873%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D5ca1ae65d1c37137%26offsetms%3D5000%26itag%3Dw160%26sigh%3D7bkMRtApHjgi-rGocA0eKM8PTjw&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;(higher quality available &lt;a href="http://glidepro.net/labs/irdemo.html"&gt;here&lt;/a&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-889544934022250407?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=5ca1ae65d1c37137&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/889544934022250407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=889544934022250407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/889544934022250407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/889544934022250407'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/02/ir-dot-to-dot-intro.html' title='IR Dot to Dot - intro'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-939335472468392163</id><published>2009-02-08T12:03:00.014Z</published><updated>2009-02-16T09:11:50.025Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infrared'/><category scheme='http://www.blogger.com/atom/ns#' term='Accelerometer'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>Using the IR Sensor Bar = Cheating?</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_lDcYhCuzqMg/SZV-3auoWvI/AAAAAAAAADk/WXrg1Kq3kHs/s1600-h/wiimote.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 124px;" src="http://1.bp.blogspot.com/_lDcYhCuzqMg/SZV-3auoWvI/AAAAAAAAADk/WXrg1Kq3kHs/s200/wiimote.jpg" alt="" id="BLOGGER_PHOTO_ID_5302283626831436530" border="0" /&gt;&lt;/a&gt; Well, when this project has set its sights on using the accelerometer in the Wii Remote for motion sensing then the answer is a resounding 'yes!'. One of the main reasons why I've shied away from the use of the sensor bar is that I wanted to make a gesture recognition application with as FEW artefacts as possible – i.e. just the Wii Remote and no other hardware save for a computer with Bluetooth capability. However, the data gathered whilst employing the IR sensor-bar, the scope for my project has somewhat widened...&lt;br /&gt;&lt;br /&gt;After discovering the limitations of the Wiimote's accelerometer I decided to delve into the possibilities of the other sensor in the Wii Remote – it's camera. For those who don't know, that sensor bar sitting on top of the television isn't actually sensing anything at all. It's merely emitting a number of infra-red sources. The Wii knows where the player is pointing because the camera in the Wiimote is tracking the position of the infra-red sources. In fact, the camera in the Wiimote is capable of tracking 4 infra-red points (known as 'blobs') at 100Hz (100 times per second).&lt;br /&gt;&lt;br /&gt;The Director Xtra I'm using for the purposes of my project supplies the coordinates (X and Y values between 0 and 1) of each blob in a handy array. So, thankfully, the potentially fiddly process of getting to the data has been dealt with – it's just a question of interpreting the data to get something meaningful from it.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;One blob to rule them all... &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Armed with my Wiimote, el-cheapo battery powered sensor bar and a few lumps of Bluetack I set to work.&lt;br /&gt;&lt;br /&gt;Firstly, my sensor bar isn't as good as the actual Nintendo one, but then it wouldn't be as it cost a whole $6. It has 6 infra-red LEDs, 3 at each end of the bar and arranged in such a way that they 'fan out' to create a spread of infra-red – the theory being that the Wii console will appear more sensitive or reactive. The genuine Nintendo sensor-bar has a total of 10 LEDs in it making it far superior. For the purpose of the program I'm writing, I only need one (there are downfalls to this approach that I'll explain shortly) so I covered up the rest of the LEDs with Bluetack!&lt;br /&gt;&lt;br /&gt;I've adapted the program I wrote for the accelerometers to use the readings from the Wiimote's camera instead.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-2963b1c8ac9617d6" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v14.nonxt7.googlevideo.com/videoplayback?id%3D2963b1c8ac9617d6%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D384002845137950F8153DF2BAC07B3FAE76A491E.6F4194047E6DE2A49642AC0B26EAD1462C038547%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D2963b1c8ac9617d6%26offsetms%3D5000%26itag%3Dw160%26sigh%3DUbAIu4aQwggKmaCDuhiIEWki0KA&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v14.nonxt7.googlevideo.com/videoplayback?id%3D2963b1c8ac9617d6%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D384002845137950F8153DF2BAC07B3FAE76A491E.6F4194047E6DE2A49642AC0B26EAD1462C038547%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D2963b1c8ac9617d6%26offsetms%3D5000%26itag%3Dw160%26sigh%3DUbAIu4aQwggKmaCDuhiIEWki0KA&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;The 3D model of the Wiimote is pointing forwards and doesn't rotate with the movement of the real Wiimote. Obviously there will be a certain amount of rotation when the real-life Wiimote is moved, however one has to remember that the Wiimote's camera must be pointed in the direction of the infra-red. This is so the application can recognise the movement. If the application relied on the accelerometer for movement as well, there would have to be some consideration taken for the occasions that the Wiimote's camera would be out of view of the infra-red (i.e. when pointed straight up or down).&lt;br /&gt;&lt;br /&gt;This is where the downfall of using one infra-red LED for positioning becomes apparent. LEDs in general do not have a very wide emitting angle. It's very unlikely that you would see any light – or in this case, detect any infra-red – if looking at the LED from the side. Once the Wiimote's camera has moved out of effective viewing range of the LED then the readings either become unreliable or non-existent (in this case the Wiimote returns a value of -1).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Accelerometer &amp;amp; IR side by side... &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This version of the application incorporates a slightly different method of movement recognition. The versions of the application that rely on accelerometer data as a means of control use – for want of a better term – a state logic. The Wiimote has to be swung to a certain position for it to register as a different movement. For example, if the user swings the Wiimote to the right, the application will register that the Wiimote is in the 'right' position. Now, if the user swings the Wiimote to the left, the application won't register any leftwards motion until the accelerometer is reading that the Wiimote is in the 'left' position. It is better to think of the application as recognising a series of pre-set positions that the Wiimote can be held in rather than detecting the direction of the motions themselves.&lt;br /&gt;&lt;br /&gt;The version of the application relying on IR dot positioning works differently. There are no pre-set positions that the user can hold the Wiimote. This time, the application senses the direction of the motion. For example, the Wiimote is motionless in the user's hand – the 3D model on the screen is also stationary. The user moves the Wiimote up – as soon as this happens, the application moves the 3D model of the Wiimote up the screen and registers this as an upward movement.&lt;br /&gt;&lt;br /&gt;This method is much more effective and natural-feeling than the previous applications using the accelerometer data. Whenever the Wiimote is stationary this registers as an 'idle' state – unlike the accelerometer application where 'idle' meant holding the Wiimote in a specified position.&lt;br /&gt;&lt;br /&gt;The method also makes the 'game' I created seem a bit easier and less frantic. When the game demanded an 'up-down' motion, the accelerometer-based version would see the player having to swing the Wiimote far enough to get it into the correct position. It's confusing for the game-player who is probably wondering why it took so long for their motions to be recognised. Now just the slightest movement in the correct direction would register as a movement in a certain direction – I suppose some may argue that this takes the challenge out of the game, but it opens the door for more complex gestures that the player would not have had the time (or patience) to make.&lt;br /&gt;&lt;br /&gt;Another advantage to this method of sensing is that it's easier to perceive the motion one's making when gesturing at a 2D surface such as a television or computer monitor...&lt;br /&gt;&lt;br /&gt;As an example scenario; one of the gestures the application may recognise is a 5 pointed star. You are given a whiteboard pen. There are two whiteboards in the room. One is mounted on the wall and the other is mounted on the ceiling. You are told that you have to look in front of you while drawing, so no neck tilting! First you draw the star on the whiteboard mounted on the wall - you can see the board and the shape you're drawing so it's really easy. Now, when it comes to draw the star on the ceiling whiteboard it's not as easy because you can't really see what you're doing and the star looks distorted.&lt;br /&gt;&lt;br /&gt;OK, that may be quite a long way of trying to explain the benefits of the IR dot method, however it nicely highlights its benefits. In programming terms, it makes the process of designing gestures easier and enables more complex methods of determining gestures to be integrated into the application – such as the Levenshtien Distance algorithm.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Next steps...&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;One of the next tasks in this iteration of the gesture application is to investigate a reliable method of using the coordinate data of more than one IR blob. Not only would this method increase the sensitive area of the Wiimote, it would also make the motion much smoother (similar to my averaging method to smooth out the accelerometer readings).&lt;br /&gt;&lt;br /&gt;Returning to the accelerometer-based version of the application. I may try to alter the code to sense change in direction rather than finite states. The accelerometer data was too 'jittery' the last time I tried it, however, that was before I started using averaged data over time rather than real-time values. It might be possible! However, bear in mind that the problems highlighted in my whiteboard scenario earlier will still be an issue.&lt;br /&gt;&lt;br /&gt;Once the aspect of getting the user's input has been dealt with, the various methods of checking for valid gestures will be the next priority. In terms of my project proposal, the investigation into forms of gesture alphabets shall begin. This will represent another iteration in the application, where we move away from the gaming aspect and more toward the place that gesture recognition has in the everyday computing world...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-939335472468392163?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=2963b1c8ac9617d6&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/939335472468392163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=939335472468392163' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/939335472468392163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/939335472468392163'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/02/using-ir-sensor-bar-cheating.html' title='Using the IR Sensor Bar = Cheating?'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_lDcYhCuzqMg/SZV-3auoWvI/AAAAAAAAADk/WXrg1Kq3kHs/s72-c/wiimote.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-6622898056577924381</id><published>2009-02-07T09:29:00.006Z</published><updated>2009-02-07T12:03:22.657Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accelerometer'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>...and now for the annoying bit - Accelerometers</title><content type='html'>After hours of testing and gazing hypnotically at a spreadsheet application, one hand on the mouse, the other clutching my Wii Remote, I've come to the conclusion that it's not possible to measure displacement using data from the Wii Remote's accelerometers.   &lt;p&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;I have searched through forums associated with non-gaming-exclusive applications of the Wiimote and found that the general opinion of members is that it's not possible (&lt;a href="http://www.wiili.org/forum/tracking-distance-and-3d-position-without-a-sensor-bar-t3763.html"&gt;http://www.wiili.org/forum/tracking-distance-and-3d-position-without-a-sensor-bar-t3763.html&lt;/a&gt;).  Another search under general applications of accelerometers (not associated in any way with the Wiimote) revealed algorithms that take accelerometer data and several other determinable variables to calculate displacement.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Technically I 'should' be able to swipe the Wiimote 1 metre to the right and collect the data output from the accelerometers. Then I could integrate these readings to retrieve the velocity at a given time, and therefore the displacement (or distance).  The final result should have some resemblance to 1 metre.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;I performed the same gesture a number of times, however the displacement calculations returned wildly different results.  A slight deviation in the results could be acceptable however when moving the Wiimote over the distance of 30 centimetres I returned results between 4 and 40 centimetres.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;At this point, it should be noted that the Wiimote doesn't actually output values that can be interpreted as acceleration.  The values it returns are actually measured in g's (g-force) which is the amount of acceleration in relation to the Earth's gravity.  1g is roughly equivalent of 9.8m/s/s or 9.8ms&lt;sup&gt;-2 &lt;/sup&gt;so the data from the Wiimote can be converted to real acceleration data. (&lt;a href="http://en.wikipedia.org/wiki/G-force"&gt;http://en.wikipedia.org/wiki/G-force&lt;/a&gt;)&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;In the experiments I conducted using the Wiimote, the accelerometer data was captured at anything from 100 times per second to as little as 10 times per second.  Therefore, 9.8ms&lt;sup&gt;-2&lt;/sup&gt; has to be divided by the number of samples per second.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;All the calculations are perfectly sound on paper, however the source of the data – the accelerometer – isn't reliable enough to produce consistent, predictable results.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; font-style: italic;"&gt;So, why not?&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Well, first, I had a look at the specification of the Wiimote's accelerometer – an Analog Devices ADXL330 (&lt;a href="http://www.analog.com/en/mems-and-sensors/imems-accelerometers/adxl330/products/product.html"&gt;http://www.analog.com/en/mems-and-sensors/imems-accelerometers/adxl330/products/product.html&lt;/a&gt;).  The g-force readings of the accelerometer are accurate to +/-3g.  If the Wiimote is shaken hard or swung sufficiently fast then readings outside +/-3g can easily be produced.  Any readings outside the specification of accelerometer should be disregarded, however, in some cases, this would mean completely disregarding an entire set of data!&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Next, I found that the Wiimote can be held at a certain orientation and provided the user has a steady enough hand, they can move the Wiimote through the air without altering the output of any of the axis on the accelerometers.   &lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Before writing off the Wiimote's capabilities to measure displacement using its accelerometer data, it should be noted that a programmer and car-enthusiast (&lt;a href="http://forums.vwvortex.com/zerothread?id=3362586"&gt;http://forums.vwvortex.com/zerothread?id=3362586&lt;/a&gt;) successfully strapped his Wiimote to his car and managed to measure his 0-60mph time, and therefore distance traveled.  It should be noted that perhaps periods of smooth acceleration can be accurately recorded with the Wiimote.  This is because the g-force readings from the accelerometer would be constantly increasing (or decreasing).  If one was to plot the readings on a graph of acceleration against time, they would see a smooth line.  If one was to plot the readings of a rapid hand gesture on a similar graph, the line would resemble more that of a 'heart-rate monitor'.  It's obvious that the former readings would be more accurate.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;The problems I have experienced don't appear to just be the preserve of programmers using the Wiimote for non Nintendo Wii software.   &lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;It also appears that more observant gamers have noticed the shortcomings of the Wiimote as well.  The 'real-life' movement that was promised by Nintendo with the release of the Wii console doesn't match the now-apparent limitations of the system.   &lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;(&lt;a href="http://www.gamasutra.com/view/feature/1494/wheres_the_wiimote_using_kalman_.php"&gt;http://www.gamasutra.com/view/feature/1494/wheres_the_wiimote_using_kalman_.php&lt;/a&gt;)&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Using the Tennis game in Wii Sports as an example, more specifically the way the player serves the ball to the opponent, one can see that there are many ways of playing the game.  The method of serving in Wii Sports Tennis is to hold the Wiimote down by your side, raise it up quickly and bring it down again.  A player who may have played tennis before or at least knows what a tennis serve looks like may try to serve the ball using a real-life serving technique.  From personal experience, I've seen adults try to serve by throwing a non-existent ball into the air, and then try to hit it using the Wiimote.  Annoyingly for them, using a real-life technique in Wii Sports Tennis doesn't actually work.  The serve must be carried out using the rather childlike method described above.   &lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Other gestures like those required in the bowling game in Wii Sports appear to be more realistic in terms of the motion the player makes with the Wiimote.  However, this is purely due to the fact that the real-life bowling action is within the capabilities of the Wiimote's accelerometers.  Compare this to where the action had to be altered by the game's developers for the tennis game to a gesture that the Wiimote can understand.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;In terms of the gaming aspect of the Wiimote's technical ability, it seems suitable to simulate some types of motion that occur on very definite axis lines – i.e. in straight lines rather than a diagonal swing across all axes.  For other, more complex gestures, there is a certain amount of difference between the motion that the game's developers tell the player to make (on-screen instructions) and the action motion that the game picks up (the code running the game).  For example, a game may tell the player to perform an elaborate swishing gesture with the character's 'sword', but in fact, the game's code doesn't care how elegant or 'swishy' the gesture is.  It will only concern itself with a very small portion of the movement to produce a distinct gesture.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Possibly the most irritating aspect of the Wiimote for consumers is that it isn't the all-singing all-dancing control device that Nintendo promised.  All the people who go and buy the various sword fighting games out there (&lt;a href="http://uk.wii.ign.com/objects/821/821973.html"&gt;Red Steel&lt;/a&gt; etc) and games from the Star Wars franchise must have a sour taste in their mouths when they realise that the Wiimote isn't quite the sword or Lightsaber they first thought.  This is due, once more, to the Wiimote's inability to sense it's position in space – it's not possible using accelerometers.&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;  Nintendo are shortly to release a device called &lt;a href="http://www.nintendo.com/whatsnew/detail/eMMuRj_N6vntHPDycCJAKWhEO9zBvyPH"&gt;Wii Motion Plus&lt;/a&gt; that bolts onto the Wiimote (where the Nunchuck is usually connected) that contains a gyroscope.  This device will enable game developers much more scope when programming the physical aspect of their games. &lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-style: italic;"&gt;"Nintendo's upcoming Wii MotionPlus accessory for the revolutionary Wii        Remote controller again redefines game control, by more quickly and        accurately reflecting motions in a 3-D space." &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Hopefully, this will see less use of the IR Sensor Bar to detect distance from the TV and more use of the Wiimote on its own.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;While the purpose of this article wasn't to moan able the shortcomings and downfalls of the Wiimote, I feel that some of the text is necessary due to the fact that I myself came to the Wiimote thinking that so much more was possible!  However, it's not all bad – there are ways around most of the problems I'm encountering thus far.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;Now, for the purpose of this investigation, I shall suspend the research into calculating displacement with the Wiimote.  The main reason for this is that it doesn't appear to be possible to obtain accurate readings from the types of gestures I wish to record and recognise.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-6622898056577924381?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/6622898056577924381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=6622898056577924381' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6622898056577924381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6622898056577924381'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/02/and-now-for-annoying-bit.html' title='...and now for the annoying bit - Accelerometers'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-148707196375559704</id><published>2009-02-02T06:06:00.011Z</published><updated>2009-02-03T10:32:42.060Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Director MX'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>Wii Gesture Project - "Wii Swing To Music"</title><content type='html'>OK, this is a pretty big step up in the versions, so I'm going to stop giving releases a version number or we'll be up in the hundreds before too long I shouldn't wonder...&lt;br /&gt;&lt;br /&gt;What would have been version 5 was the application's ability to recognise simple gestures.  Whenever a gesture was recognised, the application played a lightsaber sound (yeh, I know, too tempting right?)&lt;br /&gt;&lt;br /&gt;Now (for technically version 6) the application has morphed into a simple game - just for the purposes of demostration - where the player has to make the correct gesture displayed on the screen within a certain amount of time.  All this is happening in time to a piece of music, so the general idea is that the player should wave the Wii Remote in the correct directions in time with the music...&lt;br /&gt;&lt;br /&gt;...and it 'kind of' works!&lt;br /&gt;&lt;br /&gt;Anyway, take a look at the video below.  There isn't any audio present at the moment due to some syncing problems I had with the screen recorder, so at some point my trusty camera will come out again and I'll have to film myself playing it...!  For the time being, picture it being played to Lady Gaga's 'Just Dance'.&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-fb0d90f6517f783f" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v7.nonxt3.googlevideo.com/videoplayback?id%3Dfb0d90f6517f783f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6A048CA2BC551AC156776D1A5FFDCCBAC55369F7.1FD5D5089DC80AEC7111380E2309C8B72C3FEC6C%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfb0d90f6517f783f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DfdNff9ZTshoa0org6H2t3CVAdj0&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v7.nonxt3.googlevideo.com/videoplayback?id%3Dfb0d90f6517f783f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D6A048CA2BC551AC156776D1A5FFDCCBAC55369F7.1FD5D5089DC80AEC7111380E2309C8B72C3FEC6C%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dfb0d90f6517f783f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DfdNff9ZTshoa0org6H2t3CVAdj0&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Higher quality video available &lt;a href="http://glidepro.net/labs/wiimusic.html"&gt;here...&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That's all for the moment.... Over n out...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-148707196375559704?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/148707196375559704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=148707196375559704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/148707196375559704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/148707196375559704'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/02/wii-gesture-project-wii-swing-to-music.html' title='Wii Gesture Project - &quot;Wii Swing To Music&quot;'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-4573823218213074791</id><published>2009-01-29T12:53:00.006Z</published><updated>2009-01-29T15:10:38.125Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accelerometer'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>Wii Gesture Project - version 4</title><content type='html'>&lt;p&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-16bd63c34dee2837" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v22.nonxt5.googlevideo.com/videoplayback?id%3D16bd63c34dee2837%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7C8016D4BB0BDAD54AB8975CB3321990F6E15FEA.2D091B1127C2F9AA660EE22EC689230EF9975966%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D16bd63c34dee2837%26offsetms%3D5000%26itag%3Dw160%26sigh%3DOoQT8Z2dsbGuTKShuaOs_ycgUi8&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v22.nonxt5.googlevideo.com/videoplayback?id%3D16bd63c34dee2837%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7C8016D4BB0BDAD54AB8975CB3321990F6E15FEA.2D091B1127C2F9AA660EE22EC689230EF9975966%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D16bd63c34dee2837%26offsetms%3D5000%26itag%3Dw160%26sigh%3DOoQT8Z2dsbGuTKShuaOs_ycgUi8&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;(higher quality video available for viewing &lt;a href="http://glidepro.net/labs/wiimotescreenrecording4.html"&gt;here!&lt;/a&gt;)&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;em&gt;"What you'll probably notice is that the movement is quite stuttery, so even when the Wiimote is in a stationary position there may still be some jitters. This is due to the fact that the 3D model of the Wiimote takes it's rotation properties directly from the ever-changing data of the real Wiimote's accelerometers."&lt;/em&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;This is fixed!  If you compare the movement of the Wii Remote in this video to the other 3 I've recorded so far, you'll notice that the motion much smoother.  It's difficult to tell from the video, but now it's easier to select the direction you want to point the Wii Remote.  Before, if the Wii Remote was held on the cusp of a different direction, for example between 'left' and 'idle', the chances were that there would be lots of 'left' directions generated as the accelerometers in the Wii Remote flit between 'left' and 'idle' positions.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;The smooth movement is gained by sampling the last 15 accelerometer values for each axis (x, y and z) and calculating an average of each.  This average is used in place of the raw accelerometer readings.  This method irons out the little 'in-between' vibrations from the accelerometer.  &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;The slight (and the benefits of averaging 99.9% outweigh this) problem is that there is a slight delay between moving the Wii Remote and the program reacting.  This is because the latest movement is being averaged alongside the last 14 movements could be much lower or higher - so the numbers have to effectively 'catch up'.  In fact, as the application is running at 30 frames per second, the movement is up to half a second behind.  The delay can be reduced by taking fewer samples for the average.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;...the work continues.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-4573823218213074791?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=16bd63c34dee2837&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/4573823218213074791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=4573823218213074791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/4573823218213074791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/4573823218213074791'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/01/wii-gesture-project-version-4.html' title='Wii Gesture Project - version 4'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-7719250638182633090</id><published>2009-01-29T10:12:00.003Z</published><updated>2009-01-29T10:38:32.734Z</updated><title type='text'>Wii Gesture Project - version 3</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-739d6a12692235eb" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v13.nonxt8.googlevideo.com/videoplayback?id%3D739d6a12692235eb%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D417692B13B99640E0668B2770F031C2402269BC1.5125EED781975EA76B5004CE01EE17A137936800%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D739d6a12692235eb%26offsetms%3D5000%26itag%3Dw160%26sigh%3DV8pp1OfuKQFyokBY3zVz0JGA_gY&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v13.nonxt8.googlevideo.com/videoplayback?id%3D739d6a12692235eb%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D417692B13B99640E0668B2770F031C2402269BC1.5125EED781975EA76B5004CE01EE17A137936800%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D739d6a12692235eb%26offsetms%3D5000%26itag%3Dw160%26sigh%3DV8pp1OfuKQFyokBY3zVz0JGA_gY&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"There is a problem with this method of data collection and that is that a complete gesture must fall perfectly within each group of 8 movements."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Well, not anymore!  The method of populating the array has been modified slightly so that the oldest of the 8 movements is pushed off the back of the array allowing the newest movement in at the front.&lt;br /&gt;&lt;br /&gt;e.g:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;movementList = [1, 5, 7, 3, 7, 3, 2, 1]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A new movement comes in - number 5 (which is 'down')&lt;br /&gt;All but the first value from the movementList array is copied into a temporary array...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;temp_movementList = [5, 7, 3, 7, 3, 2, 1]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...then the latest movement is tacked onto the end so we end up with...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;temp_movementList = [5, 7, 3, 7, 3, 2, 1, 5]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;...finally the contents of temp_movementList are copied into movementList and then processed into a single string...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;levenshteinString = "57373215"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This process happens after every movement the user makes with the Wii Remote.&lt;br /&gt;&lt;br /&gt;As ever, a higher quality video can be viewed &lt;a href="http://glidepro.net/labs/wiimotescreenrecording3.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;That's all folks!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-7719250638182633090?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=739d6a12692235eb&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/7719250638182633090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=7719250638182633090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7719250638182633090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7719250638182633090'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/01/wii-gesture-project-version-3.html' title='Wii Gesture Project - version 3'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-8225380908349090133</id><published>2009-01-28T10:44:00.005Z</published><updated>2009-01-28T11:56:32.303Z</updated><title type='text'>LEDs, Camera, Tilt!</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-dcb168d6ebf1786f" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v1.nonxt2.googlevideo.com/videoplayback?id%3Ddcb168d6ebf1786f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D380E2D090B7F867DBAC0ECAD171F1DBC9F6999F.3025CBDD74869D3E9274557FE707A12BE8369195%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddcb168d6ebf1786f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DNKZ1l9ufUGAdQNgfQZoPqFI46mQ&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v1.nonxt2.googlevideo.com/videoplayback?id%3Ddcb168d6ebf1786f%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D380E2D090B7F867DBAC0ECAD171F1DBC9F6999F.3025CBDD74869D3E9274557FE707A12BE8369195%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Ddcb168d6ebf1786f%26offsetms%3D5000%26itag%3Dw160%26sigh%3DNKZ1l9ufUGAdQNgfQZoPqFI46mQ&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Whilst all the tilting is happening with the 3d model on the computer monitor, the Wiimote is also providing feedback to the user.  Every one of the 9 positions (8 tilts and 1 'idle' position) has a different light sequence.  I'm particularly happy with the way the LEDs zoom left and right when the Wiimote is held in 'idle' position - slightly reminiscent of a certain car...&lt;br /&gt;&lt;br /&gt;Have a look at the video (apologies for the shoddy focus of my camera!)&lt;br /&gt;There is a high(er!) quality version of the video &lt;a href="http://glidepro.net/labs/wiimoteleds.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The picture below shows how the LEDs will behave when the Wiimote is tilted in different directions  - hopefully clearer to understand than the video!&lt;br /&gt;(note: the glowing circles denote LEDs that flash)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_lDcYhCuzqMg/SYBEIJW_tNI/AAAAAAAAADU/5Fn5D6rd8j8/s1600-h/led-poster.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 314px;" src="http://2.bp.blogspot.com/_lDcYhCuzqMg/SYBEIJW_tNI/AAAAAAAAADU/5Fn5D6rd8j8/s400/led-poster.png" alt="" id="BLOGGER_PHOTO_ID_5296308068529714386" border="0" /&gt;&lt;/a&gt;The LED sequences are merely there, at the moment, to provide the user with extra feedback as to their positioning of the Wiimote.&lt;br /&gt;&lt;br /&gt;(it also looks rather good as well!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-8225380908349090133?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=dcb168d6ebf1786f&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/8225380908349090133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=8225380908349090133' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/8225380908349090133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/8225380908349090133'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/01/leds-camera-tilt.html' title='LEDs, Camera, Tilt!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lDcYhCuzqMg/SYBEIJW_tNI/AAAAAAAAADU/5Fn5D6rd8j8/s72-c/led-poster.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-7779368952912541316</id><published>2009-01-27T15:58:00.004Z</published><updated>2009-01-27T16:27:02.078Z</updated><title type='text'>Wii Gesture Project - version 2</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-ca5c46f9d7ebdbac" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v15.nonxt7.googlevideo.com/videoplayback?id%3Dca5c46f9d7ebdbac%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D34411A16A15FD784C4659EF077148E81A92441E3.4B6C03CCFE547E11E3292F8728E8FB987B9F47B6%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dca5c46f9d7ebdbac%26offsetms%3D5000%26itag%3Dw160%26sigh%3DiUyDpBr0JB1s_CKWVhy-QJavNRI&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v15.nonxt7.googlevideo.com/videoplayback?id%3Dca5c46f9d7ebdbac%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D34411A16A15FD784C4659EF077148E81A92441E3.4B6C03CCFE547E11E3292F8728E8FB987B9F47B6%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Dca5c46f9d7ebdbac%26offsetms%3D5000%26itag%3Dw160%26sigh%3DiUyDpBr0JB1s_CKWVhy-QJavNRI&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;...one step further to having some gesture recognition!&lt;br /&gt;&lt;br /&gt;Have a look at the video.&lt;br /&gt;&lt;br /&gt;(Once again, if the video quality is too iffy for you, go &lt;a href="http://glidepro.net/labs/wiimotescreenrecording2.html"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;You will see that the application records the user's gestures in groups of 8.  The movements, each direction represented by a number, are stored in an array (or 'list' as Lingo would have us call them!).  At the end of every group of 8, the array is condensed into a single string.  This forms the basis of a Levenshtein Distance comparison string - I'll explain this in another post, but it's a core part of the application nevertheless!)&lt;br /&gt;&lt;br /&gt;For example, the application may output:&lt;br /&gt;movementList = [1, 2, 1, 2, 3, 5, 1, 5]&lt;br /&gt;&lt;br /&gt;...therefore...&lt;br /&gt;&lt;br /&gt;movementListLev = "12123515"&lt;br /&gt;&lt;br /&gt;We take each number...&lt;br /&gt;1=up, 2=up-right, 3=right, 4=down-right, 5=down, 6=down-left, 7=left &amp;amp; 8=up-left&lt;br /&gt;&lt;br /&gt;So we know from 'movementListLev' that the user has moved the Wii Remote up, up-right, up, up-right, right, down, up &amp;amp; down.&lt;br /&gt;&lt;br /&gt;There is a problem with this method of data collection and that is that a complete gesture must fall perfectly within each group of 8 movements.  The next stage in the development will involve creating the array/list so that newest movement numbers push out the oldest numbers, that way the 8 most recent movements are ALWAYS shown...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-7779368952912541316?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=ca5c46f9d7ebdbac&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/7779368952912541316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=7779368952912541316' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7779368952912541316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7779368952912541316'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/01/wii-gesture-project-version-2.html' title='Wii Gesture Project - version 2'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-721739351533531363</id><published>2009-01-26T20:25:00.006Z</published><updated>2009-01-26T21:10:02.748Z</updated><title type='text'>Wii Gesture Project - version 1</title><content type='html'>&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-a3f459a98d2309e6" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v18.nonxt8.googlevideo.com/videoplayback?id%3Da3f459a98d2309e6%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D8A8F0709A6A6F6FEA65AE32A8E03FADEB2FC3A1.37DFA785917419EE11FD64D457F1277E278231AC%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da3f459a98d2309e6%26offsetms%3D5000%26itag%3Dw160%26sigh%3D-1R7435jrSOg6hiRU66llIXLUuY&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v18.nonxt8.googlevideo.com/videoplayback?id%3Da3f459a98d2309e6%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D8A8F0709A6A6F6FEA65AE32A8E03FADEB2FC3A1.37DFA785917419EE11FD64D457F1277E278231AC%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da3f459a98d2309e6%26offsetms%3D5000%26itag%3Dw160%26sigh%3D-1R7435jrSOg6hiRU66llIXLUuY&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Here is the first iteration of an application that will hopefully be able to recognise a gesture made with a Nintendo Wii Remote.  So far, the program can mimic the rotational movement of the Wiimote and therefore, can determine which direction the Wiimote is pointing.&lt;br /&gt;&lt;br /&gt;Watch the video above (if you haven't already!) to see how it works.&lt;br /&gt;&lt;br /&gt;(If you don't like the Blogspot video quality, have a look at a higher resolution version &lt;a href="http://glidepro.net/labs/wiimotescreenrecording.html"&gt;here&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;What you'll probably notice is that the movement is quite stuttery, so even when the Wiimote is in a stationary position there may still be some jitters.  This is due to the fact that the 3D model of the Wiimote takes it's rotation properties directly from the ever-changing data of the real Wiimote's accelerometers.  Perhaps the next thing to do is add a method that 'rounds' the accelerometer data to a certain (lesser) degree of accuracy - although less accurate just for the visual appearance as opposed to the inner workings of the application.&lt;br /&gt;&lt;br /&gt;The work continues...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-721739351533531363?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=a3f459a98d2309e6&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/721739351533531363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=721739351533531363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/721739351533531363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/721739351533531363'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/01/wii-gesture-project-version-1.html' title='Wii Gesture Project - version 1'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-2346155842912261621</id><published>2009-01-23T20:26:00.005Z</published><updated>2009-01-25T22:05:40.100Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Accelerometer'/><category scheme='http://www.blogger.com/atom/ns#' term='Director MX'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>Movement purely on accelerometers!</title><content type='html'>Finally back on track after months of mucking about...!&lt;br /&gt;&lt;br /&gt;Today, I altered my Wiimote program in Director to make a 3D object move around based on the data gathered from the Wii Remote's accelerometers.  The control is actually pretty accurate.  So far, you have to hold the remote in a fairly 'wooden' fashion.  By this I mean that you can't swish the remote left or right as one might if playing a real Wii game (Wii Sports Tennis comes to mind here).&lt;br /&gt;&lt;br /&gt;So, after some faffing with the Lingo in Director I have the following degree of control over my 3D ball...&lt;br /&gt;&lt;br /&gt;note: the 'deadzone' for movement is attained when you hold the remote straight up in the air.&lt;br /&gt;&lt;br /&gt;Move left: swing the remote to the left&lt;br /&gt;Move right: swing the remote to the right&lt;br /&gt;Move down: pitch the remote forwards (the end of the remote is moved in an arc away from your body)&lt;br /&gt;Move up: pitch the remote backwards (the end of the remote is moved towards your body, the amount of movement is limited for this action)&lt;br /&gt;&lt;br /&gt;At the moment, the movement of the ball isn't directly related to the accelerometer data in terms of the actual numbers... So if the accelerometer hints that the Wii Remote is being swung to the left then the ball is moved left by a finite amount.&lt;br /&gt;&lt;br /&gt;That's all for the moment, however everything is well on the way to more exciting things!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-2346155842912261621?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/2346155842912261621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=2346155842912261621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2346155842912261621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2346155842912261621'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2009/01/movement-purely-on-accelerometers.html' title='Movement purely on accelerometers!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-6685201986033908353</id><published>2008-10-27T16:40:00.003Z</published><updated>2008-10-27T16:49:01.243Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>How the axes work on the Wii Remote</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_lDcYhCuzqMg/SQXvNWpl9RI/AAAAAAAAADI/sqLdA7tBZnk/s1600-h/Wii_Remote_Image.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 304px;" src="http://2.bp.blogspot.com/_lDcYhCuzqMg/SQXvNWpl9RI/AAAAAAAAADI/sqLdA7tBZnk/s400/Wii_Remote_Image.png" alt="" id="BLOGGER_PHOTO_ID_5261874752349664530" border="0" /&gt;&lt;/a&gt;If you move the Wii Remote along each of these axes then the values from the accelerometer along each axis will vary. &lt;br /&gt;&lt;br /&gt;So moving the remote rapidly from side to side will cause change in the 'x' axis. &lt;br /&gt;&lt;br /&gt;The sensitivity of the accelerometer in the remote (and indeed the Wii Nunchuck - they're the same spec) generally means that it's very difficult move along one axis at a time.&lt;br /&gt;&lt;br /&gt;Now it's time to work out how to get this information recorded in Director!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-6685201986033908353?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/6685201986033908353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=6685201986033908353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6685201986033908353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6685201986033908353'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/10/how-axes-work-on-wii-remote.html' title='How the axes work on the Wii Remote'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_lDcYhCuzqMg/SQXvNWpl9RI/AAAAAAAAADI/sqLdA7tBZnk/s72-c/Wii_Remote_Image.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-4306710578820113463</id><published>2008-10-26T20:27:00.003Z</published><updated>2008-10-26T20:42:34.523Z</updated><title type='text'>Squeezii Schmiizii Diizii "Wiigee"</title><content type='html'>Ohhhhh, yes, the titles can and &lt;span style="font-style: italic;"&gt;shall &lt;/span&gt;get worse than that...&lt;br /&gt;&lt;br /&gt;In my quest for all things interactive and Wii, I stumbled apon this rather nice gesture-recognition library based in Java called &lt;span style="font-weight: bold;"&gt;Wiigee&lt;/span&gt;.  It's being developed by several German university students and from the demo video it looks amazing.&lt;br /&gt;&lt;br /&gt;I compiled all the code using Eclipse but, unfortunately, my Bluetooth stack ('Blue Soleil') and Bluetooth dongle aren't compatible with the requirements of the Java Bluetooth library, 'Bluecove' which requires 'L2CAP'.&lt;br /&gt;&lt;br /&gt;To save the waffle, check out the following video on the Wiigee site:&lt;br /&gt;&lt;br /&gt;http://www.wiigee.org/demovideo/demovideo.html&lt;br /&gt;&lt;br /&gt;Links&lt;br /&gt;&lt;br /&gt;Wiigee site: &lt;a href="http://www.wiigee.org/index.html"&gt;http://www.wiigee.org/index.html&lt;/a&gt;&lt;br /&gt;L2CAP definition: &lt;a href="http://en.wikipedia.org/wiki/Bluetooth_protocols#L2CAP_.28Logical_Link_Control_and_Adaptation_Protocol.29"&gt;http://en.wikipedia.org&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Bluetooth_protocols#L2CAP_.28Logical_Link_Control_and_Adaptation_Protocol.29"&gt;/wiki/Bluetooth_protocols#L2CAP_.28Logical_Link_Control_and_Adaptation_Protocol.29&lt;/a&gt;&lt;br /&gt;Bluecove site: &lt;a href="http://code.google.com/p/bluecove/"&gt;http://code.google.com/p/bluecove/&lt;/a&gt;&lt;br /&gt;Eclipse site: &lt;a href="http://www.eclipse.org/"&gt;http://www.eclipse.org/&lt;/a&gt;&lt;br /&gt;Blue Soleil site: &lt;a href="http://www.bluesoleil.com/"&gt;http://www.bluesoleil.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-4306710578820113463?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/4306710578820113463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=4306710578820113463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/4306710578820113463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/4306710578820113463'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/10/squeezii-schmiizii-diizii-wiigee.html' title='Squeezii Schmiizii Diizii &quot;Wiigee&quot;'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-6566899051702494327</id><published>2008-10-23T15:38:00.005+01:00</published><updated>2008-10-23T16:05:57.631+01:00</updated><title type='text'>Using the Wii Remote with Director</title><content type='html'>Proof Of Concept time folks!&lt;br /&gt;&lt;br /&gt;Using an example from my module for 3D graphics using Director and the example code for the Wii Remote Director Xtra, I've managed to demonstrate how it is indeed possible for the Wii Remote to change variables in Macromedia Director MX (note: the Xtra only seems to work for MX, those with the new Adobe Director probably won't get anything working, tough :P).&lt;br /&gt;&lt;br /&gt;Obviously, this isn't exactly the first time anyone's done this before (yeh, obviously!) but this stage of my research moreorless defines the direction in which my project is likely to take - for the programming portion of it at least.&lt;br /&gt;&lt;br /&gt;The screenshot below shows what I came up with... It's the quickest and dirtiest method, but I just needed to see for myself that it's possible to manipulate 3D graphics, albeit on a basic level, using the Wii Remote.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_lDcYhCuzqMg/SQCPRmvLUEI/AAAAAAAAADA/xy0KOZP4kFM/s1600-h/director-proof-of-concept.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 223px;" src="http://4.bp.blogspot.com/_lDcYhCuzqMg/SQCPRmvLUEI/AAAAAAAAADA/xy0KOZP4kFM/s400/director-proof-of-concept.JPG" alt="" id="BLOGGER_PHOTO_ID_5260361897387708482" border="0" /&gt;&lt;/a&gt;I set the program up to make the cube rotate about the x-axis and the sphere rotate about the y-axis.  In terms of the Wii Remote this means that pointing it up or down will make the cube move and tilting it from side to side will make the sphere spin from side to side. &lt;br /&gt;&lt;br /&gt;The program is very responsive with no delay between making the movement with the remote and seeing the result of the movement reflected on the screen. &lt;br /&gt;&lt;br /&gt;When I placed the remote on a flat surface and flicked it to make it rock, even these small rocking movements were registered.  All in all, this test was a complete success!  The next test will be to import a terrain/model from 3dsMAX that's slightly more complicated, just to see if the smoothness of this test can be maintained.&lt;br /&gt;&lt;br /&gt;One thing to note for all this - this is just taking the numbers from the Wii Remote Xtra and using them without performing any calculations.  I also didn't have much regard for HOW the 3D models were moved/rotated, I just used the first method that came to hand, therefore the test doesn't respond as expected sometimes...!&lt;br /&gt;&lt;br /&gt;The next task will be to have the 3D models moving in exact relation to the way the Wii remote is pitched or rolled.  i.e. the changes aren't relative, they should be absolute!  Another task will be to officially begin my research into specialised user-interfaces and methods of control.  This will all hark back to my original ideas that involved the use of webcams - who knows, this method of control may crop up again in my project!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-6566899051702494327?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/6566899051702494327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=6566899051702494327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6566899051702494327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6566899051702494327'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/10/using-wii-remote-with-director.html' title='Using the Wii Remote with Director'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_lDcYhCuzqMg/SQCPRmvLUEI/AAAAAAAAADA/xy0KOZP4kFM/s72-c/director-proof-of-concept.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-3372000444291084047</id><published>2008-10-23T15:15:00.001+01:00</published><updated>2008-10-23T15:24:36.855+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lingo'/><category scheme='http://www.blogger.com/atom/ns#' term='Director MX'/><category scheme='http://www.blogger.com/atom/ns#' term='3dsMAX'/><title type='text'>Wii &amp; Director MX</title><content type='html'>Well, the software I'm using to make my project has changed since the hazy summer days when Flash seemed like the ideal option. &lt;br /&gt;&lt;br /&gt;There are a few reasons for this! &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;One &lt;/span&gt;- &lt;span style="font-weight: bold;"&gt;Director MX&lt;/span&gt; has an Xtra that you can download for free that enables seamless integration between the Wii Remote and Director using very little &lt;span style="font-weight: bold;"&gt;Lingo&lt;/span&gt; code to get the data into the software...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Two &lt;/span&gt;- It's possible to import 3D models from &lt;span style="font-weight: bold;"&gt;3dsMAX&lt;/span&gt; and then traverse them in Director - again with relatively little effort compared to using a 3D-engine with Flash (like Papervision 3D)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Three &lt;/span&gt;- The method of getting the data into Flash, using WiiFlashServer, required the use of AS3, some of which is radically different to AS2 and I personally do not have the time to update my knowledge of AS.  As I have to learn Director's Lingo language for another module, it's easier really!&lt;br /&gt;&lt;br /&gt;Next up is the proof-of-concept!&lt;br /&gt;&lt;br /&gt;cheers...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-3372000444291084047?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/3372000444291084047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=3372000444291084047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3372000444291084047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3372000444291084047'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/10/wiidirection.html' title='Wii &amp; Director MX'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-8253817485237225462</id><published>2008-10-23T14:49:00.003+01:00</published><updated>2008-10-23T17:44:42.409+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='University'/><category scheme='http://www.blogger.com/atom/ns#' term='User Interfaces'/><title type='text'>Individual Project Proposal - Wiiiiiiii</title><content type='html'>Oh, it's been a while again...&lt;br /&gt;&lt;br /&gt;Here's my project proposal - it's not the greatest prose in the history of English but it sort of does the job!&lt;br /&gt;&lt;br /&gt;My project will centre around researching intuitive methods of interacting with a computer – be it a workstation, laptop or another bespoke computer system such as a games console or installation-art.&lt;br /&gt;&lt;br /&gt;The first element of my project will be made up of research into the existing intuitive control methods or user interfaces that are available on the market today, and several from the past.  Many user interfaces or methods of control aren't intuitive or natural and may require training to use.  I shall be finding out why these methods of control have been successful, or not.&lt;br /&gt;&lt;br /&gt;The bulk of the research will involve finding methods of interacting with the computer system that feel more 'human' or natural.&lt;br /&gt;&lt;br /&gt;Over the course of the overall research into user interfaces, I shall also be investigating the many possibilities there are for capturing motion information onto a computer and then using it in a meaningful way.  For example, the Nintendo Wii remote controller can be linked to a computer via Bluetooth and used with a variety of programming environments ranging from Flash, Director all the way through to many open-source developments.&lt;br /&gt;&lt;br /&gt;The second part of the project will involve using the research to produce an application based in a 3D environment.&lt;br /&gt;&lt;br /&gt;The control device that I will be using is the Nintendo Wii remote.  This is due to the fact that it has a whole array of sensors (accelerometers) that send a continuous stream of information to be interpreted by the computer.&lt;br /&gt;&lt;br /&gt;The aim is to give the user the ability to traverse the 3D environment without using any button presses, but rather using a series of different movements or gestures – the latter being much more natural.  There have been many inventive uses for the sensors in the Wii remote, which is apparent from looking at the choice of games that are available for the Wii.  Another of my aims when creating this application is to create a series of gestures that need to be carried out to move through the world (such as waving the remote in a circular motion or moving it very quickly, miming the swinging motion of a baseball bat). There may also be a game-playing element to this application.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's it but it will be revised shortly...!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-8253817485237225462?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/8253817485237225462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=8253817485237225462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/8253817485237225462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/8253817485237225462'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/10/individual-project-proposal-wiiiiiiii.html' title='Individual Project Proposal - Wiiiiiiii'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-2338022285183081503</id><published>2008-08-16T01:02:00.002+01:00</published><updated>2008-08-16T01:18:56.409+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><category scheme='http://www.blogger.com/atom/ns#' term='Rez'/><title type='text'>Project Idea #1</title><content type='html'>It's been a while again, but here's a semi-decent idea for a project!  So, point by point below...&lt;br /&gt;&lt;br /&gt;1.  'Rez in Flash'&lt;br /&gt;2.  ...but in a faux-3D world.&lt;br /&gt;3.  The player flies into the screen.&lt;br /&gt;4.  Exclusively uses a Nintendo Wii Remote as a means of control.&lt;br /&gt;5.  Move the player left and right by altering the 'roll' of the Wii Remote.&lt;br /&gt;6.  Aim using the Wii Remote functioning in the same way as a mouse.&lt;br /&gt;7.  Use of gestures - Tracing different shapes using the Wii Remote to unlock areas and proceed through the game.&lt;br /&gt;&lt;br /&gt;That's all folks - hope it's easy to make!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-2338022285183081503?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/2338022285183081503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=2338022285183081503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2338022285183081503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2338022285183081503'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/08/project-idea-1.html' title='Project Idea #1'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-6652011754368912763</id><published>2008-07-23T08:31:00.004+01:00</published><updated>2008-07-23T08:42:38.275+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>Another Dose Of Wii - asblabs.wiimote</title><content type='html'>(yeh, the awful puns continue...)&lt;br /&gt;&lt;br /&gt;Found an incredibly useful set of classes from here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.asb-labs.com/blog/flash-gaming-classes-wiimote-wiiflash/"&gt;http://www.asb-labs.com/blog/flash-gaming-classes-wiimote-wiiflash/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Amongst other fun things you can:&lt;br /&gt;&lt;br /&gt;1. Point the Wii Remote at the screen and use it to move a cursor object around the stage.&lt;br /&gt;2. Control individual LEDs on the Wii Remote - a bit pointless, but very very fun I suppose.&lt;br /&gt;3. Register if a certain combination of buttons has been pressed.  Intended for use in game programming, however, there are a dozens of other uses for this ablity apart from gaming...&lt;br /&gt;&lt;br /&gt;...back later!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-6652011754368912763?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/6652011754368912763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=6652011754368912763' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6652011754368912763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6652011754368912763'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/07/another-dose-of-wii-asblabswiimote.html' title='Another Dose Of Wii - asblabs.wiimote'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-263810920613943631</id><published>2008-07-21T22:56:00.006+01:00</published><updated>2008-07-22T00:06:28.446+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><title type='text'>3 Shades Of Wii... and Johnny Lee</title><content type='html'>(that's &lt;span style="font-style: italic;"&gt;pun #2&lt;/span&gt; up there... guaranteed to get much worse as this project progresses)&lt;br /&gt;&lt;br /&gt;Below is a list - which I shall build up - of all the software that I've found, and will subsequently fiddle with and document in a fair amount of detail... but very briefly -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(note: if the software is for use with a PC then I'll assume that BlueSoleil is running and a connection between the Wii Remote and PC has been established)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;glovePIE&lt;/span&gt; - script driven software that runs on a PC that senses all the movements from the Wii Remote including the accelerometers.  The most flexible solution with a high learning curve.&lt;br /&gt;(&lt;a href="http://carl.kenner.googlepages.com/glovepie"&gt;http://carl.kenner.googlepages.com/glovepie&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WiiCade&lt;/span&gt; - this is a Flash API that allows you to create a Flash application with Wii Remote control other than mere pointing and clicking, more buttons are supported, intended to be run through the Wii Internet Channel.&lt;br /&gt;(&lt;a href="http://labs.wiicade.com/index.html"&gt;http://labs.wiicade.com/index.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WiiFlash&lt;/span&gt; - Probably the most exciting out of the lot because it allows you to directly access the Wii Remote from Flash using actionscript.  It's also possible to connect and differentiate between up to 4 remotes and nunchucks.  The major downside is that there isn't currently any access to data from the accelerometers on the Remote.  You also have to run a piece of software called WiiFlash Server that may require you to update your .NET framework, although it runs transparently and doesn't need any configuration.&lt;br /&gt;(&lt;a href="http://www.wiiflash.org/"&gt;http://www.wiiflash.org/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Johnny Lee&lt;/span&gt; - OK, so he's not a piece of software but it would be stupid to be writing this without mentioning his research.  Lee has come up with many ideas for implementing the technology inside the Wii Remote including an interactive whiteboard and many small 3D experiments that have to been seen!  Anyway, his work has become quite an inspiration for my project - if only in terms of the innovations...&lt;br /&gt;(&lt;a href="http://www.cs.cmu.edu/%7Ejohnny/"&gt;http://www.cs.cmu.edu/~johnny/&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Thaaaaaat's all folks...&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-263810920613943631?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/263810920613943631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=263810920613943631' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/263810920613943631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/263810920613943631'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/07/3-shades-of-wii-and-johnny-lee.html' title='3 Shades Of Wii... and Johnny Lee'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-6180446509966574573</id><published>2008-07-10T20:33:00.009+01:00</published><updated>2008-07-12T13:20:41.897+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Infrared'/><category scheme='http://www.blogger.com/atom/ns#' term='Remote'/><category scheme='http://www.blogger.com/atom/ns#' term='Wii'/><category scheme='http://www.blogger.com/atom/ns#' term='Nintendo'/><category scheme='http://www.blogger.com/atom/ns#' term='Bluetooth'/><title type='text'>Wii Things Amuse Wii Minds...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_lDcYhCuzqMg/SHZkb-4kb0I/AAAAAAAAACA/nsHLocSI8ic/s1600-h/wiimote.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_lDcYhCuzqMg/SHZkb-4kb0I/AAAAAAAAACA/nsHLocSI8ic/s400/wiimote.jpg" alt="" id="BLOGGER_PHOTO_ID_5221471249882181442" border="0" /&gt;&lt;/a&gt;Phew! After a little while, I'm back with my account of my Wii little adventures (that's pun #1...)&lt;br /&gt;&lt;br /&gt;In the past, there have been many systems, gizmos and gadgets released that have incorporated some sort of pointing device.  To cut to the chase, none have proven so sucessful, at least on such a widespread scale as the 'Wiimote' used as the primary control device for the Nintendo Wii games console.&lt;br /&gt;&lt;br /&gt;There are sensors to detect movement in all directions, including the speed (or rather acceleration) of those movements.  The remote can also sense it's tilt and pitch.  The main use of the remote however, is to point at the screen and interact with various elements presented on the television.  To achieve this, a series of infrared LEDs are placed above or below the television.  The remote has a camera built in to it's point that senses the position of the infrared LEDs and interprets this information as a position for a cursor etc. on the screen.  Yes, that so-called 'Sensor Bar' that is placed on your TV doesn't sense a single solitary atom of information... all the communication is between the Wiimote and Wii using Bluetooth!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_lDcYhCuzqMg/SHaJ1WJMSnI/AAAAAAAAACI/uXzTd29beb8/s1600-h/wiimoteIR.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_lDcYhCuzqMg/SHaJ1WJMSnI/AAAAAAAAACI/uXzTd29beb8/s400/wiimoteIR.jpg" alt="" id="BLOGGER_PHOTO_ID_5221512367552875122" border="0" /&gt;&lt;/a&gt;Anyway - the point of me waffling about the Wii Remote is that it's possible to use all it's functionality with a PC!&lt;br /&gt;&lt;br /&gt;The best part is that it's actually a relatively simple process to make the connection between Wiimote and PC.&lt;br /&gt;&lt;br /&gt;You need the following (links at the end of the post)...&lt;br /&gt;&lt;br /&gt;1. a Wii Remote&lt;br /&gt;2. an actual Nintendo Wii OR a wireless sensor bar - you need this for the pointing aspect of the remote.  However, you could even use several candles if you wanted to!&lt;br /&gt;3. Bluetooth connectivity on your computer (I'm using a PC with Windows XP for the record...)&lt;br /&gt;4. BlueSoleil - this is the software that will actually detect and pair your Wii remote to your computer&lt;br /&gt;5. glovePIE - finally, this is the software that reads the information from the Wii remote's sensors and provides appropriate feedback - in this case, through mouse movements and mouse clicks!&lt;br /&gt;&lt;br /&gt;The only thing that remains is to tell glovePIE what you want it to sense from the Wii remote... The most reliable (but by no means the only) code I've found for controlling the mouse so far resides here:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.wiili.org/index.php/GlovePIE:Carl%27s_IR_Mouse"&gt;http://www.wiili.org/index.php/GlovePIE:Carl%27s_IR_Mouse&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Just paste all that code into the glovePIE code view and press the 'run' button at the top! ...and Bob should be your mother's brother...&lt;br /&gt;&lt;br /&gt;I shall return when I've managed to write some of my own code for glovePIE :)&lt;br /&gt;&lt;br /&gt;Links...&lt;br /&gt;&lt;a href="http://www.wiiprojects.org/bluetooth.html"&gt;http://www.wiiprojects.org/bluetooth.html&lt;/a&gt; - useful for setting up BlueSoleil&lt;br /&gt;&lt;a href="http://carl.kenner.googlepages.com/glovepie_download"&gt;http://carl.kenner.googlepages.com/glovepie_download&lt;/a&gt; - glovePIE download page&lt;br /&gt;&lt;a href="http://www.wiili.org/"&gt;http://www.wiili.org/&lt;/a&gt; - everything else you'll need to know for research and scripts for glovePIE&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-6180446509966574573?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/6180446509966574573/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=6180446509966574573' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6180446509966574573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/6180446509966574573'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/07/wii-things-amuse-wii-minds.html' title='Wii Things Amuse Wii Minds...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_lDcYhCuzqMg/SHZkb-4kb0I/AAAAAAAAACA/nsHLocSI8ic/s72-c/wiimote.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-7097468632613955321</id><published>2008-06-11T13:47:00.016+01:00</published><updated>2008-06-11T14:48:53.952+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Processing'/><category scheme='http://www.blogger.com/atom/ns#' term='Making Things Kit'/><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><category scheme='http://www.blogger.com/atom/ns#' term='User Interfaces'/><title type='text'>Sensing stuff...</title><content type='html'>OK, here's another set of methods of getting information into the computer, other than my webcam experiments.&lt;br /&gt;&lt;br /&gt;A short while ago I read a very inspirational book by Brendan Dawes (&lt;a href="http://www.brendandawes.com/"&gt;http://www.brendandawes.com/&lt;/a&gt;) called 'Analog In , Digital Out' (&lt;a href="http://www.amazon.co.uk/Analog-Digital-Out-Brendan-Interaction/dp/0321429168"&gt;at Amazon UK&lt;/a&gt;).  He's one of the gurus on Flash and all things multimedia.  His book focusses on the ways that analog or real-life sources of data, like light and sound, can be converted into useful and meaningful data on a computer.&lt;br /&gt;&lt;br /&gt;His experiments include making a doorbell ring when someone visits his website, and gathering colour, size and shape data from a webcam trained on a piece of playdough - where the playdough was the user interface...!&lt;br /&gt;&lt;br /&gt;All sounds strange but these two examples alone have given me lots of ideas and influence on my project.&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight: bold; font-style: italic;"&gt;doorbell example&lt;/span&gt; was created using the following kit:&lt;br /&gt;&lt;a href="http://www.makingthings.com/products/KIT-MAKE-CTRL/"&gt;http://www.makingthings.com/products/KIT-MAKE-CTRL/&lt;/a&gt;&lt;br /&gt;This electronics kit connects to the computer using either USB or ethernet and can have an array of sensor devices attached to it.  These sensors include those for light, infrared, pressure and a series of switches.  It's also possible to send signals out to the device and control devices like motors and LED lights.&lt;br /&gt;&lt;br /&gt;The data is received into Flash using a custom actionscript class as a stream of numerical data.  It's then moreorless up to the designer to use the data as they see fit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The &lt;span style="font-weight: bold; font-style: italic;"&gt;playdough example&lt;/span&gt; was created using a combination of a webcam and a piece of software called &lt;a href="http://www.cycling74.com/products/max5"&gt;Cycling74 Max 5&lt;/a&gt;.  The software company originally began by making audio-plugins for editing suites on the Apple Mac.  Using the program's &lt;a href="http://www.cycling74.com/products/mmjoverview"&gt;video capabilities&lt;/a&gt;, it's possible to detect an object's size, colour and whole load of other variables...&lt;br /&gt;&lt;br /&gt;Lastly, a &lt;span style="font-weight: bold; font-style: italic;"&gt;lot of the examples&lt;/span&gt; in the book employ a programming language called &lt;a href="http://processing.org/"&gt;Processing&lt;/a&gt;, which is derived from JAVA.  The description from the website says...&lt;br /&gt;&lt;br /&gt;"&lt;span style="font-weight: bold; font-style: italic;"&gt;Processing &lt;/span&gt;is an open source programming language and environment for          people who want to program images, animation, and interactions. It is used by          students, artists, designers, researchers, and hobbyists for          learning, prototyping, and production."&lt;br /&gt;&lt;br /&gt;Processing is an incredibly versatile language that makes programming specifically for graphics a complete cinch.  Many of the classes you would have to explicitly call if using a traditional JAVA compiler are readily available.  I downloaded a special class that enabled me to use my webcam within the Processing environment.  The example I tested consisted of around only 50 lines of code.  It enabled the user to wave their hand (or any other object) in front of the camera and attract a virtual tennis ball to their fingertips...  I'll provide an example on my website soon!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;These are the 3 main programming environments I shall research and employ during the course of my project...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-7097468632613955321?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/7097468632613955321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=7097468632613955321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7097468632613955321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7097468632613955321'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/sensing-stuff.html' title='Sensing stuff...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-5366546286428722525</id><published>2008-06-11T11:31:00.012+01:00</published><updated>2008-06-11T13:24:42.114+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Concerts'/><category scheme='http://www.blogger.com/atom/ns#' term='Jean Michel Jarre'/><category scheme='http://www.blogger.com/atom/ns#' term='User Interfaces'/><title type='text'>Jean Michel Jarre - An Introduction...</title><content type='html'>The first port of call for my research into unconventional user-interfaces begins with Jean Michel Jarre and his amazing laser harp!  First, watch the video below...&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-7ba17718a4e03d75" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v20.nonxt6.googlevideo.com/videoplayback?id%3D7ba17718a4e03d75%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D19FA7C720BA2C3F780B6A67D4D5208E306D29A2E.6E59CF9726826FED2BF0E85B763F196DDBCF5135%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D7ba17718a4e03d75%26offsetms%3D5000%26itag%3Dw160%26sigh%3Do0V9niiGmMizRIHoZ6-sbfmkVp4&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v20.nonxt6.googlevideo.com/videoplayback?id%3D7ba17718a4e03d75%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D19FA7C720BA2C3F780B6A67D4D5208E306D29A2E.6E59CF9726826FED2BF0E85B763F196DDBCF5135%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D7ba17718a4e03d75%26offsetms%3D5000%26itag%3Dw160%26sigh%3Do0V9niiGmMizRIHoZ6-sbfmkVp4&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;For those who haven't heard of Jean Michel Jarre, he is one of the most innovative electronic music producers of our time (well, in all fairness, ANY time as he's only been producing since the mid 60s) in the way he pioneered the use of the first synthesisers and continued to do so. &lt;br /&gt;&lt;br /&gt;He's also renowned for his live performances which include:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Rendezvous Houston&lt;/span&gt; (text shamelessly from &lt;a href="http://en.wikipedia.org/wiki/Jean_Michel_Jarre"&gt;http://en.wikipedia.org/wiki/Jean_Michel_Jarre&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;In 1986, NASA and the city of Houston asked him to do a concert to celebrate NASA's 25th anniversary and the city of Houston's 150th anniversary.&lt;br /&gt;&lt;br /&gt;During that concert, astronaut Ronald McNair was to play the saxophone part of Jarre's piece "Rendez-Vous VI" while in orbit on board the Space Shuttle Challenger. It was to have been the first piece of music recorded in space, for the album. After the Challenger disaster of January 28, 1986 which killed McNair, the piece was recorded with a different saxophonist, retitled "Ron's piece" and the album dedicated to the seven Challenger astronauts.&lt;br /&gt;&lt;br /&gt;The Houston concert entered the Guinness Book of Records for the audience of over 1.5 million. During the concert, Houston native Kirk Whalum performed Ron McNair's saxophone part on "Ron's Piece". The concert featured giant projections of photographic images and laser patterns onto the buildings of downtown Houston, including a gigantic white screen on the front face of the Texaco Heritage Plaza building, which was under construction at the time. Due to vehicles stopping on the freeway passing the concert venue the freeways had to be closed down for the duration of the concert.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Twelve Dreams of the Sun&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;On 31 December 1999 Jarre held a spectacular music and light show in the Egyptian desert, near Giza. The show, called The 12 Dreams of the Sun, celebrated the new millennium and 5,000 years of civilization in Egypt. It also offered a preview of his new album, Metamorphoses.&lt;br /&gt;&lt;br /&gt;The concert which started on new years eve and followed all the way through to the dawn of the new millennium in a 12 hour spectacular which including many performances from local artists and musicians, the concert used the backdrop of the great pyramids to project images onto, but fog during the evening concert by Jarre caused the projections on the facades of the pyramids to be blocked from view. Jarre played for around two hours during the build up to the new millennium with a countdown at midnight and spectacular firework display and then returned on stage in the early morning to perform a second slot to see in the first sunrise of the new millennium.&lt;br /&gt;&lt;br /&gt;The following is a clip from &lt;span style="font-style: italic;"&gt;Twelve Dreams of the Sun&lt;/span&gt;.  It shows the countdown to the new millennium - forget London or NYC for the year 2000, this is amazing...&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-1ceb63ed319b7715" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v23.nonxt5.googlevideo.com/videoplayback?id%3D1ceb63ed319b7715%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D59B47D1E30A0684201C48658C9E27711E907DEEA.532D44B8773A53C795D38F2EEF51A3F7CC4D3DF4%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1ceb63ed319b7715%26offsetms%3D5000%26itag%3Dw160%26sigh%3D76F6VEQjOCFtEKKwC329lq7cIZk&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v23.nonxt5.googlevideo.com/videoplayback?id%3D1ceb63ed319b7715%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D59B47D1E30A0684201C48658C9E27711E907DEEA.532D44B8773A53C795D38F2EEF51A3F7CC4D3DF4%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1ceb63ed319b7715%26offsetms%3D5000%26itag%3Dw160%26sigh%3D76F6VEQjOCFtEKKwC329lq7cIZk&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Anyway, I'm slightly off the point here... the focus of my research into Jean Michel Jarre is mainly on the innovative controllers for his synthesisers which include the laser-harp featured in the first video...&lt;br /&gt;&lt;br /&gt;...more later!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-5366546286428722525?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=1ceb63ed319b7715&amp;type=video%2Fmp4' length='0'/><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=7ba17718a4e03d75&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/5366546286428722525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=5366546286428722525' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/5366546286428722525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/5366546286428722525'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/jean-michel-jarre-introduction.html' title='Jean Michel Jarre - An Introduction...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-4774367446964191743</id><published>2008-06-10T18:10:00.006+01:00</published><updated>2008-06-10T18:30:49.134+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='University'/><title type='text'>Project Ideas</title><content type='html'>One of the aims of this blog is to document my work on my final year project for university...  It's a facility for me to write down all the interesting bits and pieces I happen to discovery along the way!&lt;br /&gt;&lt;br /&gt;At the moment my ideas are still coming together for my project.  I'll be focussing on the following topics over the next few weeks:&lt;br /&gt;&lt;br /&gt;1.  The way computer games utilise music.&lt;br /&gt;2.  Unconventional user interfaces in - a. Computer games, b. Professional music software, c. Studio/Live artist performances.&lt;br /&gt;3.  Various programming langauges that support such interfaces.&lt;br /&gt;&lt;br /&gt;4.  ...whilst all the time creating/programming experiments, which demostrate some findings of the above points!&lt;br /&gt;&lt;br /&gt;Just thought a small bit of clarification was needed before I plunge ahead (for me as much as you, the reader!)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-4774367446964191743?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/4774367446964191743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=4774367446964191743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/4774367446964191743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/4774367446964191743'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/project-ideas.html' title='Project Ideas'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-1529762172635989995</id><published>2008-06-09T10:20:00.005+01:00</published><updated>2008-06-09T11:24:52.610+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rez'/><title type='text'>Rez - Gameplay videos...</title><content type='html'>For those interested, the following links are complete gameplay videos, from Youtube - wish I was good enough to get past Area 3... C'est la vie...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Area 1&lt;/span&gt;&lt;br /&gt;"Buggie Running Beeps 01" / &lt;a href="http://www.thatgamecalledrez.com/main.php?fln=game&amp;amp;flv=music&amp;amp;ctnt=game15#"&gt;Keiichi Sugiyama&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=7hh9fZkr1jk"&gt;http://uk.youtube.com/watch?v=7hh9fZkr1jk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Area 2&lt;/span&gt;&lt;br /&gt;"Protocol Rain" / &lt;a href="http://www.myspace.com/ebizootanuma" target="_blank"&gt;mist&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=A4EFNWe4mCc"&gt;http://uk.youtube.com/watch?v=A4EFNWe4mCc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Area 3&lt;/span&gt;&lt;br /&gt;"Creation The State Of Art (Part 1 - 6)" / &lt;a href="http://www.kenishii.com/" target="_blank"&gt;Ken Ishii&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=yzoGoAo0ZMA"&gt;http://uk.youtube.com/watch?v=yzoGoAo0ZMA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Area 4&lt;/span&gt;&lt;br /&gt;"Rock Is Sponge" / &lt;a href="http://www.joujouka.com/" target="_blank"&gt;Joujouka&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=cCh6WlK027I"&gt;http://uk.youtube.com/watch?v=cCh6WlK027I&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Area 5 &lt;/span&gt;/&lt;span style="font-style: italic;"&gt; Last Boss&lt;/span&gt;&lt;br /&gt;"Fear" / &lt;a href="http://www.adamfreeland.net/" target="_blank"&gt;Adam Freeland&lt;/a&gt;&lt;br /&gt;"Boss Attacks" / &lt;a href="http://www.coldcut.net/coldcut" target="_blank"&gt;Coldcut&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=3nq_oMDlrtM"&gt;http://uk.youtube.com/watch?v=3nq_oMDlrtM&lt;/a&gt; (an awesome 26 minutes long!)&lt;br /&gt;&lt;br /&gt;Enjoying watching!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-1529762172635989995?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/1529762172635989995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=1529762172635989995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/1529762172635989995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/1529762172635989995'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/rez-gameplay-videos.html' title='Rez - Gameplay videos...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-3888037803767226407</id><published>2008-06-08T08:35:00.013+01:00</published><updated>2008-06-09T11:25:05.410+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rez'/><title type='text'>Rez</title><content type='html'>Rez is one of the only games centering around music that can truly get away with it's abstract graphics. I suppose the developers got around having to explain the surreal graphics by saying it's set inside a computer - where allegedly anything can happen :P&lt;br /&gt;&lt;br /&gt;The blurb on the back of the PlayStation 2 (I can't account for the Dreamcast box-art) release is wonderfully vague:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Discover a new world&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A world of sound, visuals and vibrations&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Enter the network and awaken 'Eden'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Release your instincts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Open you senses&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(...and in the smallest writing but the most important!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Experience synesthesia&lt;/span&gt; (&lt;a href="http://en.wikipedia.org/wiki/Synesthesia"&gt;http://en.wikipedia.org/wiki/Synesthesia&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Without proceeding too much further, have a look at the video below...&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-1e613f327e7bb418" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt6.googlevideo.com/videoplayback?id%3D1e613f327e7bb418%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7A564147E4958E56B9328F23ABF7CE43839CBDBD.22D96D1397DE66E268373AC98E1C687043846918%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1e613f327e7bb418%26offsetms%3D5000%26itag%3Dw160%26sigh%3DO3xIEdrog3Q0miiFBGWQD1SN5Vw&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt6.googlevideo.com/videoplayback?id%3D1e613f327e7bb418%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330276733%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D7A564147E4958E56B9328F23ABF7CE43839CBDBD.22D96D1397DE66E268373AC98E1C687043846918%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3D1e613f327e7bb418%26offsetms%3D5000%26itag%3Dw160%26sigh%3DO3xIEdrog3Q0miiFBGWQD1SN5Vw&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;The ONLY idea of this game is to aim and shoot.  The player doesn't have to worry about navigating around the level or running out of ammunition.  This game is known as an 'On The Rails Shooter' which essentially means that the computer has complete control and all you need to do is shoot - simple.  Though, not hugely simple(!)  If you don't shoot fast enough and/or accurately enough you'll 'die'...&lt;br /&gt;&lt;br /&gt;OK - the musical aspect of the game.  There are 5 'areas' that make up the game.  Each area has it's own piece of music.  These are tracks that have been composed by 'real-life' artists.  While each track is a proper piece of music in itself, they've been stripped down piece by piece and split into stages to match the pace of the game.  That is to say, that at the beginning of an area, it's generally a slow start in terms of having things to shoot at, therefore, the music only consists of a basic drum rhythm.  Each area is split into 10 stages.  At the height of the action, the music will sound very 'busy' with all the usual parts in place (drums, bass, synths, percussion...)&lt;br /&gt;&lt;br /&gt;After harping on about all the shooting and the music, the main part of the game is the experience that the player gets.  Everytime they shoot something, a percussive noise, synthesiser note or sound effect is played in harmony with the rest of the music.  When an enemy has been dispatched off the virtual coil, there is a small light-show explosion.  It's difficult to explain but the way the enemy explodes visually matches the exploding sound... if that makes sense at all (see the Wikipedia link above, yes I KNOW Wikipedia is genrally a no-no, but in this case it's actually a good pool of information, so there...!)&lt;br /&gt;&lt;br /&gt;So, to conclude...&lt;br /&gt;&lt;br /&gt;The graphics and overall aesthetic of the game will play a huge influence in the way I think about the way I design my application - whether it turns out to be a game - or not...&lt;br /&gt;&lt;br /&gt;Links...&lt;br /&gt;Official site of the original Dreamcast/PS2 game -&lt;a href="http://www.sonicteam.com/rez/e/news/index.html"&gt; http://www.sonicteam.com/rez/e/news/index.html&lt;/a&gt;&lt;br /&gt;Official site of Rez HD for the Xbox360 - &lt;a href="http://www.thatgamecalledrez.com/"&gt;http://www.thatgamecalledrez.com/&lt;/a&gt;&lt;br /&gt;Wikipedia entry for Rez - &lt;a href="http://en.wikipedia.org/wiki/Rez"&gt;http://en.wikipedia.org/wiki/Rez&lt;/a&gt;... There's a couple of pieces of information that may prove interesting...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;br /&gt;&lt;br /&gt;(Rez shall return in this blog...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-3888037803767226407?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=1e613f327e7bb418&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/3888037803767226407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=3888037803767226407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3888037803767226407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3888037803767226407'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/rez.html' title='Rez'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-5522194916537841773</id><published>2008-06-07T22:27:00.005+01:00</published><updated>2008-06-09T11:25:18.116+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DJ Max Portable'/><title type='text'>DJ Max Portable meets My Webcam - Mockup</title><content type='html'>This is roughly what I'm looking at making.  I'll be using code from my previous webcam examples and merging that with the beginnings of code that will judge whether the user ('player' is such a strong word at this stage!) has made a motion at the correct time and in the correct place on the screen.&lt;br /&gt;&lt;br /&gt;The example shall work as follows:&lt;br /&gt;1.  The blocks fall down the screen the image of the user.&lt;br /&gt;2.  The user shall jab upwards into the picture with their right or left hand when the corresponding block reaches the thick line at the bottom of the screen.&lt;br /&gt;3a.  If the user responds early, late or not at all then nothing will register (- in DJ Max Portable terms, this would count as a failure and would reduce the chances of finishing the song)&lt;br /&gt;3b.  If the user judges the timing correctly (there will be a reasonable margin for error here) then the game continues...&lt;br /&gt;&lt;br /&gt;Watch this space...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_lDcYhCuzqMg/SEsEmXP9qFI/AAAAAAAAABY/n79Zhkmxgvk/s1600-h/mockup1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_lDcYhCuzqMg/SEsEmXP9qFI/AAAAAAAAABY/n79Zhkmxgvk/s400/mockup1.png" alt="" id="BLOGGER_PHOTO_ID_5209262451106621522" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-5522194916537841773?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/5522194916537841773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=5522194916537841773' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/5522194916537841773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/5522194916537841773'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/dj-max-portable-meets-my-webcam-mockup.html' title='DJ Max Portable meets My Webcam - Mockup'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_lDcYhCuzqMg/SEsEmXP9qFI/AAAAAAAAABY/n79Zhkmxgvk/s72-c/mockup1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-3009103077159874897</id><published>2008-06-07T21:35:00.005+01:00</published><updated>2008-06-09T11:25:26.155+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DJ Max Portable'/><title type='text'>DJ Max Portable on the PSP...</title><content type='html'>Well, here we have DJ Max Portable for the PSP.  I'm not trying to write a review of the game, rather explain how it works.&lt;br /&gt;&lt;br /&gt;The simple idea of the game is to press the correct buttons on the PSP in time to the music.  The blocks falling down the screen (see the screenshots) indicate which buttons to press.   When the player presses the correct button then they've contributed to the song by triggering a sound.  Throughout each song in the game, the button presses add everything from rhythm parts to synthesiser sounds.  The more accomplished the player, the more pleasing the song will sound.&lt;br /&gt;&lt;br /&gt;If the player makes too many mistakes then the game will exit the level/song and display a message that instructs the player to get more practice.  Because of this, the game has quite a steep learning curve.&lt;br /&gt;&lt;br /&gt;The difficulty of the game is determined by several factors.&lt;br /&gt;&lt;br /&gt;1. The speed/complexity of the song that's playing.  The faster or more parts that the song has, then the more blocks will fall down the screen.&lt;br /&gt;&lt;br /&gt;2. The number of buttons the player has to use.  The player can select to play using 4, 6 or even 8 buttons on the PSP.  Personally, playing with 4 buttons so far has proven to be quite tricky!&lt;br /&gt;&lt;br /&gt;The music you play to is graded in terms of difficulty, so initially the gameplay feels quite sedate, though after the first couple of songs are out the way the pace quickens somewhat dramatically!&lt;br /&gt;&lt;br /&gt;So far this game has proved quite influential in terms of my project.  I'll be trying to build a small concept project where the player will have to move in front of a webcam to the rhythm of the music rather than pushing buttons.  So far the accuracy of detecting motion on specific parts of the screen using a webcam (see my examples if you can!) have been a bit sketchy so I'll be trying the DJ Max Portable equivalent of '2 button mode' for the time being...&lt;br /&gt;&lt;br /&gt;So, the view the player will have is of themselves on the screen with blocks falling down over their image.  When the blocks reach the bottom of the screen, the player will make a motion (I'll figure the precise motion out at some point!) over a specified area of the screen to 'clear' the block and enable them to progress through the game...&lt;br /&gt;...hopefully some of that makes sense!&lt;br /&gt;&lt;br /&gt;Videos of more talented people than me playing DJ Max Portable 1 &amp;amp; 2 on the PSP&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=2pxsq-nA6o4"&gt;http://uk.youtube.com/watch?v=2pxsq-nA6o4&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=09VLs3nqE7M"&gt;http://uk.youtube.com/watch?v=09VLs3nqE7M&lt;/a&gt;&lt;br /&gt;&lt;a href="http://uk.youtube.com/watch?v=zfMlAv7ABEg"&gt;http://uk.youtube.com/watch?v=zfMlAv7ABEg&lt;/a&gt;&lt;br /&gt;(the last link will give you an idea of how frantic the gameplay gets!)&lt;br /&gt;&lt;br /&gt;From here:&lt;br /&gt;Mock-up images to demonstrate this idea - pictures are a thousand words which means there will be less stuttering from me!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_lDcYhCuzqMg/SErxiHP9qBI/AAAAAAAAAA4/z_7ECpvw8ww/s1600-h/djmaxss1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_lDcYhCuzqMg/SErxiHP9qBI/AAAAAAAAAA4/z_7ECpvw8ww/s400/djmaxss1.jpg" alt="" id="BLOGGER_PHOTO_ID_5209241487371249682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_lDcYhCuzqMg/SErxiXP9qCI/AAAAAAAAABA/nzxBwxx4LcI/s1600-h/djmaxss2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_lDcYhCuzqMg/SErxiXP9qCI/AAAAAAAAABA/nzxBwxx4LcI/s400/djmaxss2.jpg" alt="" id="BLOGGER_PHOTO_ID_5209241491666216994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_lDcYhCuzqMg/SErxiXP9qDI/AAAAAAAAABI/Vw5TY7txNdo/s1600-h/djmaxss3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_lDcYhCuzqMg/SErxiXP9qDI/AAAAAAAAABI/Vw5TY7txNdo/s400/djmaxss3.jpg" alt="" id="BLOGGER_PHOTO_ID_5209241491666217010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_lDcYhCuzqMg/SErxinP9qEI/AAAAAAAAABQ/dGRxdFLENOg/s1600-h/djmaxss4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp3.blogger.com/_lDcYhCuzqMg/SErxinP9qEI/AAAAAAAAABQ/dGRxdFLENOg/s400/djmaxss4.jpg" alt="" id="BLOGGER_PHOTO_ID_5209241495961184322" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-3009103077159874897?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/3009103077159874897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=3009103077159874897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3009103077159874897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/3009103077159874897'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/dj-max-portable-on-psp.html' title='DJ Max Portable on the PSP...'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_lDcYhCuzqMg/SErxiHP9qBI/AAAAAAAAAA4/z_7ECpvw8ww/s72-c/djmaxss1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-8272689259321147847</id><published>2008-06-04T08:51:00.000+01:00</published><updated>2008-06-04T09:03:17.240+01:00</updated><title type='text'>Summary: Games centering around music</title><content type='html'>Some of the most surreal and original computer games over the history of console and PC gaming have involved mixing musical elements with engaging visuals and/or artwork. &lt;br /&gt;I'm in the process of investigating a selection of games that involve the player with music in some way. &lt;br /&gt;&lt;br /&gt;Some of the games have the player actually contributing to the music - with each button press triggering a sound... example: DJ Max Portable/Guitar Hero&lt;br /&gt;&lt;br /&gt;...all the way through to the music merely being used as an indicator of the player's progress through the game where the music 'builds'... example: Rez&lt;br /&gt;&lt;br /&gt;Finally, there are some games where music creation is the only purpose.  I won't be focussing too much on this sort of music game - because there isn't really a 'game' element.  The player doesn't progress in any way and there aren't any goals or challenges.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-8272689259321147847?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/8272689259321147847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=8272689259321147847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/8272689259321147847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/8272689259321147847'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/summary-games-centering-around-music.html' title='Summary: Games centering around music'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-7341945019796965650</id><published>2008-06-03T20:08:00.001+01:00</published><updated>2008-06-09T11:25:43.941+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Detecting motion in certain areas...with a webcam - part deux</title><content type='html'>This example is similar to the other area detection example - however it's more refined, uses 'slightly' more sophisticated code to detect the certain areas, AND is more fun to play with.&lt;br /&gt;&lt;br /&gt;When you start the example, you will see three blinking dots towards the bottom of your picture.  These are the hitpoints where the motion is sensed.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.glidepro.net/labs/areadetect2.html"&gt;Area Detection example 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've found that raising your hand up relatively quick up into the picture works quite well!  It's way more useable than the first example - in my little honest opinion&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-7341945019796965650?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/7341945019796965650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=7341945019796965650' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7341945019796965650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/7341945019796965650'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/detecting-motion-in-certain-areaswith_03.html' title='Detecting motion in certain areas...with a webcam - part deux'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-2482138226581298366</id><published>2008-06-03T20:03:00.001+01:00</published><updated>2008-06-09T11:25:53.085+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Detecting motion in certain areas...with a webcam</title><content type='html'>Next - it would be handy to detect motion in certain areas of the screen.  The following example detects motion in each corner of the camera's picture - like a 2x2 grid.&lt;br /&gt;&lt;br /&gt;Each corner plays a different sound when you wave your hand in front of it.  Now - it's not the best sort of detection by any stretch of the imagination, but have a bit of a play and see what you think...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.glidepro.net/labs/areadetect1.html"&gt;Area Detection example 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Have fun playing many tunes...!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-2482138226581298366?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/2482138226581298366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=2482138226581298366' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2482138226581298366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2482138226581298366'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/detecting-motion-in-certain-areaswith.html' title='Detecting motion in certain areas...with a webcam'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-2728786734939987429</id><published>2008-06-03T19:41:00.001+01:00</published><updated>2008-06-09T11:26:01.608+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flash'/><title type='text'>Simple motion detection using a webcam</title><content type='html'>Well, I want to make some kind of music-based program or even a game.  I haven't quite decided what I'd like to make though, however I'm going to be mucking around and experimenting with wild and wacky user interfaces.  Using a webcam as an input device seems a good place to start - the mouse and keyboard are boring :P&lt;br /&gt;&lt;br /&gt;So the following link will take you to my first experiement - motion detection.  You obviously need a webcam for this otherwise nothing will happen(!).  If you're using an Apple Mac with a built-in webcam you may need to select the correct camera device - for some reason there are a few in a list to choose from!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.glidepro.net/labs/motiondetect.html"&gt;Motion Detection Example&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The program senses a certain level of motion in front of your webcam.  I guess it depends on which webcam you have - I have the Microsoft VX-1000 and it seems sensitive enough...  Let me know how you get on...&lt;br /&gt;&lt;br /&gt;At some point I'll upload videos of me waving manically at my computer screen - good times...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-2728786734939987429?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/2728786734939987429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=2728786734939987429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2728786734939987429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2728786734939987429'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/simple-motion-detection-using-webcam.html' title='Simple motion detection using a webcam'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6875531030337374586.post-2589682564272487214</id><published>2008-06-03T19:34:00.000+01:00</published><updated>2008-06-03T19:41:27.694+01:00</updated><title type='text'>Glide Labs' new home!</title><content type='html'>This is the home of the news for Glide Labs - the nickname for my final year uni project!&lt;br /&gt;&lt;br /&gt;Here will be all the research, programming experiments and all kinds of other things...&lt;br /&gt;&lt;br /&gt;Back with 'all kinds of other things' in a moment...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MA&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6875531030337374586-2589682564272487214?l=glidelabs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://glidelabs.blogspot.com/feeds/2589682564272487214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6875531030337374586&amp;postID=2589682564272487214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2589682564272487214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6875531030337374586/posts/default/2589682564272487214'/><link rel='alternate' type='text/html' href='http://glidelabs.blogspot.com/2008/06/glide-labs-new-home.html' title='Glide Labs&apos; new home!'/><author><name>Michael</name><uri>http://www.blogger.com/profile/04413268945074524412</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
