Today, I’m going to show you how to detect a jump using Kinect and Vitruvius. Jumping is one of the most challenging actions to detect.

In this tutorial, you’ll also learn how to measure the vertical distance between the person and the floor. To have a better visualization, we are also going to animate a 3D model while the person is moving. Sounds complex? Don’t worry! Using Vitruvius, we can do it in a few minutes.

Why detecting a jump is difficult?

Detecting and measuring a jump is not trivial. Why? Because jumping is a complex action. Jumping is not about body joints only. We need to consider various parameters from the human body and the environment. As a result, we need two types of data:

  1. The position of the lower body joints.
  2. The position & orientation of the floor.

Let’s see how Kinect, Unity and Vitruvius can solve this problem.


To run the demos, you’ll need the following software and hardware:

Jump Detection in Unity

Since we want to animate a 3D model, we’ll be using Unity3D. Here is a step-by-step guide:

Step #1 – Download Vitruvius

The Jump gesture/action is available in the Academic, Premium, and Platinum packages of Vitruvius. When you download the package, unzip the compressed folder and launch Unity3D.

Step #2 – Open the Sample projects

Vitruvius comes with 11 sample projects, so you can get started immediately. Open LightBuzz.Vitruvius.3.6.0.unitypackage and extract their contents into a new Unity project. Check the official Unity Documentation on how to import a custom Unity package.

Step #3 – Open the Jump Scene

The scene is loaded with a 3D avatar:

Jump detection with Kinect, Unity and Vitruvius

Step #4 – Add the JumpFBX script

Select the avatar in the Hierarchy window and check its properties in the Inspector window. Add the script named “JumpFBX.cs”. The JumpFBX script will add jump capabilities to any FBX 3D model.

Jump detection with Kinect, Unity and Vitruvius (Avateering)Step #4 – Move around!

When Kinect is connected, stand in front of the sensor and move 2 times back-and-forth within the field of view. This is an essential step, since Kinect will be scanning the floor while you are moving.

Check this video to see how:

Step #5 – Get the height of the jump

To detect the exact height of a jump, all you have to do is call the JumpHeight property of the model object. It’s measured in meters:

var height = model.JumpHeight;

The sample project will automatically notify you when someone is jumping. Here is a snapshot of Michail (the guy is jumping really high):

Jump detection using Kinect (demo)

This is it! You can now create amazing apps using Kinect and Vitruvius motion analysis tools.

‘Til the next time, keep Kinecting.

Download Vitruvius
Vangos Pterneas

Author Vangos Pterneas

Vangos Pterneas is a Microsoft Most Valuable Professional in the Kinect technology. He helps companies from all over the world grow their revenue by creating profitable software products. Vangos is the owner of LightBuzz Software agency and author of The Dark Art Of Freelancing. Read more

More posts by Vangos Pterneas

Join the discussion 10 Comments

  • Faisal Noor says:

    Hello VANGOS PTERNEAS, its great to see that you have provided a sample on Jump. I need some help in detecting the walking and 360 rotation in kinect when I am running/walking on a treadmil. that means my legs are just going forward and backward standing at one position. Can you please help me out with this?
    thank you.

  • Reuben says:


    Do you have a similar script for detecting jump heights in WPF projects?


  • Paul says:

    is this better then the iclone 7 software??

    • Hi Paul. Vitruvius is software for totally different purposes and use-cases. Vitruvius is a motion analysis tool that simplifies Kinect development. iClone is a 3D animation software.

  • TheBigBoy says:

    Do you still support this library? I sent an email two days ago and didn’t get an answer yet.

    • Hello and thank you for your message. Vitruvius is supported and updated! We reply to our Academic, Premium, and Platinum customers within 24 hours. We reply to our Free customers within 48 hours. In case you have contacted us and received no reply, please check your Spam folder.

      • TheBigBoy says:

        Thanks for the reply Vangos.

        If I may ask another question; about the jump algorithm of Vitruvius this time: how do you compensate the variations on the 3D points of each joint (mainly on the lower body joints as they seem to vary much more) even when the person is standing still? Do you use any magic constant to get only higher variations when detecting for jumps? Or do you use some more sophisticated algorithm to recognize the jumps?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.