martes, 24 de mayo de 2011

Que importa tu color de Piel

Introducción

Esta aplicación pretende generar en los usuarios un pensamiento basado en la creencia de que
sus orígenes son totalmente ajenos a atributos superficialmente característicos.

Marco conceptual

¿Por qué la idea?

Este proyecto nace con la idea de una campaña contra el racismo, un problema que se vive a
nivel mundial. Lo que se quiere lograr con este proyecto es que todos somos iguales sin
importar el color de nuestra piel.

Se entiende por racismo como la discriminación hacia personas de diferentes etnias. El racismo
es una forma de separación de las personas, muy antigua y extendida, que recurre a
tendencias raciales como el tono de piel u otras características físicas de las personas.

¿Cómo va a funcionar?

Este proyecto funcionará como una aplicación donde la cámara hará reconocimiento del
usuario y le ofrecerá las opciones de cambiarse el color de la piel. Así podrá notar que aun
siendo de otro color, sigue siendo la misma persona. La interfaz viene acompañado con la
frase, “que importa tu color de piel”, para concientizar a la persona.

¿Quiénes serán los usuarios?

Los usuarios serán personas que conozcan el uso de una cámara web y puedan navegar a
través del navegador. Personas que sientan curiosidad por verse con diferentes colores de piel
y estén interesados en mejorar la conciencia colectiva sobre el racismo.

Lo pueden usar personas de cualqu

ier edad, los niños acompañados de alguien que les ayude a
usar la aplicación.

Referencias

-WWF tigrehttp://
www.youtube.com/watch?v=0ZO4mkTbaj0
Campaña impulsada por la “World Wildlife Foundation” en el norte de Europa y Asia para
acabar con la caza del tigre de Bengala, especie en vía de extinción, a través de camisetas con
tags que al usarse frente a la cámara simulan un disparo.

-Aplicación de Applehttp://
www.youtube.com/watch?v=vy5saRyMymM
Aplicación de Apple, que de acuerdo a los rasgos de una persona muestra elementos
representativos de la cultura a la que pertenece.

-Portrait Machinehttp://
www.openframeworks.cc/gallery/portrait-machin
Instalación fotográfica interactiva que visualiza las conexiones entre los visitantes,
recordándonos nuestra conectividad y particularidad, creando patrones visuales sólidos.

-Total Immersion Augmented Reality Demo Reel 2010-
http://www.youtube.com/watch?v=saFSSQgv6UM
En este video se pueden ver diferentes aplicaciones que usan el tracking de cara como
herramienta.

-Dell Webcam Center-
Aplicación de los computadores Dell, en la que se utiliza una aproximación al tracking de cara, al reemplazar la cara del usuario
por la cabeza de un avatar predeterminado copiando el movimiento de la cabeza y la boca.


Cognitive Walkthrough


Interfaz inicial:



Interfaz final:



¿A qué se debe el cambio de la aplicación?

La separación a ciertos grupos raciales, evitaban en la aplicación que las personas pudieran
conceptualizar diferentes identidades a través de los colores, ya que se limitaba a un cierto
rango que carecía de fundamentos para concientizar a los usuarios.

Interfaz:

Instrucciones



Interfaz principal




Nueva Interfaz

Luego de ser evaluado, se modificó nuevamente la interfaz del usuario, dado a que el punto focal de la aplicación
era el video en la pantalla, por lo que el marco, las imágenes a su alrededor y todo lo demás simplemente estaban
ocupando espacio.




Documentación:

Durante el proceso de la aplicación, se encontraron diversos problemas al lograr crear el
efecto deseado para darle a entender al usuario la base inicial de la campaña.

Al entender que los tonos de piel vareaban entre amarillo - rojo - café, se empezó a
experimentar tonalidades diferentes e inusuales que fueran más atractivas para el usuario, y al
igual creara el mismo impacto.



A través de ensayo y error, en la gama de (Hue, Saturation, Brightness) se comprendió que se
debía tomar el “hue” como la variable principal que le da la tonalidad a la aplicación, y usar el
“saturation” y “brightness”, para modificar como dice su nombre, el brillo y la saturación.



Se probó la gama de color que manejaba el “hue” y se encontró los siguientes valores.
Amarillo : 0-50
Verde : 50-130
Azul :130-190
Violeta :190-320
Rojo :320-399







