Skip to content


Repository files navigation


Vitruvius is a set of easy-to-use Kinect utilities that will speed-up the development of your projects. Supports WPF and Windows Store. Requires Kinect 2.


Grab the package using NuGet

    PM> Install-Package lightbuzz-vitruvius

... and import Vitruvius in your project

    using LightBuzz.Vitruvius;

You'll also need to set the project configuration to Release and the target processor to x64 (preferred) or x86.


Bitmap Generators

    var bitmap = colorFrame.ToBitmap();
    var bitmap = depthFrame.ToBitmap();
    var bitmap = infraredFrame.ToBitmap();

Bitmap Capture


Background Removal

    var bitmap = colorFrame.GreenScreen(depthFrame, bodyIndexFrame);

Closest Body

    var body = bodyFrame.Bodies().Closest();

Body Height

    double height = body.Height();

Body Visualization


Angles between joints


    double angle = elbow.Angle(shoulder, wrist);
    double angle = elbow.Angle(shoulder, wrist, Axis.Z);
    double radians = angle.ToRadians();
    double degrees = radians.ToDegrees();

Automatic Coordinate Mapping

    var point = joint.Position.ToPoint(Visualization.Color);

Gesture detection

    void GestureRecognized(object sender, GestureEventArgs e)
       var gesture = e.GestureType;

       switch (gesture)
    	   case (GestureType.JoinedHands): break;
    	   case (GestureType.Menu): break;
    	   case (GestureType.SwipeDown): break;
    	   case (GestureType.SwipeLeft): break;
    	   case (GestureType.SwipeRight): break;
    	   case (GestureType.SwipeUp): break;
    	   case (GestureType.WaveLeft): break;
    	   case (GestureType.WaveRight): break;
    	   case (GestureType.ZoomIn): break;
    	   case (GestureType.ZoomOut): break;

XAML Controls

    KinectViewer		// Displays streams and skeletons.
    KinectAngle		// Displays an arc.
    KinectJointSelector	// Allows you to select a joint visually.


    Avateering.Update(model, body);

Recording & Playback (Academic & Premium versions)

    // Recording
    recorder = new VitruviusRecorder(path);
    recorder.RecordFrame(imageFrame, frameEffect, bodyFrame, faceFrame);
    // Playback
    player = new VitruviusPlayer(this, StreamFromPlayback, path));

HD Face with properties (Academic & Premium Versions)


    Face face = faceFrame.Face();
    var nose = face.Nose;
    var mouth = face.Mouth;
    var chin = face.Chin;
    var jaw = face.Jaw;
    var eyeLeft = face.EyeLeft;
    var eyeRight = face.EyeRight;
    var cheekLeft = face.CheekLeft;
    var cheekRight = face.CheekRight;
    var forehead = face.Forehead;



You are free to use these libraries in personal and commercial projects by attributing the original creator of Vitruvius. Licensed under Apache v2 License.