Leap parisrb

743 vues

Publié le

French presentation about Leap Motion and Ruby at Paris.rb

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
743
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Leap parisrb

  1. 1. & Greg - paris.rb - Juillet 2013
  2. 2. Hello, I’m Greg @glejeune R&D @
  3. 3. Le Leap Motion • Produit de Leap Motion, inc (Ocuspec) David Holz (NASA) et Michael Buckwald (Apple) • Dévoilé en 2011 comme un «kinect abordable» • Précommande depuis mai 2012 • Livraison en juillet 2013 • Airspace™ • Asus et HP
  4. 4. Concurrents • DUO (http://duo3d.com) • Projet KickStarter (25/04 : USD 62,5k/110k) (http://www.kickstarter.com/projects/codelabs/duo-the-worlds-first-diy-3d-sensor) • DIY • Avenir incertain • Kinect • Windows • Vision, Mouvement,Vocal, ...
  5. 5. Développement • En béta • SDK C++ • Python, Java, C#, Unity (via Swig) • WebSocket https://developer.leapmotion.com ~10000 développeurs
  6. 6. Fonctionnement • 2 caméras • 3 LED infrarouge • Des maths
  7. 7. Principe • système de coordonnées cartésiennes fondé sur la règle de la main droite • Détection à une distance comprise entre 25 à 600 mm • Latence entre 5 et 33 ms FPS: [200, 30]
  8. 8. Tracking • Frame • Data • Hands • Pointables • Fingers • Tools • Gestures
  9. 9. Hand
  10. 10. Hand Palm Position
  11. 11. Hand Palm Normal
  12. 12. Hand Direction
  13. 13. Hand Vitesse (mm/s)
  14. 14. Hand Sphere Center Sphere Radius
  15. 15. Finger
  16. 16. Finger Longueur
  17. 17. Finger Direction
  18. 18. Finger Position
  19. 19. Finger Vitesse (mm/s)
  20. 20. Finger Hand ID
  21. 21. Tool Même propriétés que le doigt, mais avec l’attribut isTool = true
  22. 22. Tool Même propriétés que le doigt, mais avec l’attribut isTool = true Un outil est plus long qu’un doigt.
  23. 23. Gestures swipe circle key taps screen taps •Centre •Rayon •Normal •Direction •Start Position •Position •Vitesse •Direction •Position •Direction •Position Status (start, update, stop), Hand ID, Pointable ID
  24. 24. ruby-leap-motion-ws • Utilisation des WebSockets • https://github.com/glejeune/ruby-leap-motion-ws • Dépendances : • JSON • websocket-eventmachine-client
  25. 25. ruby-leap-motion-ws • Utilisation des WebSockets • https://github.com/glejeune/ruby-leap-motion-ws • Dépendances : • JSON • websocket-eventmachine-client • websocket
  26. 26. ruby-leap-motion-ws class MyLeap < LEAP::Motion::WS def on_frame(frame) end def on_connect end def on_disconnect end def on_error(message) end end MyLeap.start(true)
  27. 27. ruby-leap-motion-ws class MyLeap < LEAP::Motion::WS def on_frame(frame) end def on_connect end def on_disconnect end def on_error(message) end end MyLeap.start(true) LEAP::Motion::WS::Frame hands # => [LEAP::Motion::WS::Hand] gestures # => [LEAP::Motion::WS::Gesture] pointables # => [LEAP::Motion::WS::Pointable]
  28. 28. ruby-leap-motion • Utilise le SDK C++ (SWIG) • https://github.com/glejeune/ruby-leap-motion • Aucune dépendance • WIP !!! WIP !!! WIP !!!
  29. 29. ruby-leap-motion class MyListener < Leap::Motion::Listener def on_init(controller) end def on_exit(controller) end def on_connect(controller) end def on_disconnect(controller) end def on_frame(controller) end def on_focus_lost(controller) end def on_focus_gained(controller) end end
  30. 30. ruby-leap-motion listener = MyListener.new controller = Leap::Motion::Controller.new controller.add_listener listener gone = gets print gone controller.remove_listener listener
  31. 31. LeapRuby et JLeap-NG • https://github.com/tiegz/LeapRuby • https://github.com/Neurogami/jleap-ng • JRuby uniquement • Utilisent l’API Java (C++ → [SWIG] → Java → JRuby)
  32. 32. Demo

×