Hacker News new | ask | show | jobs
by DungFu 4879 days ago
I have had one way before they shipped out the SDK, and all I have to say is that it is quite a bit more janky than the hype lets it seem.

Fingers will disappear without notice when nothing all that crazy is happening and the frame rate of the device (which is speced at 120+ fps) is much closer to around 45-55 fps. This leads so some major problems with long term finger acquisition that has to be handled by the developer. Quite frustrating to do things yourself that should be handled by the SDK.

While I understand that this SDK batch is a "beta/alpha" test, it is much buggier than it should be. The SDK will hang the entire OS quite often, and there is simply no way to detect if the device is actually plugged in. It will report invalid finger data rather than telling you that no device exists.

And the javascript API is so new, that it is borderline useless. It doesn't even properly report finger width, which is kind of sad since that worked many versions ago.

Overall a cool device with lots of hype, but needs a lot more work to even be mildly useful for anything more than just simple gestures.

1 comments

It's possible your device has older hardware. I have one from several weeks ago. It does indeed get 120+ fps even with the JavaScript API. Fingers do drop, but I notice that problem less in "precise" mode which is closer to 60 fps.

The JavaScript API doesn't do much for you, but the data is still quite good coming over the WebSocket. I've used it to create some galleries of gestures, and a gesture diagnostic tool. I've been trying to come up with solutions to the problems you've described... if it starts working out I'll release a 3rd-party JavaScript library for better finger permanence and filtering out noisy data.

http://fleetinbeing.net/leap-play/recorder-gallery.html

http://fleetinbeing.net/leap-play/recorder-diagnostic.html

Updating to this post: I was able to test on newer Leap hardware and fingers no longer drop or jitter. I don't think a JavaScript library will be necessary to filter noise or track fingers in the production version.
That looks awesome! I'm just learning d3 and I didn't notice d3 can do so many cool stuff.
You can skip data-binding, the update pattern and SVG for this kind of step-by-step animation. I use Canvas to render these and just a few d3 functions (scales, extents, json). Here's another example to learn from that uses similar techniques to get good performance out of Canvas:

http://www.jasondavies.com/maps/transition/