KINtroller v1.2, Kinect, Quartz Composer

Aparte de su utilidad para juegos la consola Kinect ha sido usada, con diferentes tipos de software, como Processing, Quartz Composer, Max Msp, etc. para crear elementos interactivos dentro de instalaciones o ambientes audiovisuales en los que los objetos son controlados por las diferentes partes del cuerpo (generalmente las manos en cuanto a coordenadas y velocidad) creando espectáculos muy novedosos y a veces espectaculares.
KINtroller es un nuevo soft para Kinect que permite controlar cualquier objeto moviéndolo con las manos gracias a su avanzado sistema de OSC routing. Tiene un específico OSC output IP que le permite conectarse a cualquier otro software como Quartz Composer, Max Msp, VDMX, Osculator, Resolume Arena hasta el momento.

Su funcionamiento es bastante sencillo y menos complicado que Synapse, con el que presenta algunas ventajas pero también inconvenientes, aunque los dos usan, como veremos el patch qcOSC para transmitir una estructura. La principal ventaja es que no tenemos que esperar a que la Kinect reconozca nuestro “skeleton” lo cual es bastante engorroso pues tenemos que ponernos en la famosa “cactus position” (con los brazos en cruz y doblados) y a veces tarda un rato en detectar nuestra posición. Con KINtroler esto no sucede pues inmediatamente al activarlo ya detecta la posición de nuestras manos, izquierda y derecha (BLOB 1, BLOB 2) sin necesidad de detectar el skeleton. El inconveniente es que sólo podemos interactuar con estos dos elementos, mientras que con Synapse podemos controlar la velocidad de las manos e interactuar con otras partes del cuerpo: cabeza, brazos etc.

Cuando abrimos la aplicación, en la parte superior vemos dos recuadros KINECT ON, y Window OFF. El primero de ellos sirve para activar y sincronizar la aplicación con la Kinect y el segundo para abrir una ventana que nos puede servir para calibrar la posición y ver que todo está correcto y funciona.

KINtroler

Para realizar nuestra composición Test con Quartz Composer necesitaremos dos patches básicos que son el patch “qcOSC” y el “KINtroller Structure Receiver”. El primero es el que recibe a través de un puerto determinado la señal OSC de nuestra aplicación KINtroler ( es el que se usa para cualquier device que use un protocolo OSC, como Synapse, Max o TouchOSC) y el segundo es el que convierte esa señal en una estructura, en este caso de 6 miembros que se corresponden con las posiciones X,Y,Z del Blob 1 y del Blob 2 (mano izquierda, mano derecha). Para evitar tantas ventanas abiertas podemos cerrar la ventana del preview principal, Windows OFF, y activar un pequeño preview a la derecha de donde pone BLOBS OSC ON.

Por otra parte hay que tener en cuenta que las coordenadas de los ejes X,Y,Z tienen que estar relacionadas con el sistema que Quartz Composer usa, como se muestra en la imagen. El origen está en el centro de la pantalla, que es 0. El eje x es horizontal y el eje y es vertical. El eje z es ortogonal a los ejes x e y, por lo que sale de la pantalla, hacia el espectador. Los bordes izquierdo y derecho de la pantalla tienen coordenadas -1,0 y 1,0, respectivamente. Esto es importante pues en composiciones más complicadas hay que tener en cuenta que los valores de los ejes no sean mayores pues en ese caso la imagen se saldría de la pantalla.

Podéis encontrar más info sobre el sistema de coordenadas en Quartz:
https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/QuartzComposerUserGuide/qc_concepts/qc_concepts.html

coords_ws
Una vez que tenemos estos dos parches ponemos un “Clear” y dos “Sprites”; Como veis en la imagen el Output del patch cOSC transmite una Structure de 6 miembros la cual es convertida por el patch “KINtroller Structure Receiver” en números enteros que se corresponden con los distintos ejes de las coordenadas : X1, Y1, X2, Y2, Z1, Z2 los cuales van conectados a la posición X,Y,Z de dos Sprites, et voilà: de este modo cuando movemos las manos, los cuadrados (Width, Height es 0,2) se mueven siguiendo su recorrido por la pantalla.

KINtroller_quartz_skitch

Una cosa importante es que el puerto de nuestro “qcOSC” tiene que coincidir con el puerto de la aplicación. Para ello vamos a la parte inferior derecha y hacemos cli en “Custom OSC”; se abre una ventana donde vemos que el número del puerto es 10000, luego vamos al inspector del patch y ponemos el mismo número en el puerto de nuestro qcOSC.

KINtroller_quartz2_skitch

Ésta sería una forma básica de composición, pero podemos hacer composiciones más complejas usando Partículas, _1024_Particle_Warfare, Kineme GL Line Structure, Kineme Points Line Structure. También podemos, en la raiz de la composición utilizar “Syphon Client” conectado a un “Billboard”, lo que nos permite cambiar el modo de blender; para ello vamos a la parte superior de la aplicación y hacemos clic en “Syphon off”, se abre una ventana donde podemos utilizar múltiples combinaciones de blender y guardarlas como Presets.

Kintroller_partWarfare

You can download the compositions here:

https://app.box.com/s/1ynx07g1nrxgqkolhqj4glhmqo3mfwdz

Hay más maneras de utilizar KINtroler; en su página hay tutoriales e información documentada.

http://salvonostrato.com/KIN_SOFTWARE/

8 comentarios en “KINtroller v1.2, Kinect, Quartz Composer

    1. Por defecto en el Mac no se puede abrir ninguna aplicación que no sea de Apple y cuando lo intentas sale una ventana de aviso (pero creo que no es esa)…Lo que se hace es darle al botón derecho (bueno ctrl+click) y darle a abrir, entonces se abre el archivo o aplicación. Prueba con esto, pero sino pregunta en la propia página en la sección Contact.

  1. Me he equivocado totalmente pues eso pasa con las apps, files o .pck pero no con los .dmg!!!
    Si me mandas tu email te puedo poner en Dropbox el .pck de instalación que he sacado del dmg.Un saludo!

  2. buenisimo tu blog. el tutorial esta increible, pero me esta rompiendo la cabeza. Tengo instalado el KINtroller y ahi puedo ver que me esta captando los movimientos. En el QC tengo el qcOSC seteado en el puerto 10000 igual que en el KIN. Pero no logro hacer mover los sprite. Alguna sugerencia? Que podria hacer para debuggearlo ? Gracias!!

    1. Hola : ¿has comprobado que te funciona la conexión entre el Quartz y la Kinect con otros plugins como el de Vade o el Synapse?
      Y si es así, en el KinTroller ¿ves las dos esferas del Blob y si éstas se mueven con tus manos y ves cómo se mueven los números?

      1. la Kinect esta funcionando porque veo los blobs. Lastima que no pueda pegar imagenes aca, pero te cuento que en el QC tengo un qcOSC enlazado al KINtroller Structure Receiver,y este a un Sprite.
        Si me paro en la entrada del KINtroller SR veo que le llegan las coordenadas, pero al pararme sobre la salida, lo veo en “0”. KIN no le estaenviando coordenadas x, y, z al Sprite.
        Te enviare por mail las capturas para que sea mas facil de entender

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s