Our top 10 wishlist for Kinect For Windows

kinect

We’ve been playing with Kinect for Windows since it launched over a year ago in Beta. There’s a few things we’d really like to see that we think would make it that much better. Here’s our top 10.

1. Make the Kinect device more mountable.

70

At the moment it’s really tough to do anything other than sit the Kinect on a table or bench. There’s no tripod mount thread or mountable plate template in the base of the Kinect. We’d really like to see the standard tripod screw thread added to the base. So far to work around this we’ve had to do is:

  • Buy the wall mount kit (around $25 AUS)

71kinect-wall-mount-xbox-360

  • Throw out the wall mount bit and hook to the kinect

72

  • Attach to a tripod head or similar thread screw.

73

2. Allow the Kinect to be able to work in different mount positions e.g. upside down

Quite a few people we’ve talked to about using Kinect in their organisation need to mound the Kinect up high. The easiest way to mount this is upside-down. The problem is the Kinect skeleton and person tracking doesn’t work upside down (or side-ways). A nice configuration feature would be able to specify the orientation of the kinect so it could say flip the image to work in different orientations.

3. Kinect App store

People want a way to get their Kinect apps out into the wild so people can use them. We have a Windows Phone store and a Windows 8 store…why not utilise these platforms and have a Kinect store or bolt onto the existing stores so developers can get out there and have their apps more accessible to more people.

4. Depth Frame Image as a more friendly object

If you’re doing depth frame processing currently, the first thing you probably have to do is some bit shifting to separate the person index from the actual depth data. It would be nice to have this as a nicer entity.  I assume it’s because we’re getting so much data through and so quickly it’ll be a performance reason.

5. Make the Kinect able to be used as a webcam

When I plug the Kinect into my computer, at the moment it doesn’t come up as a webcam device. It’s got the camera, microphones and speakers but I can’t use it as a webcam at the moment. While I understand we can get better webcams that are much smaller and probably cheaper than buying a Kinect device, we’ve heard from more than one person that they’d like to use it as a webcam as a reason to get it into their organisation so they can then build up better ways to use it later after they already have the devices.

6. Give the Kinect kickass skype support

Following on from the webcam idea, we’d love to see it integrated into skype and get all those great features like zooming in and tracking the person in the room who is speaking.

7. Kinect Studio – make this able to record without needing to hook to an app

I’m loving the idea of Kinect Studio. It makes the whole debugging your application actually possible. At the moment you have to have an app to be able to record the information. In this sense it’s just like a debugger, it hooks to your running app. A lot of people just wanted to be able to record the information from Kinect Studio without hooking to an app. There were a lots of different reasons. One of the common ones was so people could install the sdk and record a bunch of information as a data sampling exercise. This data could then be used to analyse what the user does and to test the application that hasn’t been built yet.

8. Simple built in gestures

While gestures can be a tough one to nail down and identify there are a few common ones most people seem to want like swipe, wave, stop etc. It would be great to see a few out-of-the-box gestures that people can use if they like and if they want something more complicated they can build themselves.

9. More industrial

As the Kinect for Windows allows us to get out of our lounge rooms with the device, the need for it to be more industrial increases. It needs to be a bit more rugged to handle the situations where it won’t be sitting nicely on your living room cabinet. A version that works betting in outside light, near/around water, can handle a few bumps and knocks would be great for so many applications.

10. Different form factors

One of the biggest hurdles we’ve come across it the identification of the Kinect device and the association to the XBox. Quite often all will be going well till it goes up for sign off and is seen as “oh that toy”. I do wonder if the Kinect for Windows device looked different to the Xbox version if people would take it a bit more seriously. I know 100’s of hours has probably gone into the design and certification already. It would be nice however to have a few different form factors that would suit different installation types.

 

Have you got any items on you Kinect feature wish-list?

 

Technorati Tags: ,

TTYA 2012-300 schoolgirls and a Kinect

60

Technology Takes You Anywhere (TTYA) -  an event aimed at getting schoolgirls interested in IT was back again this year. This is the 4th year we’ve been involved with the event. This year the location moved to QUT Kelvin Grove and we wanted to show the girls how much fun the Kinect can be.

61

They loved seeing themselves just in the colour camera.

62

Had no shortage of volunteers to see their skeleton.

Had lots of good questions from the groups we had through. We got some interesting answers when I asked the difference between a doll (Chucky) and an artist manakin, the main one being – “One’s scary and the other’s not”. A very good point. I also realised that showing the girls what a kinect looks like when you pull it apart probably needed a bit more thought…I might have a few angry parents when their children come home and take to their devices with a hammer!

