leap motion sdk coding

  • hey guys,

    back when the leap motion controller was first announced, i jumped onboard the developer kit train. i'll soon be getting a leap with the sdk so i'm pretty damn excited to have this thing alongside a monome!!

    the coding will need to be in either C++, C#, java, or python.
    which would you recommend to use?

    thanks for your help in advance..

  • Python is the "English" of coding languages... that sounds pretty obnoxious but python really is awesome and it's easy to learn, Code Academy just added a whole python section.... Lots of information is out there too.

    I imagine, without really thinking it through, you would have to treat it like the monome. There would need to be some sort of software that would interpret and translate the leap information into midi/osc so you could pump that info to the appropiate app, and for sound it's going to be midi or osc. On the Leap end I didn't really look but I am assuming there are a default set of recognizable patterns and then xyz translation and rotation info. Your software would essentially need to assign midi values to those combination and individual things. So a flat palm = volume x/y = fader and z = filter eq or something... fuck I want to sign up for the dev kit haha


  • do it mate just do it :)
    they have an api which i plan to use to convert hand motion data into midi/osc

    sounds like python's the way to go - cheers..

  • yeah python's a solid choice. in applications where you're just translating between one protocol and another, unless the protocol is super-high-bandwidth (i.e. you're dealing with actual blocks of floating-point audio data), you won't get much speedup from writing in something like C++.

  • Did you get an email saying you'd be getting a unit :O? I too was quite early on the band wagon yet still heard nothing :(

  • Ditto. In fact, every indication is that I won't be receiving any hardware (except, eventually, for the units I pre-ordered). We should have access to the SDK without hardware soon enough. Though, what good that will do is anyone's guess.

  • Thats very true. Its a bit like bitwig, ive yet to hear of anyone who has seen/tested or knows of anyone working on the project. Bit brutal if you ask me. I need to pre-order but I see no hurry at the moment. Very expensive to create such a large run to send out to developers for free. They must have serious financial backing.

  • yeah i received an email. i feel like i got really lucky on this one. not holding my breath until the unit's in my hands though..

  • Congrats! I'm glad someone from the forums is getting in. Represent!

    (okay, maybe not "represent", but go forth and make things us like-minded individuals want to use)

  • Going back to the original question, though.. what's required for an end user to run Python apps?

    C++ would need to be compiled on each platform, Java sits in a runtime environment that most people already have.. When you deliver something in python, how technically adept do your users have to be in order to run it?

    I need to learn Python regardless. But if you're trying to reach a wider audience, is that a concern?

  • There are ways to package python scripts as executables but Python installation is a breeze and after that you just click the .py file and the script will run. You can use PyQT- not bundled with python, or Tkinter -bundled to make GUIs. You could also have scripts generate a web server/CGI so you can do everything in web browsers. I prefer that method but it's not something that is easy for end users to get going maybe.

    In the end python is almost transparent, install, run scripts. In terms of learning it's a simple language with minimal syntax and really plain language, the statements are real language "for apple in apples:" "if apple equals orange" etc

  • @ermin - fantastic news! really exciting, keep us in the loop.

  • http://blog.makezine.com/2012/12/05/airharp-for-leap-controller/


  • Dont fear taking on the wonderful elegance of C! At least consider it.

  • I will say, while I understand that for many of us, our ideas are esoteric and not as likely to add to a mainstream commercial launch selection, I was a bit upset when Leap's FB presence called out that a lot of developers have (independently of each other) set about adding support to the classic game "DOOM".

    Nothing against those developers for submitting the idea. But, how will having many different versions of the same game be more commercial than tapping into the DIY and controllerism scenes and inspiring a new generation of artists to build and share their creative tools?

    Apples and oranges, I know. But since they chose to brag about excess of "DOOM", I'm choosing to take the decision to prioritize that over us personally.

    (no worries; my non-devkit preorders will arrive someday...)

  • Also, the "best new product of 2012" proclamations bug me no end. It's not a product until they produce it. Almost all of those awards are premature, and belong to someone else this year.

    (we could go ahead and give Oscars to all three films in "the Hobbit" trilogy next year, but that's not how annual roundups work.)

    ("most anticipated product in 2012", I'd accept. It just isn't representative "of 2012". Grr.)

  • I got an email...im in and waiting on the device. Very exciting stuff.

  • It seems that I have been accepted. Interesting.

  • Great news!

  • Ugh. The "please update your profile" notice reached me at the busiest possible moment, and I ended up dropping the ball on that. Just followed up now. So, I probably won't be on this next wave of betas, but maybe the one after that?

    This one's my bad. Totally on me.

  • I put up a request only about a few weeks ago. I imagine you all put yours up probably back in May or so.

  • We did. But I don't think they're moving through the list in order of seniority.

  • Incidentally, if it doesn't violate NDA to answer this, please report back whether you're able to get data into max/msp, whether it be directly (the device showing up as an HID object) or indirectly (compiling an external).

  • @gtz - ill be working to try to get this working on max/msp.

  • http://cycling74.com/forums/topic.php?id=40060


  • Saw that a bit ago, it's great to see the groundwork is laid for max-ing with it.

    Will be interesting to see some monome + leap type hybrid control things. I can easily see myself adding that as another mode of interaction with stuff.

  • (what I'm about to describe probably requires turning the leap on its side, and possibly building a stand to keep it mounted at the correct height, but...)

    Seems like we should be able to build a monome/leap calibration utility easily enough, wherein you press buttons, and each press registers the position of your finger in space. Extrapolating from there, we know which button your finger is hovering over, and by what distance. Heck, we know that for all of your fingers.

    I don't know if the 20ms refresh time they were speaking of in that forum thread would be fast enough to make your monome/leap velocity sensitive, but you can bet I'll be exploring that.

  • this plus the soundplane/monome/anything for extra spacial control before and after notes could be pretty amazing

    adding a gesture for the new arcs to have a button press again would be great

  • @wednesdayayay - Thanks very much for posting them links!

  • Arc's physical button is "spongy". Great for press-turn-release gestures, but not suitable for tapping out rhythms. The leap-assisted buttons would reverse all of that (and possibly be velocity sensitive, to boot) The question being whether we can detect the press-turn-release gesture w/ leap, given the many angles that your hand positions itself around the encoder. Maybe.

    More than that, though, we could finally add the long-desired "touch detection" feature, completely separate from a button press.

    ...among other gestural possibilities.

  • For me it'd be about something altogether different. Would be kind of redundant using it as a monome/arc 'velocity sensor'.

    I was mainly thinking multiple dimension/parameter manipulation type stuff. The arc is amazing for fine control over single parameters (or at least as attached to one controller) but it can't generate complex multi-parametric gestures. Something like this basically only does that.

    I'm picturing having it mounted facing the above area of the monome/arc but a bit higher than the buttons so I can reach 'into' it and manipulate stuff, but having it be decoupled from the monome/arc controls.

    This is all wild speculation as its still not 'out there' yet.

  • I don't think it's redundant, but my work has always been about deconstructing context.

    Velocity sensitivity is but one example. As is turning the piano keyboard into a series of XY pads that also happen to serve as a piano keyboard. Or triggering a sample with a button press and controlling aspects of its playback with release gestures.

    Really, I think I want to focus on more subtle ideas, because the big obvious ones are already moving forward without me.

  • Just got a dev email to update my address, hope I get one soon. Really surprised actually.

  • Sounds promising. I can confirm that they didn't send that email to everyone, at least.

  • I am waiting for mine as well... :-)

  • interesting news:

  • big news for them..
    anyone received their leap / working on anything interesting?

  • I received a dev kit in the beginning of November...too busy working on other projects to make anything yet.

  • That's terrible. I hope your other projects pay well.

  • Who knows when my kit will ship, but I have to say that I'm going to finally have to learn a language to program anything for this. I will, however be working with the Max 'interpreter' the fine gentleman on the dev forums has made available and will likely be creating devices to match. Since I don't have an ARC at this time, I would likely work on implementing some sort of arc type control, though it could reasonably be anything/ What is really needed, however, to go along with this technology is a true holographic projector, Ironman style, for interfacing with...

  • haha gtz you make me feel so bad that i wanna send you my unit..
    shimoda - you talking about the max external?

  • Yep, that's the one alright. I'm sure gtz wouldn't mind a dev unit early, heck, I'm sure he'll send you his when it arrives :^D

  • just got three dev kits in the mail. it's on!


  • @flying, 3? damn! When did you get your email requesting address update?

  • Three dev kits??? Did you request three?

  • Are three enough for a flying octopus? I guess that leaves a few limbs free to mash buttons...

    I requested one, but pre-ordered two on top of that. Hmm.

    No need! I got my address confirmation email a day or two after Shimoda. Guessing we'll be in the same batch (eventually).

  • design peers, though I imagine you'll be LEAPs and bounds (yeah, I went there) ahead of me in terms of programming. I wonder if I can link BASIC to this?

    10 BEGIN
    20 Print "This is my program to get info from the LEAP"
    30 DamnInfo=0
    40 GET DamnInfo FROM Leap TO RestOfProgram
    50 Print RestOfProgram
    60 GOTO 30

  • 60 GOTO 40

    REM no need to initialize variables more than once.

  • 70 Duh OR Doh!

  • did you receive yours yet GTZ? I just received and would genuinely consider sending it to you as you seem pretty keen on starting. (I am as well, but I just started a new job etc and so on)

  • @GTZ, I assume you haven't yet received an email with tracking info, just a request for address update?