Leap Motion SDK

Hi guys,

I just had a quick look to see if there was an existing thread on the subject, but couldn’t see one so I’m starting a new one. :mrgreen:

Just had my application for a Leap Motion dev kit accepted and saw immediately that the SDK included a JUCE snapshot in its “Examples/Third party” folder. (I hope Jules got a kick-back for that).

For the uninitiated, you can read about Leap Motion here:

The hardware won’t be in my hands for a good few weeks, but when it arrives I fully intend to play with it. If I do anything that’s JUCE related, I’ll post it here. Perhaps anyone else who’s got the dev kit can do the same.

Laters. :smiley:

Yes, I’ve got one of these on the way too. I’ll probably be hacking with SuperCollider first to try out ideas, but I’d love to get something working with Juce in due course too.

I got one a couple of months ago, this thingy is really impressive (and fun to play with!).
I’m making a simple video game for it in my spare time :wink:

That’s good to hear.

At work I’m doing a lot of GUI work in Qt and was already thinking about extending our 3D map view with motion control, but when I saw JUCE sitting in the Leap Motion SDK it reminded me of how much I like the audio support in JUCE - and immediately started thinking about sound toys that I could make for my baby boy to play with. Virtual FisherPrice Activity Center anyone? :mrgreen:

Waiting on one here too.

Looks like one incredible tool.
Glad to hear it’s working well for those who have it.
Would love to hear other dev notes as people get more into it.

Naturally, very happy the examples use Juce too!

Great. I’m going to suggest to Jules that “Leap Motion development” gets its own section here. There’s bound to be plenty more questions about JUCE and the LM SDK in the next few months.

I’ve been writing a couple of musical apps with Juce and Leap Motion for a few months now (http://youtu.be/U2HFcfOwDtI, http://youtu.be/kJeQNOEVr8I). The SDK is very easy to drop-in and use with C++ code. It provides some gesture recognition (swipe, circle, tap) that can be used to easily extend existing apps.

I see a need for a completely “Leap-enabled” 2d app framework that includes a set of UI controls and their canonical motion-controlled interactions. Juce is an obvious candidate for a starting point for this kind of thing. For starters, it would be great for the basic control classes to support motion control, but since this is new territory it probably makes more sense to implement entirely new controls as a superset to Juce. I’ve started doing this in an OpenGL context (lists, buttons, & sliders). My plan is to re-write them as regular juce components and open source them.

Feel free to get in touch if you have any ideas for Juce + Leap.

Adam S

Is that you who made the airharp app? Well done, I love it! I would really love to build audio apps for the leap, but the agreement with my company forbids me to do it :frowning:
Anyway, I like your idea of creating a bunch of widgets for the leap. I’ll see if I can come up with something useful :wink:

Hey everyone

My dev kit arrived last night, so I’m all raring to go now. 8)

@asomers Yeah I can imagine a layer on top of vanilla-JUCE for rapid 2D UI development for the Leap would be very useful. In fact, since I already did something like that last year for a company, I don’t see why I couldn’t do it again (only better probably) now. The only thing really miss with JUCE is something like Qt’s signal-slot mechanism. (Jules…?)

@masshacker If your company claims to own the code you write at home, the standard technique is to get your spouse to publish it (unless she/he also has the same contract). I knew a guy at Yamaha who claimed he was teaching his wife C++, and her first public release happened to be a multi-client audio-over-ip driver for the M7CL mixing console. :lol:

I’ve also been playing with Cinder, which has been a lot of fun and opened up some doors that had been closed since my Amiga days.

Omg! That solution would be great! Too bad I’m not married yet… (Hey, so developers have girlfriends now??)
Actually my company doesn’t claim any rights on the code I write at home, it just forbids me to compete with it in the audio software field. And I’m fine with that.
I had never developed a videogame before, so I’m having quite fun right now (after all, isn’t this what software development should be about?)
I’m using Ogre3d for my little game, it’s plain c++ and cross-platform:
Plus it can be scripted using Lua.

Yeah at work we also use Ogre3D for visualising the floor plans of sites that use our kit as part of their PA/VA installation:

I’m not completely happy with the way the Ogre3D build scripts works though. All those file swaps in the background… It makes Eclipse go a bit potty. :?

Your inventions assignment clause can be as flexible as your employer wants it to be. An open dialogue about what side projects you’re working on is generally a good idea. If they deem your project to not be in direct competition you’d probably have no trouble getting it excluded from your contract in writing.

You might also want to check out Polycode. It’s similar in spirit to Cinder but more game-engine oriented IIUC. Also Lua-scriptable which is pretty neat. I recently built it and played with all the demos. Very impressive how much can be done with tiny bits of code.

Ooh Polycode looks pretty tasty. :wink: Thanks for the tip.

Thanks for posting!While many individuals still wait for the Microsoft Kinect to become the killer motion control hardware that changes the way we use computers, Leap Motion may have an inside track. The fully 3-D motion control program will be bundled with Asus PC laptop computers soon, then other platforms. The early reviews are quite good. A [mod edit]personal finance[/mod edit] can help you pay for your new Kinect or Leap Motion.

moderator note (valley): URL removed, as despite being on topic, this post looked spammy.

Finally got around to writing some software for this. Here are my experiences with Leap …

First off … it’s remarkably good tech. The frame rate and accuracy on the Leap are way better than the kinect or the other predecessors. The finger tracking is spot on, and I though I haven’t looked at them much, I’m excited to see the gesture recognition in action. The camera is reasonably solid, though it has randomly stopped working for me certain days (and then started again the next day), and some of the firmware updates along the way have been very problematic. Still - they seem to have ironed out most of the kinks.

The code was all super easy to use and modify (especially since all the example code in the SDK uses Juce … woohoo!).

I got it working in an audio plugin (the libs are all dynamically linked, and I was frankly a little surprised that it worked out so well in plugins … no nasty static memory issues so far). I am having substantial problems with openGL in plugins, though (see http://www.rawmaterialsoftware.com/viewtopic.php?f=8&t=11704).

Anyway, I was really happy with the results.

Here is a video showing the Leap controlling a delay/filter effect (all Juce built):

Can you tell us if the review on engadget http://www.engadget.com/2013/07/22/leap-motion-controller-review/ is a good one.
I mean they talk about some problems with the controller, did you get those too ?

My buddy Adam just released his first Leap based product: https://www.facebook.com/handwavy

I know he is a JUCE user, but I don’t know how much JUCE he used for this project. Hopefully he will chime in with any details.

The engadget review is pretty good, yeah. Sometimes a finger will disappear, or be jumpy. Turning your hand makes it sometimes lose fingers. But … provided the programs are smart enough, this doesn’t have to be an issue. I think the tech is great, you just need to know how to parse through the data and use what is stable (like the hand positions) over what is jumpy (finger positions).

There is tons of data for velocity vectors, normal vectors (orientation), gestures, etc. I’m sure some of it is more solid than others … but it’s more for the developer to decide what metrics suit their needs.

This is the brief mention of JUCE in Leap SDK:


It appears to have been momentary.