Al finalizar, los colores más puros fueron los escogidos para la aplicación, dado a que no solo
representaba el mensaje “no importa tu color de piel”, sino que los usuarios se identificaban
con personajes conocidos en películas. Dos ejemplos son: El verde de Hulk, y azul de Avatar.

Prueba de usuarios:
http://www.youtube.com/watch?v=2wyHZyDjXQI


Conclusión:

Se dio a entender que ser de diferente color de piel no era una característica principal para
segmentar a los que nos rodean. Esto se debe a que por dentro seguimos siendo los mismos.
Igualmente el haber creado una aplicación llamativa, logra captar la atención de diferente
público, que al entablar una conexión con la interfaz, se genera la pregunta y crea
concientización en los usuarios.

martes, 5 de abril de 2011

Comunidad

Entrega Comunidad - Sinner

http://www.4shared.com/get/9J9XlJQQ/Entrega_Final_Sinners.html

viernes, 4 de marzo de 2011

Codigo en PD y codigo en PROCESSING

Proyecto Maestro de Orquesta

http://www.megaupload.com/?d=L2BOL2XR

jueves, 3 de marzo de 2011

Maestro Musical


“Maestro de Orquesta”

Instrumento basado en el movimiento de las manos.


Introducción:

Tomando como referencia al maestro de orquesta, el encargado de crear composiciones sonoras a través de la comunicación gestual. Este proyecto se basó en aquellos gestos, que dependiendo de la posición de las manos en el espacio, el sonido creado varea en diferentes valores. De una forma similar esos mismos movimientos se replantearon para crear la distorsión de otros sonidos generados por filtros.


PROCESO

Se empezó por hacer una lista de ideas posibles a desarrollar, ver que gestos se adecuaban a ellas, y cuales eran las herramientas tecnológicas para su creación. Se escogio una sola, en este caso el “Maestro de Orquesta”.

Idea

Gestos

Sensores

Maestro de OrquestaInstrumento basado en el movimiento de las manos y la filtración de la voz. Las opciones con las manos constan en elevación, descender, rapidez y apertura.

-Cámara web
-Micrófono
Baile Sonoro

Movimiento corporal al encogerse, expandirse, saltar y mover cualquier articulación estando de pie o sentado.

-15 sensores de movimiento.
-15 acelerómetros.
-15 salidas de audio.
Bloqueando Luz

Movimiento enfocado en las piernas al saltar y sostenerse en diferentes posiciones estando de pie.

-9 sensores de luz.
Sombras Sonoras

Movimiento de las manos al juntarse creando figuras de sombras en una superficie. Reconocimiento de figuras creadas con dedos.

-Cámara web
-Cámara infrarrojo
-Proyector de luz
Simon Rubrick

Movimiento corporal alrededor de un eje. Fusión entre la memoria y el movimiento aleatorio.

-24 pulsadores
-24 leds RGB
Gesto con Ojos

Caras solo con el movimiento de los ojos, movimiento de pupila, el cierre de los párpados, el apretarlos y abrirlos.

-Cámara web
-Cámara Infrarrojo.



Modelo Conceptual:

¿Qué debería hacer el producto?
  • Incentivar al usuario a querer usar el dispositivo musical.
  • Crear una nueva experiencia al generar sonidos sin sujetar algún objeto.
  • Permitir al usuario crear composiciones sonoras a su gusto.
  • Generar el sentimiento de manipular el sonido siendo un maestro de orquesta.
  • Permitir que el usuario cree el sonido base de la composición partiendo de su voz.
  • Permitir el mezclar sonidos a través de filtros de acuerdo a la ubicación de las manos.


¿Cómo se debería comportar?
  • Rápida y efectivamente el cambio de sonido escuchado.
  • Rápida y claramente el feedback sonoro creado al mover las manos.


¿Cómo se debería ver el producto?
  • Con un computador y un sistema de sonido.
  • Con una cámara web enfrente del usuario.
  • En un espacio amplio para poder mover los brazos.



Requerimientos funcionales:
  • Permitir que el sistema reconozca los movimientos del usuario.

  • Mostrar en tiempo real los cambios generados por el usuario al ingresar datos de posición.

  • Permitir que los movimientos gestuales se conviertan en un ambiente de juego y diversión.


Requerimientos no funcionales:

Nombre
Dato
Tipo TamañoPersistenciaObligatorioEditable
por el
usuario
Ejemplo
(opciones)
Estado de
Encendido
Numero
entero
1 digito Si Si Si 1 (ON)
0 (OF)
Categoría
Sonido
De audioHasta 10
MB
TemporalSiSiMicrófono
Reproducción
De Sonido
De audioInfinitoSiSiSiSonido.wav




Requerimientos de contexto:

Físico:
Ambiente de interacción público en un espacio cerrado, poco ruido, con iluminación artificial. En un espacio donde pase gente de varias edades.

Social:
No requiere trabajo colaborativo pero se puede compartir experiencias sonoras con otros usuarios.

Técnico:
Requiere un computador dado a que se ejecutará desde processing y el sonido provendrá desde pure data. Se debe tener una salida de audio. Igualmente se
debe tener una cámara web que reconozca los movimientos del usuario.

Requerimientos de usuario:
Los usuarios puede ser cualquier persona. No debe tener previa experiencia en composiciones musicales. Se enfoca en jóvenes adultos que por su altura alcancen el objetivo de la cámara.

Requerimiento de usabilidad:
Los sonidos generados por el movimiento de las manos serán agradables al oído del humano. El sistema se activará de inmediato cuando el usuario mueva las manos.



Muestra de medición sensor -> variable humana
Hertz entrantes de sonido –Exhalación de aire, expresión vocal.
Ondas de luz rebotan el cuerpo que detectan la velocidad -> Movimiento con las manos gestuales.







Mapping:



Codigos:

//Codigo Processing:

/*
//Codigo Brightness Thresholding por: Golan Levin.
//Modificado por: Allesandro Valli.
//Editado por: Enrique Copete


//Instrucciones:
// Enfocar un espacio donde no exista movimiento.
// Esperar 5 segundos antes de entrar a pantalla, para que solo
// detecte movimiento, y no cree un area sensible activa todo el
// tiempo.
*/

//libreria para conectar en red con puredata
import oscP5.*;
import netP5.*;
import processing.video.*;

OscP5 oscP5;
NetAddress myRemoteLocation;

color black = color(0,200,10,10); //Variable del color que se torna la pantalla.

//variables R,G,B en el ancho y alto de la pantalla.
float memoryR[] = new float[160*120];
float memoryG[] = new float[160*120];
float memoryB[] = new float[160*120];

int wait = 90;

float w1=3; // cual es mas importante de los representantes de arriba( hue, saturation, brightness)
float w2=3;
float w3=1;

//temporal smoothing
final float ALFA=0.4;
float smooth_x;
float smooth_y;
boolean present = false;

float radius = 60;


float distanceBS (float c1, float c2, float c3, float m1, float m2, float m3)//background subsrtaction
{
return sqrt(w1*pow(c1-m1,2)+w2*pow(c2-m2,2)+w3*pow(c3-m3,2));
}



int numPixels;
Capture video;


void setup() {

size(160, 120);

//puerto de conexcion en red con el codigo de pd.
oscP5 = new OscP5(this,12000);
myRemoteLocation = new NetAddress("localhost",12001); //localhost detecta el ip del computador en el momento.
oscP5.plug(this,"test","/test");

strokeWeight(5);
// Uses the default video input, see the reference if this causes an error
video = new Capture(this, width, height, 30);
numPixels = video.width * video.height;
noCursor();
smooth();
}

void test(int theR, int theG, int theB) {
fill(theR,theG,theB);
}


