---
title: "Kinect V2 : Implémentation JavaScript"
date: 2018-10-31T10:33:29.000Z
canonical: https://www.ekino.fr/publications/kinect-v2-implementation-javascript/
---

La sortie de Kinect étant seulement prévue sur Xbox à ses débuts, Microsoft n’avait pas anticipé une adoption massive des développeurs Web. Les premières implémentations n’étaient donc pas vraiment **« plug and play »** mais après quelques efforts et grâce à un énorme travail de la communauté nous étions arrivés à utiliser le Kinect pour interagir avec notre application 3D.

Le résultat est visible dans la vidéo ci-dessous :

[vimeo](http://vimeo.com/52336857)

Microsoft ayant sorti sa nouvelle version dédiée à Windows en juillet, où en sommes-nous aujourd’hui avec cette technologie ?

**Nous allons voir ce qu’il faut connaître avant de se lancer dans un développement avec la Kinect V2.**

**Prérequis:**

- Port USB 3.0 dédié

- Processeur 64-bit (x64)

- Carte graphique avec support de DirectX 11

- Windows 8+

Si vous ne possédez ni de **Windows 8** ni de port **USB3** votre Kinect ne fonctionnera pas.

## 1) Quelles sont les différences majeures entre la V1 et la V2

### a) Description matériel

|  |  |  |
| --- | --- | --- |
| **Intitulé** | **V2** | **V1** |
| **Caméra couleur** | 1920x1080px @30 fps | 640x480px @30 fps |
| **Capteur de profondeur** | 512x424px | 320x240px |
| **Projecteur infrarouge** | Oui | Oui |
| **Caméra infrarouge** | 512x424px | 320x240px |
| **Microphones** | 4 | 1 |
| **Horizontale FOV (Field Of View)** | 70 degrés | 57 degrés |
| **Verticale FOV** | 60 degrés | 43 degrés |
| **Détection de personnes** | 6 | 2 |
| **Nombres de points par personne** | 26 | 20 |

La nouvelle Kinect n’est donc pas révolutionnaire en terme de fonctionnalité, mais offre beaucoup plus de **précision**. Microsoft à aussi beaucoup mis l’accent sur la mise en place  d’outils et documentation pour les développeurs.

### b) Nouveauté du SDK

- **Support de Unity :** Développement cross-plateforme diffusable sur  Windows Store
- **Kinect Studio** : Avec Kinect Studio, plus besoin d’avoir un cobaye humain pour développer. Vous pouvez rejouer un enregistrement et donc tester vos applications sans utiliser le Kinect directement.
- **Multi-applications** : Plusieurs applications peuvent  maintenant utiliser un seul Kinect simultanément.

## 2) Programmer son application en JavaScript !

Microsoft nous offre la possibilité de coder notre application en  **JavaScript**. Pour ceux qui ne seraient pas familiers avec le C# ou C++, ceci vous permettra d’utiliser les mêmes API dans votre langage favori !

Pour gagner du temps d’initialisation de projet, une des contraintes sera d’utiliser l’éditeur Microsoft **Visual Studio**. Il y a surement une solution pour utiliser votre IDE favoris mais je n’ai pas tenté l’aventure pour le moment.

En utilisant Visual Studio, vous pourrez très rapidement arriver à récupérer les positions d’un squelette pour les afficher au sein d’un Canvas comme l’exemple ci-dessous :

[http://vimeo.com/103632229](http://vimeo.com/103632229)

Vous pouvez consulter [L’API de référence  Kinect](http://msdn.microsoft.com/en-us/library/windowspreview.kinect.aspx) en ligne.

Voici un exemple simpliste d’implémentation en JavaScript permettant de récupérer les positions d’un utilisateur :

```
//get sensor
this._sensor = WindowsPreview.Kinect.KinectSensor.getDefault();
this._sensor.open();

this._bodies = new Array(6);

//open reader and listen for update
this._reader = this._sensor.bodyFrameSource.openReader();
this._reader.addEventListener('framearrived', this._onFrameArrived);

//called on each frame updated
_onFrameArrived : function(e)
{
var frame = e.frameReference.acquireFrame();

frame.getAndRefreshBodyData(this._bodies);

if (frame)
{

frame.getAndRefreshBodyData(this._bodies);

for (i = 0; i &lt; 6; i++)
{
if (this._bodies[i].isTracked)
{
//get an Array of joint Object with joint.position datas
console.log(this._bodies[i].joints);
}
}

}
}
```

Pour aller plus loin, vous pouvez suivre le tutoriel "[Hello (Skeletal) World for the JavaScript](http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2014/08/18/kinect-for-windowsv2-sdk-hello-skeletal-world-for-the-javascript-windows-8-1-app-developer.aspx)" et en télécharger les sources.

On peux donc constater que même si la version 2 du Kinect n'est pas révolutionnaire, Microsoft a vraiment fait en sorte de **faciliter la vie des développeurs** sur cette nouvelle mouture.

Maintenant que vous avez la puissance de la technologie **Kinect** au bout des doigts,  il ne vous reste plus qu’à trouver de **nouveaux usages** pour vos applications et clients !
