Altering Font Size Based on User Proximity Using Kinect

kinect-one

One of the things we discussed at our recent presentation covering Kinect was using is in the periphery as an aide rather than being the centre of attention.

The concept was simple- as the user moves closer or farther away to a screen, use the kinect depth sensor to detect this and some code to change the font size so it’s easier for the user to read.

The code to do this (in its most simple form) is also quiet straight forward.

code1

We start with a basic XMAL grid – I’ve gone with some simple Lorem  Ipsum text. Then we’re going to put a binding on the FontSize of the text. To get an idea on distance I’m going to display how far the user is from the screen in metres.

code2

In the codebehind we create variables to store our KinectSensor, our BodyFrameReader and an array of bodies.

image

In our MainWindow we then grab a reference to the Kinect Sensor, open the body frame reader and sensor.

image

In our MainWindow_Loaded event we hook to the bodyframeReader’s FrameArrived event (this is where the good stuff goes) and in our closing make sure we clean up our code.

image

In our reader’s frame arrived event we grab the body data. Then I grab the first tracked body (ie me).

There’s lots of options for which joint/s to use by I’m just going to grab the head and as long as it’s bring tracked I’m going to use it’s Z coordinate.

image

I set my property we bind on screen to display on screen to the current Z value and also refire logic to calculate what font size we should use.  I’ve just chosen to do a multiplication factor on the distance buy you could get a lot more fancy.

Presentation in Johannesburg – Preparation for the NUI – a developers survival guide

IMG_5675

Today we visited Microsoft Johannesburg office and presented about preparing for NUI.

We covered some history, talked about all type of sensors and senses, Kinect, and of course the potential for HoloLens.

IMG_5672

We had some great audience participation with our activities and we always love catching up with locals on our travels.

Imagine Cup–Australian Finals

blog_wsf2014_660x360

Another event near and dear to my heart – Imagine Cup. I’ve been involved with the competition since 2010 and I can truly say it never ceases to put a smile on my face.

This year I was one of the judges for the Australian finals in Sydney.

A great set of teams with equally great ideas battling it out for a chance to represent us in the Worldwide finals. 

There was a great spread of ideas with Empathy training for Alzheimers using Oculus and Kinect, Windows Phone app that allows people to record their mood and using artificial intelligence algorithms to determine if you might need a friendly phone call etc., staff location tracking for use in emergency situations, gas leak detection etc.

Good luck to the winners!

Kinect For Windows v2–big news

kinectadapater

While I was on holidays with no internet braving some big ocean waves some really awesome stuff happened with Kinect For Windows – V2 was officially released – go download it from here!

But that’s not all the exciting news….

Deploy to the Windows Store – now we can deploy kinect v2 apps to the windows store which makes getting your apps out to a wider audience easier!

There’s a few K4W apps already on there to try it out: Kinect Evolution, 3D Builder, and YAKiT

Adapter for XBox One Kinect – this one I was so excited about when I heard. You can now also buy an adapter that lets you use your existing XBbox One Kinect on your PC! And in Australia is $59.99 on the Microsoft store.

Windows To Go–Dev’ing Kinect when you don’t have an Win8 PC

0574_v2-sensor_503px_jpg-503x0

For those running a Mac or a pc running something other the Windows 8 or 8.1 you can still develop with Kinect v2 SDK. The Kinect Team have put together a great post on a few alternatives here.

My favorite is Windows To Go – Which allows you to set up on an external HDD .  The Kinect team have given a great step by step guide on how to set it all up.  There’s also a great list of recommended USB HDD hardware here to help.

This is going to be great for courses, hackathons etc when people don’t have access to Win 8 for their own machine aswell as those die hard Mac and Win7 people.

Top Resources for Getting to Know Kinect v2 SDK

0574_v2-sensor_503px_jpg-503x0

The public preview for the Kinect V2 SDK came out recently and I get a few questions on where to start.  Here’s my top resources to help you out.

2766_v2hub-powersupply_503px_jpg-503x0

Since the alpha device the hub and powersupply has reduced in size dramatically which makes it much easier to transport.

1. SDK Download – http://www.microsoft.com/en-us/download/details.aspx?id=43661. This has everything you need including a bunch of sample apps to get you started.

2. Buy the device – http://www.microsoftstore.com/store/msaus/en_AU/pdp/Kinect-for-Windows-v2-Sensor/productID.299146900 A lot of people had trouble getting hold of the v1 device (in Australia anyway). Now you can order it straight from the Microsoft store.

3. Channel 9 videos: http://channel9.msdn.com/Series/Programming-Kinect-for-Windows-v2 – set of jump start videos on all the main features of the v2 device.

4. Forums for when you get stuck: http://social.msdn.microsoft.com/Forums/en-US/home?category=kinectsdks

5. Spread the word – @KinectWindows