I mentioned a presentation I gave in Singapore a few weeks that talked about integrating Kinect and Leap Motion with AutoCAD. After the session I had a good conversation (in person and then by email) with Nagappan Nachiappan. Nagappan is a talented young software engineer working on AutoCAD’s JavaScript API, but has a strong interest in HCI (his final year degree project used computer vision techniques to implement a virtual mouse that moves with your hand).
Nagappan was responding to concerns I’d raised about the ergonomic impact of hovering your hand above the device. His primary question was “can the Leap Motion controller see through glass?”. We had some fun trying it out, there and then, but we didn’t make much progress: the glass tables in the meeting room were too opaque and trying it with the window didn’t work (the Singapore sunshine was just too bright).
I gave it a try on returning home with a piece of Plexiglas and found that – while the sensitivity is reduced somewhat – it did work, and it would absolutely be feasible to implement an approach where the Leap Motion is covered by a piece of glass (or Plexiglas) which is then used as a surface for user input.
That’s where things got interesting: for this week’s internal technical summit, I threw together a prototype that showed just that in action. After calibrating the level of the glass (by tapping it or pointing to it and hitting the space bar), it’s possible to draw circles and other shapes on the surface that can then be extruded vertically by lifting your hand away from the surface. Fun stuff!
Here’s the updated source project – I took the opportunity to refactor the code, so it’s looking a lot cleaner – and here’s a video I took of the surface in action:
I think the results are pretty interesting. While not perfect – it’s probably worth experimenting with different materials, to improve the sensitivity and therefore the user’s control – it does show one possible approach for mitigating some of the ergonomic issues the Leap Motion device presents. Having a hard surface makes a huge difference from a usability perspective. Thanks for the inspiration, Nagappan!