63

We finished off the day watching the short films the schools had submitted. They were quite entertaining. I think the girls had a great day out and I hope it sparks a few ideas in their heads for a future career. Thanks to the organisers who go to the effort to put on such a great event every year! Looking forward to 2013!

Technorati Tags: ,

July 10-Imagine Cup finalist announcement

50

Today was the exciting day for everyone. Finding out who will win the Imagine Cup for 2012. Just after lunch they took all the contestants out to get a group photo at Darling Harbour. Then one of my favourite parts of the week – the showcase. I get to walk around and see all the solutions and have a chat with the teams. It was packed in here this year with lots of media – which is awesome for the teams.

Then we’re all ushered into the big room for the finalists announcements.

55

The teams are all pumped ready to hear who the winners are.

54

There’s lots of dancing, cheering and waving of flags.

51

It opens with some dancing..

52

and the room is lit but the screens of all the nokia phones being used to take photos and videos.

53

The students show off their phones. Then onto the winners…I’ve condensed down to the Software Design winners as there are quite a lot of other prizes.

56

1st – quad Squad – Ukraine – Anton Posternikov, Anton Stepanov, Maxim Osika, Valeriy Yasakov

57

2nd – Coccolo – Japan – Megumi Tabata, Mio Okawa, Shunichi Akamatsu, Tun Jie Tan

58

3rd – wi-Go – Portugal – Luis de Matos, Michael Adaixo, Pefro Querido, Ana Figueira. Unfortuantly I didn’t get to see these guys in the showcase so had to settle for a picture from the big screen.

59

Congratulations to all the winners! I saw some awesome teams and ideas again this year and really hope to be part of next year’s event where the finals will take place in Russia!

 

Technorati Tags:

9 July-Imagine Cup finalists, Bridge Climb and Women Innovators Dinner

44

Today was the big day for the top 6 teams. Their final presentation to the panel of judges. It was an interesting morning watching all the cool solutions:

Taiwan – had created a device + software to monitor activity levels and sleep patterns to assist wearers to lose weight. One of the team told his story growing up as a fat kid and how it had effected his life and his journey to change.

Ukraine – have created a glove + software that allows the deaf to use sign language and then the glove + software processes the signs and translates to spoken words using text to speech to allow them to communicate with ordinary people.

Japan – had a very energetic presentation showing off their smart led lighting solution which would dim lights in parts of rooms that are well lit to save extra power.

New Zealand – had created a phone app + online software to allow the blind to take photos of items and get information back about colour / text etc from OCR, family/friends, crowdsourcing or other services to help them with their daily activities.

Portugal – created a kinect-enabled shopping cart to follow shoppers around the supermarket to allow the disabled to more easily go shopping.

Greece – created a kinect software suite to assist Alzheimer patients fight the progression of the disease through exercise and activities design to help them retain memories.

45

Later in the day I was lucky to get a ticket on the Sydney Bridgeclimb. I’d never done this before and the weather and time of day were absolutely perfect for our climb. The view is spectacular!

46

The evening was the Women Innovators Dinner.

47

Pip chaired a great panel of ladies and men who shared their stories for the audience.

48

Great to see so many females and males turn out to support such an event.

Tomorrow is the big day…we find out who will take out the Imagine Cup for 2012!

8 July-Imagine Cup Finals Round 2

40

Today was another big day for the competitors and judges. Round 2 meant seeing 3 teams twice in the same day. First up was the normal presentation round where students pitched their solution to a  team of 6 judges. The afternoon was a new judging item added this year where the students spent 15 minutes presenting/demoing their solution at their showcase booth to the same set of judges and then had 15 mins of questions from the judges.

I really liked this addition as you get to see a lot more detail and spend more time with the students. I think the environment made them a bit more relaxed with us standing around asking questions rather than looking very authoritative behind a desk. All 3 projects I saw today were really awesome, but unfortunately none of them made it to the top 6.

Looking forward to seeing the top 6 present tomorrow: Taiwan, Ukraine, Japan, New Zealand, Portugal and Greece. Good luck guys!

 

Technorati Tags:

July 7-Round 1 of Imagine Cup

30

Today was fairly massive. Started at 8am and finished about 10:45 pm. Judged 6 teams today. There were lot of nerve but also lots of excitement and passion about their solutions.

Tonight they announced the 20 teams progressing to round 2:

