During the past few months, I have been quite inactive. It was for a good reason, though. My team and I have been working on an ambitious project that helps Kinect developers build apps faster. I would like to introduce Vitruvius .What is Vitruvius?
During the past few years, Kinect developers from all over the world have been creating outstanding Kinect apps, utilizing the power of Kinect SDK 2, Computer Vision, complex Mathematics, and Linear Algebra. Kinect development is hard and demanding. Through my blog posts (and your 600 comments), I have been trying to simplify the process and make it easier for students, researchers and engineers.
Kinect development should be fun.
So, after three years of professional experience and a lot of successful commercial projects, I developed a framework that accomplishes hard tasks using a few lines of code . Please welcome Vitruvius.
Vitruvius is a set of tools, utilities, controls and extensions that simplify Kinect development.Features
Vitruvius is already used by big companies and institutions out there. I was proud to learn that NASA , XEROX and Michigan State University are actively using Vitruvius into their internal research projects.
Here’s exactly what’s included:
Avateering (3D model animation)
Animating a 3D model using Kinect is a very tough process. Not any more. Vitruvius lets you animate your FBX rigid models with one line of code! Never worry about the joint orientations or the complex Mathematics you need to apply. The following line of code animates a 3D model:
Calculating the angle between selected joints is also a matter of one line of C# code. Calculating an angle will help you take human body measurements with accuracy. You can specify the target axis (X, Y, Z) or simply calculate the angle in the 3D space. Vitruvius also provides you with a handy Arc control to display one or multiple angles on top of a body:
HD Face Extensions
Kinect SDK includes the most powerful Face API in the world. Face and HD Face APIs lets you access over 1,000 facial points. Vitruvius provides an easy-to-use Face class that is populated with Eyes, Nose, Chin, Cheeks, Jaw and Forehead properties. No need to mess with the thousands of points. Accessing the facial properties has never been more straightforward:
Bitmap manipulation & Background removal
Converting a Kinect RGB, depth, or infrared frame into an image is, indeed, confusing. Bitmaps are handled by each programming platform. For example, XAML represents bitmaps using the WriteableBitmap class. Unity supports Texture2D. Vitruvius supports everything! We access the raw data of any Kinect frame and convert it to the corresponding image format.
Kinect developers have been struggling to convert points between the 3D world-space and the 2D screen-space. Kinect SDK includes CoordianteMapper , a useful tool that converts between camera space and depth/color space. Vitruvius simplifies Coordinate Mapping with the Vector and Point functions:
Handling body data effectively is a core part of my Kinect philosophy. A lot of people ask me how to identify the closest body, the number of the tracked joints, or the height of the players. The built-in Body class provides a lot of great information, but there is always something missing. Vitruvius fills these gaps and gives you everything you need to create a solid experience for your NUI applications:
Natural User Interfaces are strongly relying on gestures. Gestures help users accomplish tasks easily using their hands or body. Vitruvius supports waving , swiping , and zooming .
...Documentation & Samples
Vitruvius supports WPF , Windows Store and Unity3D . There is extensive MSDN-like documentation for every platform.Documentation for WPF and Windows Store Documentation for Unity3D
The following demos are included in the Download section:Avateering Angles Face Fitting Room Frame View Gestures Green Screen
Additionally, Vitruvius integrates amazingly well with your existing projects, too. No need to re-invent the wheel or change your coding style. Simply call any function you want from your existing code. It’s that simple!Performance
We are taking performance seriously. Vitruvius is designed to use as few resources as possible. It only consumes what’s really necessary. There are no duplicates or unnecessary copies. Everything is real-time. As long as your computer meets the standard Kinect SDK requirements, you can use Vitruvius at no risk.