Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kinectable Lightning

Kinectable Lightning

Using the MS Kinect from Ruby or other scripting languages.

Avatar for Marshall Yount

Marshall Yount

March 01, 2013

Other Decks in Programming

Transcript

  1. `whoami` Wednesday, March 13, 13 hi. my name is marshall

    yount i'm a dallas rubyist and in my spare time i enjoy hacking on art projects.
  2. Wednesday, March 13, 13 i'm giving my talk on kinectable_pipe,

    a project that i created for burning man 2012.
  3. Wednesday, March 13, 13 this probably goes without saying, but

    i like burning man because, like in the ruby community, we build a lot of beautiful things.
  4. Wednesday, March 13, 13 except that at the end we

    stuff them with napalm and fireworks and blow them up.
  5. Wednesday, March 13, 13 and strapped one of these to

    the side. who knows what this is? it is a microsoft kinect. so the idea was to use the kinect to drive
  6. Wednesday, March 13, 13 so i did some digging and

    found these open source drivers from OpenNI, but i was stuck for like a year because
  7. Wednesday, March 13, 13 the project is written in C++

    and i hate writing C++ because it has no REPL, it is hard to test, and i've forgotten what all the compiler errors mean.
  8. Wednesday, March 13, 13 also it is LGPL and I

    really wanted to release my code under the MIT license. so i needed to solve these two problems so i was thinking that i'd rather treat the kinect under the unix principle of
  9. {"skeletons":[{"userid":0,"joints":[{"joint":"head","X":-1196.286,"Y":369.161,"Z": 2149.150},{"joint":"neck","X":-1235.722,"Y":191.380,"Z":2235.051}, {"joint":"neck","X":-1235.722,"Y":191.380,"Z":2235.051}, {"joint":"l_shoulder","X":-1182.302,"Y":182.314,"Z":2229.667}, {"joint":"l_elbow","X":-1304.153,"Y":-41.818,"Z":2266.934}, {"joint":"l_hand","X":-1217.129,"Y":-283.542,"Z":2245.302}, {"joint":"r_shoulder","X":-1289.142,"Y":200.446,"Z":2240.434}, {"joint":"r_elbow","X":-1181.441,"Y":89.856,"Z":2358.813}, {"joint":"r_hand","X":-1102.039,"Y":-12.297,"Z":2217.287}, {"joint":"torso","X":-1269.039,"Y":-35.936,"Z":2287.253},

    {"joint":"l_hip","X":-1186.963,"Y":-282.835,"Z":2327.827}, {"joint":"l_knee","X":-907.485,"Y":-726.658,"Z":2194.716}, {"joint":"l_foot","X":-1317.628,"Y":-1062.063,"Z":2362.170}, {"joint":"r_hip","X":-1417.751,"Y":-243.667,"Z":2351.084}, {"joint":"r_knee","X":-1384.755,"Y":-782.376,"Z":2356.604}, {"joint":"r_foot","X":-1126.425,"Y":-548.001,"Z":2231.885}]}],"elapsed":7.745} Wednesday, March 13, 13 so that i could get output like this
  10. {"skeletons":[{"userid":0,"joints":[{"joint":"head","X":-1196.286,"Y":369.161,"Z": 2149.150},{"joint":"neck","X":-1235.722,"Y":191.380,"Z":2235.051}, {"joint":"neck","X":-1235.722,"Y":191.380,"Z":2235.051}, {"joint":"l_shoulder","X":-1182.302,"Y":182.314,"Z":2229.667}, {"joint":"l_elbow","X":-1304.153,"Y":-41.818,"Z":2266.934}, {"joint":"l_hand","X":-1217.129,"Y":-283.542,"Z":2245.302}, {"joint":"r_shoulder","X":-1289.142,"Y":200.446,"Z":2240.434}, {"joint":"r_elbow","X":-1181.441,"Y":89.856,"Z":2358.813}, {"joint":"r_hand","X":-1102.039,"Y":-12.297,"Z":2217.287}, {"joint":"torso","X":-1269.039,"Y":-35.936,"Z":2287.253},

    {"joint":"l_hip","X":-1186.963,"Y":-282.835,"Z":2327.827}, {"joint":"l_knee","X":-907.485,"Y":-726.658,"Z":2194.716}, {"joint":"l_foot","X":-1317.628,"Y":-1062.063,"Z":2362.170}, {"joint":"r_hip","X":-1417.751,"Y":-243.667,"Z":2351.084}, {"joint":"r_knee","X":-1384.755,"Y":-782.376,"Z":2356.604}, {"joint":"r_foot","X":-1126.425,"Y":-548.001,"Z":2231.885}]}],"elapsed":7.745} Wednesday, March 13, 13 so that i could get output like this
  11. Features • Participant detection (center of mass) • Joint decomposition

    (limit 2) • Image capture • Limited gesture recognition Wednesday, March 13, 13 here’s what it does: Participant detection (center of mass) Joint decomposition (limit 2) Image capture Limited gesture recognition
  12. Wednesday, March 13, 13 so i hustled through the summer

    to get this project together and as you might expect from a solo, nights and weekends project, with a hard deadline
  13. DALLAS.RB HYPERLOCAL HACKNIGHT TUESDAY MARCH 19th Wednesday, March 13, 13

    so in a couple of weeks i’m going to bring a bunch of gear out to this dallas.rb hacknight and here’s what we need