void draw() {
//Detecta el video.
if (video.available()) {
video.read();
image(video,0,0);
video.loadPixels();

loadPixels();

if(wait==0) {
for (int i=0; i<160*120;i++)
{
memoryR[i] = red(video.pixels[i]);
memoryG[i] = green(video.pixels[i]);
memoryB[i] = blue(video.pixels[i]);
}

}


wait--;

float sumx=0;
float sumy=0;
float sumn=0;

for (int y = 0; y <>
for (int x = 0; x <>

int i = x+y*width;

// Identificar si el pixel es mas luminoso que lo detectado.
if (distanceBS(red(video.pixels[i]),green(video.pixels[i]),blue(video.pixels[i]), memoryR[i], memoryG[i], memoryB[i])>radius) {
sumx+=x;
sumy+=y;
sumn+=1.0;
}
else { // Si no es mas luminoso entonces

if (wait<10)>
pixels[i] = black; // make it black = color green
}
}
} //cierra el for de x

updatePixels();

if(sumn>500) {//a veces con unos colores para quitarle el ruido se le puede subir este valor

//variables tracking de la esfera que se mueve hacia el movimiento detectado.
int tracking_x = (int) (sumx/sumn);
int tracking_y = (int)(sumy/sumn);
println(tracking_x + " " + tracking_y);

smooth_x =(1.0-ALFA)*smooth_x + ALFA*tracking_x;
smooth_y =(1.0-ALFA)*smooth_y + ALFA*tracking_y;

if (!present) {
smooth_x = tracking_x;
smooth_y = tracking_y;
}
present = true;

//ellipse para ver donde se encuentra el tracking.
//fill(5,100,100,255);
noFill();
noStroke();

//parametros del tracking para que sea exacto la posicion, en ves de smooth, poner tracking
if (wait<0)>
ellipse ((int)smooth_x, (int)smooth_y,10,10);
}
}

else {
present = false;
}

//conector con pd, datos a enviar
OscMessage myOscMessage = new OscMessage("/test");
myOscMessage.add((int)smooth_x);
myOscMessage.add((int)smooth_y);

//areas sensibles a enviar a pd para diferenciar los sonidos.
if (smooth_x <>
myOscMessage.add (0);
println ("IZQ");
}
else if (smooth_x > 110) {
myOscMessage.add (2);
println ("DER");
}
else {
myOscMessage.add (1);
println ("CEN");
}

oscP5.send(myOscMessage, myRemoteLocation);

}

}

// incoming osc message are forwarded to the oscEvent method.
void oscEvent(OscMessage theOscMessage) {
// get and print the address pattern and the typetag of the received OscMessage
//println("### received an osc message with addrpattern "+theOscMessage.addrpattern()+" and typetag "+theOscMessage.typetag());
theOscMessage.print();
}






Referencias:




1.
http://www.youtube.com/user/jeffreystolet#p/a/f/0/AUaK9-qiJ6M
http://music.uoregon.edu/people/faculty/stolet.htm

En el año 2004, Jeffrey Stoler desarrollo “Tokyo Lick”. Este proyecto consiste en el movimiento de las manos en dos esferas infrarojas no visibles para el ojo humano el cual crea el sonido. La relación con este proyecto es el movimiento de las manos pero difiere en que este proyecto las manos se mueven en el eje X y Y, mienstras ese se genera a través de la distancia.


2.
http://interactive-sound.blogspot.com/

Un proyecto desarrollado por Rhys Griffiths,Serger Viranian y Rong Ma, llamado “virtual dj”. Este proyecto consiste en crear, distorsionar, scratch, entre otros sonidos creados por el cuadrante donde se encuentra las manos. La relación con este proyecto es su funcionamiento y su contexto para ser creado, pero difiere en la forma de manejarlo.


3.
http://www.tammen.org/pro_solo.html

En el año 2001, Hans Tammen desarrollo el proyecto de la “Endangered Guitar”. Este proyecto consiste en tocar una guitarra con las manos a través de sensores de proximidad el cual le permite recrear hasta tres sonidos a la vez. La relación con este proyecto es el crear sonidos con el movimiento de las manos, pero difiere en que el sonido es detectado por los sensores, en cambio este se detecta a través de una cámara web.


4.

http://thebeamz.com/

En el año 2010, una compañia de productos de sonidos interactivos desarrollo un instrumento musical llamado “Beamz”. Este poryecto consiste en detectar el movimiento de las manos a través de la luz de un laser. La relación con este es el movimiento de las manos solo que difiere en la forma de aplicación.


5.
http://www.openprocessing.org/visuals/?visualID=10435

En Junio 16 del año 2010, Hidetoshi Shimodaira, desarrollo un código en processing el cual consiste en, a través de la captura de video, poder mover un circulo en pantalla con el movimiento de las manos y que dependiendo de su posición, un sonido es recreado. La relación con este proyecto es que el movimiento es detectado a través de la cámara web y se recrean sonidos predeterminados. Pero el nuestro difiere en que el circulo no intenta alejarse del movimiento de las manos, sino que tiende a dirigirse hacia aquel. Igualmente el sonido creado no varea tanto en la posición del círculo, sino en la posición de las manos.