Billy Andika, Johandy Tantra | SSEF 2012. 1. Interactive Rehabilitation Game. Development Using Natural User. Interface Devices. Billy Andika. 1. , Johandy ...
Billy Andika, Johandy Tantra | SSEF 2012
Interactive Rehabilitation Game Development Using Natural User Interface Devices
Billy Andika1, Johandy Tantra2, Aung Aung Phyo Wai3 1
2
3
Hwa Chong Institution, 661 Bukit Timah Road, Singapore 269734
Anglo-Chinese School (Independent), 121 Dover Road, Singapore 139650
Institute for Infocomm Research, 1 Fusionopolis Way #21-01 Connexis, Singapore 138632
1
Billy Andika, Johandy Tantra | SSEF 2012
Summary Upon their release from hospitals after recovering from serious injuries affecting limb motion, such as stroke or accidents, patients are expected to follow their physiotherapy routine regularly under the care of physiotherapists. However, as time progresses they find the monotony of the exercise regimen stifling and reduce the amount of time they spend doing the exercise, hence setting back their recovery. To address this problem, we have come up with an interactive game through a Natural User Interface Device, the Xbox Kinect which engages patients long enough through visual and audio stimulation to ensure that they fulfil the required quantity as well as quality of exercises in order to cater their rehabilitation needs. It also provides automated or embedded assessment which can then be used by physiotherapists to further accelerate the recovery progress.
2
Billy Andika, Johandy Tantra | SSEF 2012
Abstract Undergoing rehabilitation through physiotherapy exercises plays a vital role in maintaining and regaining the physical strength of patients who suffer from physical impairments due to accidents or ageing. However, this repetitive and regular process can be boring and often causes the subject to lose interest in performing the required exercises. We aim to create an interactive and intelligent rehabilitation game system called RehabMe that makes use of Natural User Interface (NUI) devices such as the Xbox Kinect. This system aims to sustain patients’ interest in performing exercises while carrying out an embedded assessment of both quantitative and qualitative measures of the exercise regimen. With Kinect, patients are no longer required to wear any sensors as the advanced imaging and skeleton tracking technologies can be used to detect and record both static and dynamic movements according to the exercises performed as user inputs into the game. The interactive gaming encourages the subjects to actively perform physiotherapy exercises by breaking the monotony of the repetitive exercises through interactive entertainment. The embedded assessment enables physiotherapists to measure the progress or improvements made by subjects using parameters such as repetition, response time, accuracy, number of correct moves, etc. This facilitates the growing needs of home-based rehabilitation by enabling a challenging and enjoyable interactive experience for patients. Keywords: Rehabilitation, Physiotherapy exercises, Natural User Interface, Interactive Gaming, Embedded assessment.
3
Billy Andika, Johandy Tantra | SSEF 2012
I. Background and Purpose of Research Area Introduction and Problem Addressed According to the World Health Organization, 15 million people suffer stroke worldwide each year. It is Singapore’s third leading cause of death. The number of deaths and admissions to Singapore hospitals for stroke has been rising [1] and thus physiotherapy is imperative to maintain and restore the maximum movement and functional ability through regular exercises. Rehabilitation aims to restore a patient’s ability to independently perform basic physical activities and tasks by carrying out exercises on a regular basis. Among various forms of physical therapy, orthopaedic physical therapy deals with diagnosing, managing, and treating disorders and injuries of the musculoskeletal system including rehabilitation after orthopaedic surgery. This type of therapy is chosen to test the effectiveness of our game as it is the most common form of physiotherapy [2] and one that can be administered without close assistance with a therapist in a home environment. A crucial problem with conventional therapy is the monotonous nature of the exercises which usually leads to the loss of patient’s motivation to do the exercises [3]. As a result, they spend little time each day doing the physical activity and little independent exercise takes place [4]. Thus, as a lot of patients find these exercises boring [5] and repetitive, they do not feel motivated enough to continue doing them on their own [6]. The lack of performing rehabilitation exercises and proper evaluation of their progress results in adverse effects to their physical conditions, such as delays in recovery and failures to perform basic tasks [7]. The application of interactive and entertaining aspects of games facilitates rehabilitation by engaging users in a training environment where programmable tasks can be tailored to personal abilities and requirements, helping to motivate the patient and create a more enjoyable experience, leading to improved results [8]. Games offer the potential to engage a patient such that they forget the monotony of the exercise they are doing. Studies have shown gaming environments enhance motivation amongst physical therapy patients. [9] Performance feedback is also important in facilitating the patient learning process in rehabilitation. Feedback can take both auditory and visual forms, and can be used to signify correct or incorrect actions or responses. Gratifying messages or sounds can be presented when a task is successfully completed, leading to an increase in user motivation[10].
4
Billy Andika, Johandy Tantra | SSEF 2012
Proposed Solution: RehabMe
Figure 1: RehabMe – Interactive and Intelligent Gaming System
We propose to create a rehab system in which the user completes a series of games designed to act as an interactive exercise experience via the program interface, and the program also records and stores the information into the database in the physiotherapy clinic. The doctor is able to track the progress of the patient as they complete the exercises schedules every day, as well as make adjustments to the intensity of the exercise, which is reflected back to the program interface. A complete data flow diagram of high-level activities and operations performed by the respective patient and therapist as well as their interaction through a high-speed communication network also described as shown in Fig. 2.
Fig 2: Activities and Operations flow diagram of the patient-therapist in RehabMe solution
5
Billy Andika, Johandy Tantra | SSEF 2012
II. Objective and Hypothesis Our aim in this project is to create an interactive gaming system which can utilise the Kinect’s Natural User Interface to sustain patients’ interest in performing exercises while helping them to exercise effectively
and
perform
embedded
qualitative and quantitative assessment of the patients’ exercise regimen, as part of an
effective
home-based
Fig 3: Vision of Home-based Rehabilitation Solution
rehabilitation
system as shown in Fig 3. Our hypothesis is that using an interactive game in the patients’ rehabilitation routine will help prolonging the amount of time spent by the patients on doing the activity compared to without any external stimuli, which will in turn help their rehabilitation process. The game is also able to provide an assessment that is sent to the therapist, enabling the therapist to assess the patients’ performance easily and more flexibly as the patients do not need to come to the clinical site for rehabilitation and assessment.
III. Materials and Method Materials For this project, we use the Microsoft Kinect Sensor, which consists of an RGB camera and twin IRsensors that can determine depth from 0.85m to 4.0m rather than other sensors due to the accessibility, ease of use, and full body interaction with the patients (Refer to Appendix A). For our program we used of the OpenSpace 3D open source development platform for interactive 3D projects (www.openspace3d.com) as it is already integrated with the Kinect using the OpenNI driver and allows flexibility for therapists to make modifications to the program. In order to gather data, we used the Upper Body Tracking Program developed with C++ programming using openFrameworks (www.openframeworks.cc), which enables us to track both the coordinates as well as the angles of the joint involved in the exercise using the Kinect. This program is able to track the coordinates of the upper body, including neck, shoulders, elbows, and hands. Methods Using the OpenSpace 3D and all the resources that is available to us from the OpenSpace 3D package, we developed a game for rehabilitation as well as a more challenging version for sustaining the patients’ interest. After developing the game, we utilised the upper body tracking program while playing the game in order to gather data from the exercise itself and processed the data in order to show how to process the raw data gathered from the tracking program to obtain a clearer assessment data which is useful for the therapist. 6
Billy Andika, Johandy Tantra | SSEF 2012 How the Game Works:
Fig 4: The game system showing the a) schedule interface, b) interactive game and the c) assessment report
In this interactive program, the user can first calibrate with the Kinect sensor before proceeding. Any subsequent selections in the menu are done via hand gestures. The user’s hand acts as a mouse to point to a specific item, and by pushing forward they can select the option that is being pointed at. There are two modes to the program, Schedule and Free Play. When the user selects Schedule, the user is presented with the list of exercises that needs to be completed (Fig. 4a). The user can select any of the undone exercises to complete. Using ‘Sideways Movement’ as an example, the user will perform physiotherapy routines through repetitive hand movements (Fig 5), where they need to raise their arms from the side upwards. Their movements are reflected in the 3D character in the game (Fig. 4b). This rehabilitation movement trains the Range of Motion of the patient’s arms. In order to gather data, we use the upper body tracking program such that we can see the performance of the patients as well as their progress. Data collected will be processed and analysed and delivered to therapists as patient assessment reports (Fig. 4c). Fig. 5: Hand movements in the game
The second mode is the Free Play mode, where the user can select any of the ‘Schedule’ exercises and set the parameters to the game, such as the number
of repetitions and the speed of exercise, both limited by the doctor’s recommendations of how intensive the person is allowed to play the game. Also, there will be a Jewel Game, in which the user has to touch 8 objects that will appear in a semicircle on the same axis as the user. These objects will appear at random and the user has to touch the object by reaching out within a 5 second limit, or the object will disappear. To progress, the patient must touch the objects to score points and advance to a higher level. When the level increases, the time allowed to touch the objects will decrease accordingly. This game allows for an interactive experience for rehabilitation. (Refer to Appendix B for more details about the game.) 7
Billy Andika, Johandy Tantra | SSEF 2012 Data Collection and Processing
Fig. 6: RehabMe game (Sideways Movement)
Fig. 7: Upper body tracking Program
We simultaneously ran the RehabMe game (as shown in Fig. 6) and the upper body tracking program, (as shown in Fig. 7) and were able to track and record the absolute coordinates of many parts of the upper body, including neck, shoulders, elbows, hands, and torso over a period of time. For this experiment, we collected the data from doing the exercise with the game and processed the data for the right hand from coordinates into graphs against time as shown in Fig. 8 below for 5 repetitions of the exercise described above (moving the arms from the side upwards and then downwards is considered 1 repetition).
Fig. 8: The graph of X and Y coordinates of right hand
Fig. 9: The graph of angle of shoulder joint angle
against time for 5 repetitions of the rehabilitation
against relative time of 5 repetitions of the
exercise.
rehabilitation exercise
In the graphs above, only the X and Y coordinates of the right hand is shown. This is because the exercise involved, which requires the patients to move their arms from the side upwards only involves the two axis, namely X and Y. Thus, the Z axis value is constant. In addition to the X and Y coordinates of the right hand, the angles of the joints, especially the shoulder is important as well as this exercise trains the range of motion of the patients’ shoulder joints and one of the ways to assess the range of motion is to measure the angle. The upper body tracking program is also able to track and evaluate the angle of the shoulder and the arms during the exercise and record it for the period of the exercise as shown in Fig. 9.
8
Billy Andika, Johandy Tantra | SSEF 2012
IV. Interpretation of Data From the first graph, we can obtain the number of repetition that the patient has done for the period of time. The number of repetition can be obtained from both graphs, but it is easier to see from the graph of the Y- axis values. In one repetition, the Y - axis value reaches a maximum value once (when the arm is at the top) and a minimum value once (when the arm is at the bottom). Thus, each peak corresponds to one repetition of the rehabilitation exercise, making it possible to find the number of repetition from the number of peaks in that period of time. Moreover, the graph of the X and Y axes can be used to deduce whether the patients are struggling or whether the patient is doing the exercise properly. The therapist can detect if the patient is struggling as there will be visible fluctuations in the values recorded during their exercise. The therapist can then help to modify the regimen to help alleviate this problem.
ɵMin2 ɵMin1
ɵmax
Fig. 8: Positions arm when the shoulder joint angle is 8.a) minimum at the bottom, 8.b) maximum, 8.c) minimum at the top.
In order to obtain the maximum range of motion of the patient, we need to interpret graph 2 and the upper body tracking program first. The upper body tracking program is able to track the angle of the shoulder joints. However, it only tracks acute angles (
). Thus, the maximum angle, 180°
(ɵmax) is reached when the arm is in line with the shoulders. This means that in one repetition, the value of the angle will reach a maximum twice, when the arm is brought up and down respectively. Furthermore, in one repetition, the value of the angle reaches a minimum twice. This occurs when the arm is at the bottom and at the top. In the graph, the minimum values alternate from the angle at the bottom with the angle at the top since the exercise starts from the bottom. The maximum range of motion can thus be found by subtracting the minimum values of the angles ɵMin1 and ɵMin2 from 360 degrees. The minimum values of these angles are 102.2o and 123.2o respectively as seen from the graph. Thus, the maximum range of motion during this exercise is 360 - 102.2 - 123.2 = 134.6o.
9
Billy Andika, Johandy Tantra | SSEF 2012
V. Discussion Our game system helps to break the monotony of the rehabilitation exercise through the interactive gaming using the Kinect, and enables an effective data gathering process for the therapists. Its flexibility allows both therapists and patients to modify the exercise regimen. Thus, it improves the current physiotherapy system in terms of its flexibility, ease of use, and the stimuli to do the exercise. Albeit these improvements, there are several limitations to our implementation. Firstly, the game program (using OpenSpace 3D), the upper body tracking program, and the user interface are not integrated together yet. The game is also limited to use for upper body rehabilitation only. Furthermore, OpenSpace 3D does not have advanced game programming functions which restricts some of the ideas that we had for the game. However, we chose this as it is the only development platform that is integrated with the Kinect through OpenNI. In the future, we aim to integrate the game program (OpenSpace 3D), the upper body tracking program used to collect data, and the user interface together into one program to make it more convenient for the users. Moreover, the game can also be expanded to focus on patients who require lower body rehabilitation and/or exercise while sitting down, since the Kinect currently requires full-body tracking to work. Furthermore, a more advanced development platform such as Unity 3D can also be used to allow more flexibility in developing the game. We would also like to harness the Kinect’s built in microphone to increase the interaction between patients and the game so as to increase the patient’s interest.
VI. Conclusion Physiotherapy practices are continually evolving in conjunction with technological development, ultimately producing new ideas and equipment to enhance the effectiveness of therapeutic activities. Utilising this game which utilises the Kinect’s Natural User Interface in physiotherapy will add excitement and provide a unique stimulus for patients to continue their rehabilitation regimen. It also enables the collection of data during the game in order to make the therapists’ assessment easier and much more flexible as the patient does not need to come to the clinic to do the rehabilitation exercise and assessment but in their own time instead. This data can be further processed by the therapists in order to obtain more useful and meaningful data of the patients’ progress. Thus, the game has the potential to aid the physiotherapy regimen due to its flexibility and its ability to sustain the patients’ interest in performing the exercise.
10
Billy Andika, Johandy Tantra | SSEF 2012
Acknowledgements We would like to express our utmost gratitude to our research mentor, Mr Aung Aung Phyo Wai from Institute for Infocomm Research, for his invaluable guidance, encouragement and patience with us throughout our attachment program in I2R. We would also like to thank KeDeng Yao Brendan for the upper body tracking that he developed. We would also like to express our gratitude to I2R and Young Researchers’ Attachment Programme for providing us with this opportunity to conduct a research project.
References [1] Venketasubramanian, N. (1999). Stroke in Singapore - an overview. Singapore Medical Journal, 40((01)), Retrieved from http://www.sma.org.sg/smj/4001/articles/4001ra1.html [2]
Inverarity,
Laura.
(2010,
November
18).
Types
of
physical
therapy.
Retrieved
from
http://physicaltherapy.about.com/od/typesofphysicaltherapy/a/typesofpt. [3] G. Burdea, "Key note address: Virtual rehabilitation - benefits and challenges," in 1st Intl. Workshop on Virtual Reality Rehabilitation, VRMHR 2002, pp. 1-11 [4] J. H. Carr and R. Shepherd, Stroke Rehabilitation: Guidelines for Exercise and Training to Optimize Motor Skill, 3rd ed. Butterworth-Heinemann, 2002, pp.301 [5] Lövquist, E, & Dreifaldt, U. (2006). The design of a haptic exercise for post-stroke arm rehabilitation. Informally published manuscript, Interaction Design Centre (IDC), Computer Science and Information Systems,
University
of
Limerick,
IRELAND,
Limerick,
Ireland.
Retrieved
from
http://citeseerx.ist.psu.edu/viewdoc [6] Den Brok, W.L.J.E. (2008). Motivational factors influencing. Informally published manuscript, Department
of
Technology Management,
Eindhoven
University
of
Technology,
Eindhoven,
Netherlands. Retrieved from http://alexandria.tue.nl/extra2/afstversl/tm/Brok%202008.pdf [7] Campbell, R, Evans, M, Tucker, M, & Quilty, B. (2000). Understanding non-compliance with physiotherapy in patients with osteoarthritis of the knee. Journal of Epidemiology and Community Health, 55(02), Retrieved from http://jech.bmj.com/content/55/2/132.abstract doi: 10.1136/jech.55.2.132 [8] A. Rizzo and G. J. Kim, "A SWOT Analysis of the Field of Virtual Reality Rehabilitation and Therapy, “Presence: Teleoperators and Virtual Environments, vol. 14, pp. 119-146, 2005. [9] D. Jack, R. Boian, A. Merians, M. Tremaine, G.Burdea and S. Adamovich, "Virtual Reality-Enhanced Stroke Rehabilitation," IEEE Trans. on Neural Systems and Rehabilitation Engineering, vol. 9, pp.308318, Sept 2001 [10] G. Burdea, "Virtual Rehabilitation - Benefits and Challenges," Intl. Medical Informatics Association Yearbook of Medical Informatics, pp. 170-176, 2003.
11
Billy Andika, Johandy Tantra | SSEF 2012
Appendix Appendix A: Comparison of Hardware and Software Used for Kinect Hardware Table A.1 - Comparison between different body-tracking devices
Hardware
Pros
Cons
Wiimote
● Easy to use ● Cheap
● Not very responsive ● Only detects hand motion
Video-based human detection
● Easy to use
● Manual processing required , can be inaccurate ● Can be tedious for physiotherapists
Wearable inertial sensors (including gyros and accelerometers)
● Can be very accurate once calibrated.
● Can be tedious since many sensors need to be placed correctly first on the body parts ● Calibration and initialisation takes a lot of time
From the table of comparison above, it is evident that the Kinect is superior to non-Natural User Interface Devices as well as other Natural User Interface devices such as the Wiimote. It’s inexpensiveness as well as ease of use and allowing more interaction with the users as it tracks whole body movements makes it a viable choice. Thus, by using the Kinect, it is possible to create solutions that sustain the patients’ interest further and to target a larger group of people as well.
12
Billy Andika, Johandy Tantra | SSEF 2012 Table A.2 - Comparison of Natural UI software used for Kinect
Software
Pros
Cons
Flexible Action and Articulated Skeleton Toolkit (FAAST)
● Easy to set up and use ● Performs actions based on users’ movements
● Lack the tools to create advanced programs ● Only able to recognise movements as keyboard inputs, not direct movements in the game ● Unable to use Kinect’s Microphone Array ● Supports Windows only
libfreenect
● Multi - platform
● Only Basic Operations can be done ● Development in early stages only
OpenNI
● Cross-platform development ● Quite accurate in its tracking ● The most developed and supported Kinect Hacks. ● It supports the integration of Kinect with OpenSpace 3D which can be used to make a game.
● Unable to use the Kinect’s Microphone Array
Kinect SDK by Microsoft
● High resolution RGB Video Camera ● Able to utilise the Kinect’s Microphone Array ● Fast skeleton tracking
● Only available for Windows ● Requires extensive knowledge in Microsoft programming
From the table of comparison above, we have decided to choose OpenNI as our software of choice. As compared to other Kinect hacks prior to the release of the Microsoft Kinect SDK, it is the most developed software available when compared to FAAST and libfreenect. When compared to the Microsoft Kinect SDK, the OpenNI falls short only due to its inability to harness the Kinect’s Microphone Array unlike the Microsoft SDK. However, the OpenNI is usable on any platforms, not only the windows and thus, can target a bigger audience. Furthermore, OpenSpace 3D, the only development platform that is available to integrate with the Kinect runs on OpenNI as well which eliminates the need to integrate the game with the Kinect after it is made. Thus, we decided to stick with OpenNI as we are going to use the OpenSpace 3D due to its integration with the Kinect
13
Billy Andika, Johandy Tantra | SSEF 2012
Appendix B: About the Game 1. Game Interface
Fig B.1: Start screen (splash screen)
Fig B.2: Home Screen
Our interactive game starts with a splash screen (Fig B.1) that prompts the user to calibrate with the Kinect sensor. Once this is done, the user is brought to the Home Page (Fig B.2) which displays the schedule of the exercise regimen as well as the option to play any of the provided exercises freely.
Fig A.3: Schedule Screen
Fig A.4: Free-play Mode
When the schedule option is selected, the user is brought to the Schedule page (Fig B.3) which displays the exercises that the user needs to complete. The user can also select free play mode (Fig B.4), the user is able to select their choice of exercise. In addition to the exercises, the patients can also choose to play the jewel game, which is a more challenging version of the rehabilitation program.
14
Billy Andika, Johandy Tantra | SSEF 2012
Fig B.5: Free-play Options Screen
Fig B.6: Free-play Game Screen
When one of the Free Play exercises are chosen, the user is presented with the options screen (Fig B.5) which lets them configure the amount of repetition and the speed of exercise. Fig B.6 shows the interface of the game which consists of the player facing a 3D space with objects at a static position which needs to be touched. When the user completes the game, thee user is presented with the scores screen (Fig B.7) that displays their game statistics. Meanwhile, the diagnostics of the game (Fig B.8) is sent to the therapist for further evaluation together with the data collected by the upper body tracking program.
Fig B.7: Scores screen at the end of each game
Fig B.8: Assessment Report for therapists
15
Billy Andika, Johandy Tantra | SSEF 2012 2. The Rehabilitation Program (Sideways Movement)
Fig B.9: Screenshot of the Game Development Code
The rehabilitation program is made using the OpenSpace 3D which is integrated with the Kinect using the OpenNI middleware. Before the game begins, the user has to calibrate with the Kinect. Afterwards, the game checks the value of the counter / repetition which in this case is the level of the game. If the level is less than 10, the user will have to do the right hand rehabilitation exercise first for ten repetitions, after which the game proceeds to the left hand exercise. After another 10 repetitions of the left hand, the game finishes. The therapist can easily increase or decrease the number of repetitions the patient needs to do by easily changing the values in the ‘if’ conditions. This increases the flexibility of the program to suit different rehabilitation needs. Fig B.10: Game Flowchart
Another mode to this game which is the more challenging version, the jewel game, is based on the same concept, but instead of appearing in a particular order for the sideways rehabilitation movements, the jewels appear at random and a timer is incorporated to give more challenge and fun for the patients. As the level increases according to the score, the difficulty increases - the user has to react faster as the time allowed to touch the jewels becomes shorter.
16
Billy Andika, Johandy Tantra | SSEF 2012
Glossary Microsoft Kinect Kinect (http://en.wikipedia.org/wiki/Kinect), originally known by the code name Project Natal, is a motion sensing input device by Microsoft for the Xbox 360 video game console. Based around a webcam-style add-on peripheral for the Xbox 360 console, it enables users to control and interact with the Xbox 360 without the need to touch a game controller, through a natural user interface using gestures and spoken commands. Kinect competes with the Wii Remote Plus and PlayStation Move with PlayStation Eye motion controllers for the Wii and PlayStation 3 home consoles, respectively. (http://blog.seattlepi.com/digitaljoystick/2009/06/01/e3-2009-microsoftat-e3-several-metric-tons-of-press-releaseapalloza/) FAAST FAAST is middleware to facilitate integration of full-body control with games and VR applications. The toolkit relies upon software from OpenNI and PrimeSense to track the user’s motion using the PrimeSensor or the Microsoft Kinect sensors. FAAST includes a custom VRPN server to stream the user’s skeleton over a network, allowing VR applications to read the skeletal joints as trackers using any VRPN client. Additionally, the toolkit can also emulate keyboard input triggered by body posture and specific gestures. This allows the user add custom body-based control mechanisms to existing offthe-shelf games that do not provide official support for depth sensors. (http://projects.ict.usc.edu/mxr/faast/) OpenNI OpenNI (Open Natural Interaction) is a multi-language, cross-platform framework that defines APIs for writing applications utilizing Natural Interaction. OpenNI APIs are composed of a set of interfaces for writing NI applications. OpenNI can be represented by a three-layered view with each layer representing an integral element:
17
Billy Andika, Johandy Tantra | SSEF 2012
Source: http://openni.org/Documentation/ProgrammerGuide.html Microsoft Kinect SDK On February 21, 2011 Microsoft announced that it would release a non-commercial Kinect software development kit (SDK) for Windows in spring 2011, which was released for Windows 7 on June 16, 2011; a commercial version is planned for a later release date. (http://www.gamasutra.com/view/news/33136/Microsoft_Announces_Windows_Kinect_SDK_For_Sprin g_Release.php) The SDK includes Windows 7 compatible PC drivers for Kinect device. It provides Kinect capabilities to developers to build applications with C++, C#, or Visual Basic by using Microsoft Visual Studio 2010 and includes raw sensor streams, skeletal tracking, advanced audio capabilities; audio processing, and integration with the Windows speech recognition API. (http://research.microsoft.com/en-us/news/features/kinectforwindowssdk-022111.aspx)
18