martes, 5 de agosto de 2008

YARMI

Estuve recluido varios días programando el primer prototipo de lo que será el proyecto YARMI.
Este proyecto tiene su base en lo perplejos que nos deja ver como todos los diseñadores de interfaces alternativas implementan una interfaz musical ridícula. De ahí el acrónimo YARMI (Yet Another Ridiculous Musical Interface).
Los dejo con un video que muestra la idea del proyecto.



Fue implementado en openframeworks, usando la biblioteca de Artoolkit para el reconocimiento de los fiducials.
Continuará...

domingo, 4 de mayo de 2008

Wiimote

Ya creo que todo el mundo debe saber cómo es el wiimote, igual lo resumo. Lo que importa es que tiene algunos botones por ahí, pero principalmente que tiene un acelerómetro que permite detectar movimiento y rotaciones en los tres ejes, y que tiene una cámara infrarroja para leer la posición de una sensor bar y así poder usarlo para “apuntar”. Es inalámbrico y se comunica con el Nintendo Wii por Bluetooth.Filosofía detrás del wiimote

En la página oficial de Nintendo hay una extensa entrevista con los creadores del Nintendo Wii acerca de la consola:

http://www.nintendo.com/wii/what/iwataasks/volume-1/part-1

Y en particular sobre el Wiimote aquí:

http://www.nintendo.com/wii/what/iwataasks/volume-2/part-1

Básicamente dicen que Nintendo quería hacer un sistema que sea de bajo costo y con una interfaz que puedan utilizar las personas y no sólo los jugadores hardcore (no es que los hardcore no sean personas, hay algunos que sí son).
Teniendo la experiencia del Nintendo DS con su pantalla táctil que fue un rotundo éxito, y con juegos de interfaz alternativa ganando terreno (Donkey Konga, Guitar Hero y el Wario Ware twisted! que tiene un acelerómetro), arriesgaron a fabricar lo que hoy es el wiimote… Y les fue bien.


Proyectos que usan el wiimote

Además de ser un éxito en ventas, el wiimote ha sido un éxito en la casa de un tal Johnny Lee, quién hizo unos proyectos más que interesantes:

http://www.cs.cmu.edu/~johnny/projects/wii/


Implementación

Para utilizar el wiimote con mi PC me bajé una API open source llamada wiiuse, que permite leer los datos del acelerómetro, botones, usar la vibración, leer la cámara infrarroja, etc.
Está para lenguaje C++ y para java (wiiusej):

http://www.wiiuse.net/

http://code.google.com/p/wiiusej/

En poco tiempo voy a empezar a hacer pruebas utilizando estas APIs en processing y en open frameworks.


Reflexión sobre el Wiimote

Wiimote = Simpleza
La evolución de los joysticks venía por mal camino; íbamos a terminar sosteniendo un aparato de 25 botones y cuatro o cinco palanquitas diferentes. Por suerte Nintendo optó por un control que no sólo simplifica la interfaz para el usuario, sino que permite nuevas y revolucionaras posibilidades de interacción.
Ahora, en la mayoría de casos un joystick normal nos daría más precisión que un wiimote. Por ejemplo en un juego de tenis convencional por lo general el usuario utiliza un botón para pegarle a la pelota, o digamos, un botón para el disparo común y otro para pegarle por arriba. La dirección de tiro se indica con la palanca del joystick, y la potencia con el tiempo que se mantiene presionado el botón.
En el tenis de wii en cambio no se necesita ningún botón, ni se necesita palanca para indicar la dirección ni potencia del tiro. El jugador usa el wiimote como una raqueta de tenis y el personaje le pega como el jugador espera.
Por más que, en principio, el tiro puede no salir exactamente como uno piensa, la idea que uno tiene de cómo se usa la interfaz es mucho más simple y directa que la del joystick.
El joystick da más precisión a cambio de usar un modelo psicológico más complejo y difícil de entender.
No sé, yo prefiero el wiimote para un juego de tenis frente a un joystick normal, pero… no por eso vamos a abusar… o sea, veamos el caso del nuevo Mortal Kombat:
¿Por qué usar el wiimote para jugar al Mortal Kombat Armageddon?
Seguramente debe haber una razón comercial; alguien que quería mostrar que se puede jugar a lo que sea con el wiimote. Pero, ¿esto hace al juego más práctico y simple como en el caso del tenis? No, para nada. Lo hace menos preciso, eso sí. La forma de jugar al Mortal Kombat Armageddon no se simplifica con el wiimote, de hecho se hace más compleja. O sea, lo que antes se hacía con un movimiento de joystick más un botón, ahora se hace dejando apretado el botón B, haciendo un gesture con el wiimote y soltando el botón B. Esto suena interesante y todo, y puede ser divertido de probar, pero en serio, no tiene sentido.
No es por desmerecer al tenis, pero cabe destacar que los combates a muerte no son tan simples como éste deporte, y talvez no sea la mejor idea tratar de hacerlos funcionar con una interfaz como la del wiimote.
O sea, la raqueta de tenis es algo natural para una persona, la mayoría de gente sabe que movimiento hacer cuando se le viene la pelota encima. Ahora… la fatality de Scorpion no es algo que mucha gente esté acostumbrada a realizar en la vida cotidiana y creo que de ahí viene la confusión.
Por suerte el juego tiene la opción para jugar con el joystick común, para que nadie salga herido.