Japan, Romania, Singapore, Greece, Ireland, China, Jordan, Qatar, Slovenia, Germany, Egypt, Australia, Kazakhstan, Ukraine (one of the teams I judged today), Taiwan, New Zealand, Uganda, Portugal, Korea and Oman.

In true spirit of imagine a world where technology solves the toughest problems, Uganda was unable to make it to Australia, so they competed “virtually” through video conferencing. It’s great to see that technology has allowed them to progress to the next round.

34

Congrats to all the teams and good luck for tomorrow.

31

32

33

Darling Harbour treated us to a fireworks display. Great view of it from my room.

Looking forward to seeing the round 2 teams tomorrow!

Technorati Tags:

6 July-Imagine Cup Opening Ceremony

20

Today was the opening ceremony day for Imagine Cup Australia. Registration opened and we were issued with our name tags and event guide for the week. We had  bunch of briefings on our duties as judges for the week.

21

We were lucky to be in the room where “the cup” is on show – it’s like the ashes of student software development and most of us had never been up close to it.

22

We spotted the engraving for Team Soak – the Australian team who won a few years ago. This year Ed is  a software design judge and David is a team sub-captain for the game design category.

23

Grabbed a quick snap of the Ed holding the cup with his name engraved on it for the first time. Very shortly after we all got tossed off stage by security for touching the cup..oops.

24

Later in the afternoon we had the opening ceremony. Always great to see all the students dressed up, showing off their pride in their country. This year is the 10th anniversary of imagine cup. There have been 1.65 million students compete from 194 countries in the last decade!

25

The team from Nokia was up on stage towards the end and announced they were giving all finalists a nokia lumia 800….

26

And this was their reaction Smile

27

The traditional ribbon cutting with the giant scissors….

28

followed by an insane amount of ticker tape. Tomorrow is a massive day where 76 finalist software design teams all have to present to the judges!

 

Technorati Tags: ,

5 July-Off to Sydney for Imagine Cup 2012

1

Today I headed to Sydney ready for the Imagine Cup 2012 World Wide finals. I was fortunate enough to be selected as a judge again this year. As I wandered around the local area it was cool to see the Imagine Cup flags flying along walking bridges and the front of the exhibition centre.

2

I had some spare time today so I headed out to Taronga Zoo to see the animals. I’m always blown away by the views the animals get of the city. The giraffes have a great backdrop of the cbd.

3

I hadn’t been to the zoo for at least 7 years and was really impressed at the improvements they’d made. The chimpanzee enclosure was great. They have a great open area to play and you can see them fairly close without any glass. Always cute to see the babies swinging high in the sky.

4

5

Got to reminisce our Africa trip when i visited the beautiful lions.

 6

7

Loved the Tigers too. They might well be my next trip.

8

I love a cute monkey.

9

And the Red Pandas are so cute!

10

I was also impressed by the sea lion and penguin area where there’s an amphitheatre area where you’re beside the pool with a big glass wall and can see them swimming, so gracefully and quite.

12

They were quite curious of the crowd and enjoyed coming up to the glass to see the people looking at it.

11

I was quite amused by the number of little kids up at the glass with their parent’s iphones, ipads and digital cameras snapping away the photos of the animals.

Looking forward to the opening ceremony tomorrow.

 

Technorati Tags: ,

Calling an ASHX handler from JavaScript

In my PhoneGap project I want to grab some data to display on Bing Maps.  Originally I created myself a really neat rest formatted WCF service that return JSON, but after I spent a day pulling my hair out trying to deploy it in IIS I gave up and went for something uber simple. Over on my server I’ve created myself an ashx handler and configured the urlmappings etc. so it looks quite neat and returns a nice JSON data packet.

This is the way I decided to access it from JavaScript – seemed the simplest.

        function callASHX(latitude, longitude) {
            var request = new XMLHttpRequest;
            request.open('GET', 'http://mysite.com/Items.aspx?latitude=' + latitude + '&longitude=' + longitude + '&buffer=500', false);
            request.send();
            if (request.status === 200) {
                var result = JSON.parse(request.responseText);
                if (result == null || result.Items == null || result.Items.length == 0) {
                    alert('No Items here');  
                } 
                 else {
                    addItems(result,latitude, longitude);
                }
            }              
        } 

Getting the shortest route directions to items using the Directions Module

I’ve been progressing a bit with my little IPhone PhoneGap Bing Maps app today. I’m at the stage where I can show my custom pushpins on the map within a polygon and centre the map on the polygon.

pins

