OSCeleton With Quartz Composer

Trying out the very awesome OSCeleton http://github.com/Sensebloom/OSCeleton with Quartz Composer.

What is OSCeleton?
“As the title says, it’s just a small program takes Kinect skeleton data from the OpenNI framework and spits out the coordinates of the skeleton’s joints via OSC messages. These can can then be used on your language / framework of choice.”

It works straight out of the box with Animata and many other software, but the OSC formatting is not compatible with Quartz Composer. So I made a little Max/MSP patch that converts the messages to a format QC understands. I will try to write a tutorial about how to get the whole thing running pretty soon. But here is a quick rundown.

./osceleton-osx -p 8110 -mx 2 -my -2 -mz -1 -ox -1 -oy 0.75 -oz 1 -a 127.0.0.1

The options are to scale the values to something that makes sense in QC. You can play around with them. Check the OSCeleton readme for more information about the different options.

Let me know if the Max/MSP app or something else is not working properly.

Tags: , , , , , ,


30 Responses to “OSCeleton With Quartz Composer”

  1. philip says:

    Hello

    I have a problem with osceleton-osx, with snow leopard, I can’t use osceleton. I have compiled withe make and try the binary and after when I run the app, I have this message S”egmentation fault” ??
    How could I compile osceleton ?

    thx

    p

    • Lucas says:

      Hi, I am getting exactly the same results as Philip. Using Snow Leopard as well, 10.6.5. I installed everything, and at the very end I get a segfault. Not sure what the problem could be. Any help is truly appreciated.

    • Månsteri says:

      Can you run any of the OpenNI sample applications? Do they work? Did you follow the instructions on the readme files of both OpenNI and KinectSensor?

      I recommend re-installing everything from the start.

      • Lucas says:

        I am not able to run the openNI files either. I’m not even entirely sure I am doing that correctly.

        For instance, to run NiViewer I should simple need to navigate to
        OpenNI/Platform/Linux-x86/Bin/Release

        and enter “./NiViewer”, correct?

        When I do this I get an error stating “Open failed: OpenNI library can’t find any module!”

        I cannot find any solution to this error. I have reinstalled everything from scratch, following the README files exactly, with the same results. I am honestly very new to all of this, but I am trying really hard to get everything running. Thanks again for your advice.

  2. philip says:

    Hi

    In my case, the first avenis’s test is right. no problem. But with second and third, I have nothing,
    Before to reinstall everything, I copy the result of my terminal with test :
    “new-host:Release philippeboisnard$ ./Sample-NiUserTracker
    Warning: USB events thread – failed to set priority. This might cause loss of data…
    Find user generator failed: Can’t create any node of the requested type!”
    Pehaps, the problem is here, with Open-Ni installation or Nite ?

    thanks for answer

    philip

  3. philip says:

    Re

    When I reinstall NIte, I have many errors :
    ___________________

    new-host:Nite-1.3.0.18 philippeboisnard$ sh install.sh
    cp: /usr/lib/libXnVNite.dylib: Permission denied
    cp: /usr/lib/libXnVCNite.dylib: Permission denied

    (comment edited, because it was huuuge)

    What do you think about that ?

    p

  4. steffen says:

    hi,

    i don’t even get past the (for OpenNI) required “sudo port install libusb-devel +universal”, getting this:

    Error: Requested variants “+universal” do not match original selection “”.
    Please use the same variants again, perform ‘port clean db46’ or specify the force option (-f).
    Error: Failed to install db46
    Log for db46 is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_databases_db46/main.log
    Error: The following dependencies were not installed: git-core python27 db46 gdbm readline sqlite3 rsync popt
    Error: Status 1 encountered during processing.

    any idea, what could help?

    • Månsteri says:

      Are you on Snow Leopard or Leopard?

      I don’t really know what is happening there, but make sure you have the latest Xcode version (3.2.5).

      Then run:
      sudo port clean db46
      sudo port selfupdate

      And then try again.

  5. Kat says:

    Hello!
    I have downloaded all the folders. This is all new to me.
    Could you explain where I should place each folder on my Mac?
    Thank you ever so much!
    K

    • Månsteri says:

      Hi Kat,

      It’s a bit more complicated than that. You need to run commands in the Terminal and do some other nerdy stuff.

      There should be readme files included in the downloaded files. Take a look at them to find some help. Unfortunately, I don’t have the time to write a detailed explanation right now.

      This link might help: http://www.oneseconds.com/dev.html

  6. DBK says:

    Hi…I was just wondering that inside the video, there are points called X,Y,Z…what are the points about? What does the numbers represent?

    Any help would be appreciated!

    Thanks a lot! 🙂

  7. Unknown says:

    But what does the coordinates X, Y and Z by itself means? What does it represents?
    Is it the distance between the sensor to the point of detection itself?

    • Månsteri says:

      From https://github.com/Sensebloom/OSCeleton#readme:

      “X coordinate of joint in interval [0.0, 1.0]
      Y coordinate of joint in interval [0.0, 1.0]
      Z coordinate of joint in interval [0.0, 7.0]”

      So the x-coordinate is 0-1 from left to right.
      The y-coordinate is 0-1 from up to down.
      The z-coordinate is the depth (distance from the Kinect)

  8. mikebluse says:

    I can run the command ./osceleton but can’t run the ./osceleton-osx and the OSCeletonToQC probably can’t receive any data from the osceleton. I have install the Max Runtime 6.0 .I don’t know what the problem.

  9. mikebluse says:

    below is my running result

    ./osceleton -q -p 8110 -w
    Initializing…
    Configured to send OSC messages to 127.0.0.1:8110
    Multipliers (x, y, z): 1.000000, 1.000000, 1.000000
    Offsets (x, y, z): 0.000000, 0.000000, 0.000000
    OSC Message format: Quartz Composer
    Initialized Kinect, looking for users…

    Warning: USB events thread – failed to set priority. This might cause loss of data…
    New User 1
    Calibration started for user 1
    Calibration complete, start tracking user 1

  10. Leon Trimble says:

    hi man, it says in osceleton that it can be run with the command -q for quartz composer, just like it can be run in ‘kitchen’ mode for animata. does this mean i don’t have to use the max/msp patch?

    • Månsteri says:

      Yes. You can send the OSC straight to QC with the -q command. It was a bit buggy at some point, not sure if it’s fixed now.

      But the QC example I posted is not going to work straight with that. I think you need to edit it a bit.

  11. assolyr says:

    Hello Matti
    I followed your instructions but it does not work ..
    Can you tell me why only the right foot appears in the viewer’s osceleton.qtz?
    thx

    Last login: Fri Feb 17 15:08:49 on ttys000
    Malouinesonore:~ denisgente$ /Users/denisgente/Documents/OpenNi/Sensebloom-OSCeleton/osceleton ./osceleton-osx -p 8110 -mx 2 -my -2 -mz -1 -ox -1 -oy 0.75 -oz 1 -a127.0.0.1
    Initializing…
    Configured to send OSC messages to 127.0.0.1:7110
    Multipliers (x, y, z): 1.000000, 1.000000, 1.000000
    Offsets (x, y, z): 0.000000, 0.000000, 0.000000
    OSC Message format: Default OSCeleton format
    Initialized Kinect, looking for users…

    New User 1
    Calibration started for user 1
    Calibration complete, start tracking user 1

    • Månsteri says:

      It looks like the different options (-p, -mx etc.) are not working for you for some reason.

      The -p option should set the port to 8110, but it is still sending to 7110:
      “Configured to send OSC messages to 127.0.0.1:7110”

      Is your Osceleton application actually called osceleton-osx? This blog post is pretty old and I think the name has changed to just osceleton.

      Try: ./osceleton -p 8110 -mx 2 -my -2 -mz -1 -ox -1 -oy 0.75 -oz 1 -a 127.0.0.1

  12. Robert says:

    Hello. I have OSX Maveriks, I’m not that good in terminal, and most of the links above are broken since OpenNi has changed it’s website. So, how do I do it?
    Can anyone give me a step by step guide in installing OSCeleton and everything else on OSX Maveriks?

    I used synapse and max and the trial version of NiMate with eMotion and VDMX, but I want to use more than one skeleton so that’s why I have to move to the open source platform and I need some help. Thanks.

  13. stu shapiro says:

    Hey thanks bro!

    What about using Ni Mate, setting it to OSCeleton and then running your OSceltontoQC.

    I set port to 8110 from Ni mate and it looks like no data is being received by your passthrough. the OSceleton is a prebuilt output option in ni mate.

    There woud be no point taking that OSc out directly into QC because of the way its translated like you said.

    trying to figure out the best way to get OSC from ni mate into QC to control one of the skeletons.

  14. Ramon says:

    Good afternoon.

    I’ve been trying osceleton within quatz composer with your osceletontoqc .

    Now I would like to introduce more user unless I misunderstood osceleton is possible , but not how to do it .

    Could we give some indication of max / msp to get it ?

    Thanks and sorry for my ingles

  15. Jimmy zhang says:

    Hello,Månsteri

    Could you tell me how to change the OSC ip address and port of osceltontoqc ?

    or Could you give me your the max/msp source of osceltontoqc?

    Thanks a lot.

    Best.

Leave a Reply

Trackbacks/Pingbacks

  1. Tweets that mention OSCeleton With Quartz Composer « Månsteri:::[mons-te-ri] -- Topsy.com