Workshop para el festival PlusCODE en Buenos Aires, noviembre 16 2018
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bibliotecas
ejemplos
.gitignore
LICENSE
README.md

README.md

workshop-p5js-kinectron-pluscode-2018

Workshop para el festival +CODE versión 2018, realizado en elculturalsanmartin, Buenos Aires, Argentina, noviembre 16 2018.

Acerca de

Este workshop de Introducción a la programación y arte interactivo con p5.js y Kinect fue diseñado y es impartido por Aarón Montoya-Moraga. Este workshop incluye trabajo y material que ya ha sido usado por el autor para workshops similares.

Esta versión fue enseñada en elculturalsanmartin, Buenos Aires, Argentina, viernes 16 noviembre 2018, en el contexto del festival PlusCODE y con el generoso apoyo de la Processing Foundation.

Código de conducta

Nos regiremos por el código de conducta de Berlin, y por las siguientes reglas:

  • Este es un espacio seguro para experimentación sonora y artística.
  • Respeta a todos y sé amable.
  • No cometas actos ofensivos o violentos.
  • Haz preguntas, ándate por las ramas, improvisa.

Sobre el autor

(5 mins)

Aarón Montoya-Moraga es ingeniero eléctrico, músico, programador y artista chileno. Se graduó y fue residente de investigación en el Programa de Telecomunicaciones Interactivas de la Universidad de Nueva York. Enseña introducción a la programación y FLOSS para las artes en CODED Escuela, que incluye Pure Data y ChucK para arte sonoro, Python para poesía, p5.js y Processing para artes visuales. Es colaborador del proyecto p5.js y ha traducido a español el libro Introducción a p5.js para Processing Foundation. Dirige el sello de música bandurria.

Los estudiantes se presentan (90 segundos cada uno)

Por favor incluye esta información:

  • Nombre?
  • Por qué viniste a este curso?
  • Experiencia programar?
  • Experiencia movimiento / danza / actuación?
  • Experiencia arte visual / diseño gráfico?

Timer de 90 segundos

Temario

Software a usar

Editor de texto

Por favor instalen un editor de texto, estas son algunas recomendaciones:

Servidor local

Tendremos que usar también un servidor local.

Si tu computador es Mac, tienes instalado Python 2.7 por defecto.

Si instalaste el editor de texto, instala el paquete "atom-live-server", desde Settings->Install.

Por favor correr estos comandos para revisar si tienen Python instalado.

En Linux, abrir terminal. En Mac, abrir app Terminal. En Windows, abrir "cmd" o "Command Prompt".

Comprueba si tienes instalado Python ejecutando el comando.

python

Tras ejecutar este comando, el resultado es:

Python 2.7.15 (default, Oct  2 2018, 11:42:04)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

La primera línea indica el número de versión de Python.

Si no tienes instalado Python, recomiendo instalar la versión más reciente de Python.

Comprueba que puedes iniciar un servidor local con el comando de Python 2:

python -m SimpleHTTPServer

Si tu computador tiene Python 3, el comando es:

python -m http.server

Historia de p5.js y Processing

(20 minutos)

Processing es un software libre, gratuito, y de código abierto (FLOSS por sus siglas en inglés).

Processing fue creado por Ben Fry y Casey Reas, para más información leer A modern Prometheus - The History of Processing by Casey Reas and Ben Fry .

Processing es desarrollado principalmente por la comunidad en torno a UCLA DMA, Fathom Information Design y NYU ITP.

La Processing Foundation

Programación creativa para artes visuales y diseño gráfico

(30 mins)

Historia de Kinect y Kinectron

Kinect es un hardware desarrollado por Microsoft, existen dos versiones.

Kinect contiene:

  • Sensor color (RGB)
  • Sensor profundidad (depth)
  • Sensor infrarrojo (infrared)
  • Software para la detección y monitoreo de cuerpos humanos / esqueletos / extremidades.

Kinect fue lanzado como un accesorio para la consola Xbox, permitiendo que los videojuegos pudieran ser controlados con gestos y movimiento en el espacio de manera multi-jugador.

Posteriormente, Microsoft lanzó un kit para desarrolladores (Kinect SDK) que permitió conectarla a computadores con Windows y usar sus funcionalidades. También se puede usar en computadores sin Windows, gracias al desarrollo de plugins y proyectos que usan las funcionalidades de Kinect.

Hoy usaremos Kinectron, un software que permite transmitir datos desde una Kinect One (v2) conectada a un computador Windows y usar esta información en múltiples computadores. Desarrollado por Shawn van Every y Lisa Jamhoury, y mantenido por la comunidad de NYU ITP.

Aunque Kinect esté descontinuada, artistas y creativos siguen usando Kinect en sus trabajos y este software puede ser adaptado para ser compatible con nuevas versiones de dispositivos similares a desarrolarse en el futuro.

Instalación Kinectron

Kinectron funciona con dos componentes, un servidor y clientes. Los computadores servidor y clientes deben estar en la misma red Wifi e instalar los correspondientes software.

Servidor

El servidor Kinectron "kinectron-server" está disponible en [https://github.com/kinectron/kinectron], en la sección "Releases". Debe ser instalado y ejecutado en un computador Windows.

A este computador Windows se conecta una Kinectv2 vía USB 3.0.

El servidor posee configuraciones avanzadas, para bloquear llamas API, para cambiar el servidor por defecto.

Clientes

Para utilizar kinectron, tienes que estar en la misma red que el servidor.

Debes descargar la biblioteca cliente "kinectron.bundle.js" de Kinectron de JavaScript, disponible en [https://github.com/kinectron/kinectron], en la sección "Releases", archivo "Source code".

Configuración de Kinectron

Tenemos los siguientes modos disponibles:

  • SINGLE FRAME: para enviar un cuadro a la vez, usaremos este.

  • MULTIPLE FRAMES: para enviar múltiples cuadros a la vez.

  • COLOR: imagen RGB

  • DEPTH: imagen de profundidad

  • RAW DEPTH: imagen de profundidad, sin filtrar

  • SKELETON (TRACKED BODIES): esqueletos

  • ALL BODIES: esqueletos

  • INFRARED: imagen infrarroja

  • LONG EXPOSURE INFRARED: imagen infrarroja de larga exposición

  • KEY: esqueleto con imagen RGB del cuerpo (chromakeying)

  • STOP ALL: detiene la transmisión

Mi comunidad

A programar!

Partiremos desde algunos ejemplos preparados para hoy, los que están en la carpeta /ejemplos, por favor descargar este repositorio.

  • ejemplo00-detectar-esqueleto: detectar esqueleto en consola
  • ejemplo01-cambiar-color: controlar color fondo según mano derecha eje Z
  • ejemplo04-aplauso: detectar comportamiento manos y aplauso

Ejemplos de obras con Kinect

Otras bibliotecas de JavaScript

Otros recursos interesantes

Referencia