The next ting I want to do is show the user how to drive to the pin nearest them. In my spatial database I have the latitude and longitude values for the items and I can use STDistance to find how far each item is from the user’s position. The problem here is that it give me the distance “as the crow flies” which in most cases it’s fine but if the item is on a parallel street sometimes I think it’s the closet item but would then end up driving past another item on my way around the block to reach it.

I could return my dataset ordered by the closest (as the bird flies distance).  Then I’m going to assume if I grab the 5 nearest items I’ve got a pretty damn good chance that one of those is in fact the closest to drive to. I’m going to use the Bing Maps Directions Module to plot the route for each one. I take the trip from my location to an item, then back, then to the next time and back as waypoints so I can process the data.

For the purpose of this example, I’m just grabbing the first 5 points that come back from my service as it doesn’t calculate the individual distances yet. Done like so:

First we create and load the directions module.

        var directionsManager;
        function loadDirectionsModule() {
            if (!directionsManager) {
                Microsoft.Maps.loadModule('Microsoft.Maps.Directions', { callback: createDirectionsManager });
            }
            else {
                createDirectionsManager();
            }
        }
        function createDirectionsManager() {

            if (!directionsManager) {
                directionsManager = new Microsoft.Maps.Directions.DirectionsManager(map);
            }

            directionsManager.resetDirections();
            directionsErrorEventObj = Microsoft.Maps.Events.addHandler(directionsManager, 'directionsError', function(arg) { alert(arg.message) });
            directionsUpdatedEventObj = Microsoft.Maps.Events.addHandler(directionsManager, 'directionsUpdated', function() { alert(‘directions updated’));
        }

After we have our current location and have called our service to get the nearby items we can determine the routes, by adding each item as return leg in the journey.

        function calculateBestDrivingRoute(hydrantResult, latitude, longitude){
            
            if (!directionsManager) { createDirectionsManager(); }
            directionsManager.resetDirections();
            // Set Route Mode to driving 
            directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.driving });
            
            // your position
            var fromWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(latitude, longitude) });
            directionsManager.addWaypoint(fromWaypoint);
              
            for (var i=0; i<hydrantResult.Hydrants.length; i++){
                
                  if (i<5) {
                   
                   // hydrant
                   var toWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(hydrantResult.Hydrants[i].Latitude, hydrantResult.Hydrants[i].Longitude) });
                   directionsManager.addWaypoint(toWaypoint);
                    
                    var fromWaypoint2 = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(latitude, longitude) });
                    directionsManager.addWaypoint(fromWaypoint2);
                   
                }
                else {
                    continue;
                }
            }
            
           if (directionsManager.getAllWaypoints().length > 1){
            directionsManager.calculateDirections();    
           }
        }

directions

This gives a driving route with a number of legs that we can now manipulate. We want the shortest leg from our current position to an item, so we need to take every 2nd leg and query its distance. Once we have the shortest leg, we can then redo the route.

First we modify our handler to call another function when the directions get updated from our original search.

            directionsUpdatedEventObj = Microsoft.Maps.Events.addHandler(directionsManager, 'directionsUpdated', calculateShortestRoute);

Then we loop through the legs and find the shortest one. Once we’ve found it we draw it on the map.

        function calculateShortestRoute(e){
            
            if (e.route[0].routeLegs.length > 1) {
                var shortestRoute = e.route[0].routeLegs[0];
                for (var i=0; i<e.route[0].routeLegs.length; i= i+2) {
                    if (shortestRoute.summary.distance > e.route[0].routeLegs[i].summary.distance){
                        shortestRoute = e.route[0].routeLegs[i];
                    }
                }
                createDrivingRoute(shortestRoute.startWaypointLocation.latitude, shortestRoute.startWaypointLocation.longitude, shortestRoute.endWaypointLocation.latitude, shortestRoute.endWaypointLocation.longitude);
            }            
        }
        function createDrivingRoute(fromLatitude, fromLongitude, toLatitude, toLongitude)
        {
            if (!directionsManager) { createDirectionsManager(); }
            directionsManager.resetDirections();
            
            directionsManager.setRequestOptions({ routeMode: Microsoft.Maps.Directions.RouteMode.driving });
            
            var fromWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(fromLatitude, fromLongitude) });
            directionsManager.addWaypoint(fromWaypoint);
            
            var toWaypoint = new Microsoft.Maps.Directions.Waypoint({ location: new Microsoft.Maps.Location(toLatitude, toLongitude) });
            directionsManager.addWaypoint(toWaypoint);
            
            directionsManager.calculateDirections();
        }

Then it will show us the driving route to the nearest item.

directionsfinal