En fin, el potencial que tiene el wiimote se puede usar para adaptar muchas cosas que ya existían como en el caso del tenis o de los juegos de carreras, pero puede ser un error tratar de adaptar una interfaz muy compleja a este nuevo paradigma.
Lo mejor es que el wiimote permite explorar nuevas formas de interacción como se puede apreciar en varios de los microgames de Wario Ware. Pero hay que tener un poco de criterio también, y no tratar de hacer funcionar el Mortal Kombat o la tostadora con el wiimote porque puede ser una insensatez.

domingo, 27 de abril de 2008

TUI

Un área muy interesante del HCI son las TUI (Tangible User Interfaces).

Se trata de interfaces donde el usuario manipula objetos físicos para producir cambios en la información digital.

Algunos ejemplos:


Sensetable

Es una mesa en la que se colocan objetos que son interpretados por el computador. Al mismo tiempo un proyector muestra imágenes sobre la mesa que son el resultado de cómo se manipulan los objetos.

Hay muchas aplicaciones interesantes de este proyecto en este video:


Tangerine (Tangible interactive natural enviroment)

Este es un proyecto que comparte algunas ideas de Sensetable y agrega una interacción Bluetooth para obtener la orientación y rotación de un objeto tangible con forma de cubo.

Acá está todo:


http://www.tangerineproject.org/


Xenakis

Es una interfaz tangible para creación de música. El sueño de un DJ nerd (¿hay otro tipo?).

También es una mesa sobre la cual se colocan objetos tangibles. La imagen no es proyectada sobre la mesa sino que la propia mesa produce imágenes.


Memodules

Es una consola que reconoce objetos físicos y guarda información al respecto. Se pueden asignar acciones para realizar al poner nuevamente el mismo objeto en la consola, por ejemplo pasar videos. No le encontré mucha gracia y es demasiado aparatoso para mí gusto.


http://www.memodules.ch/memodules_home/description.jsp


Level Head

De todos los proyectos es el que más me gustó por ser simple y al parecer entretenido. Usa solamente la webcam y un cubo que puede hacer en su propia casa cualquiera que haya visto Art Attack.


Reflexión las TUI:

Al parecer es cool usar mesas gigantes sobre las cuales poner objetos. La mayoría de estos proyectos cuentan con mucho hardware extra como proyectores o mesas de LCD. El objetivo de mi proyecto es un poco diferente ya que quiero que el usuario no necesite más hardware que una computadora, una webcam y/o wiimote (dispositivos bien difundidos y de bajo costo). Lo que más me ha gustado y me inspiró es el Level Head, así que voy a investigar más por ese lado. Revisando rápidamente encontré un framework que se puede aplicar para hacer algo parecido:

http://reactable.iua.upf.edu/?software



El Plan

La primera etapa de este proyecto, que ya comenzó, es de pura investigación y recolección de conocimiento en el área de Interacción Humano-Computadora. Voy a ir publicando links a proyectos y eventos relacionados y reportes técnicos al respecto.

La siguiente etapa será cuando abandone los vínculos con el mundo exterior y me ponga a programar mi sistema de interacción humano-computadora, aislado, al mejor estilo DHARMA initiative. Claro que previamente a eso voy a tener que diseñar el sistema. Aún no sé lo que es, pero esperemos que se me ocurra algo en los próximos días.


La idea es usar processing y open frameworks en la etapa de implementación, junto con hardware de reconocimiento gestual de bajo costo como webcams y wiimotes.

Algunos de los prototipos que haga van a ser en processing así que se van a poder ejecutar en esta web, también voy a colgar fotos y videos de los avances.


Más o menos ese es el plan.