diseño aplicado en instalaciones multimedia

design aplicado a instalações multimídia com projeção

entre los días 13, 14 y 15 de marzo,  estaré en san pablo, brasil, en el centro cultural trackers, proponiendo un corto taller cuyo objetivo es armar un intenso y productivo espacio de estudio de proyetos multimedia que involucran la tecnología de proyección. el taller está basado en otras previas versiones, con foco específico en los benefícios del diseño como metodología de producción y gestión de conocimiento acerca de instalaciones de tal especificidad.

serán utlizadas, fundamentalmente, tres herramientas: vpt – ya conocida aplicación abierta para mapeamento de proyección desarrollada por hc gilje -, lpmt – otra aplicación abierta para la adecuación de imágenes, interesante en especial para usuarios linux – y google sketchup para el dibujo de posibles situaciones instalativas.

el así llamado “videomapping”, o “proyección mapeada” (término que prefiero utilizar) denomina una serie de manifestaciones en las cuales el lenguaje visual es utilizado de manera inusitada y creativa en soportes no convencionales. la tecnología despierta el interés de una diversidad de profesionales, entusiastas e investigadores, con distintas bases de conocimiento. en este panorama de interdisciplinaridad, la aplicación de un método de diseño propio se vuelve necesaria, visto la diversidad de técnicas y equipamientos que estos proyectos frecuentemente involucran. se hace necesario conocer, por lo menos a nivel básico, el funcionamiento de un proyector y sus componentes, las formas de adecuación de una imagen proyectada a un soporte, la formatación de vídeo en situaciones de proyección site-specific, el cálculo de distancias y lentes en la relación entre proyector y soporte, etc.

el taller, por lo tanto, tiene como programación la que sigue:

día 1 (13/03): introducción a la metodología del diseño aplicado a la tecnología de proyección

¿qué tipos de conocimientos están relacionados con la tecnología de mapeamento de soportes para proyección?¿ qué es un proyector, y cómo funciona?¿qué tipos de equipamiento se utilizan en tales proyectos?¿ qué se debe considerar al formatar un vídeo para este tipo de situación? estas preguntas frecuentes serán planteadas en una introducción a una metodología de diseño que comprenda las diversas situaciones de uso de la tecnología de proyección. se propondrá un ejercicio en lo cual los participantes son invitados a dibujar una situación instalativa utilizando del google sketchup.

día 2 (14/03): vpt y lpmt  - adecuación de imágenes a superficies

en este día se realizará una introducción a las herramientas de mapeamento de soportes para proyección, mientras son abordadas diferencias y similitudes entre texturización “virtual” y “real”. se hará un recorrido por técnicas típicas del mapeamento, tales como la distorsión por ajuste de vértices, mascaras y frame blending. como ejercicio, los participantes serán invitados a adecuaren una imagen o vídeo de su preferencia al soporte seleccionado en el proyecto iniciado en el día anterior.

día 3 (15/03): cierre

el último día de encuentro está reservado para el término de la instalación y para esclarecimientos específicos que no fueron planteados en los días anteriores.

para inscripciones y más información, por favor, consultá el sitio web del taller.

nos vemos ahí!

 

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

pensando la urbe: avlab córdoba septiembre 2011

síguen los encuentros avlab en córdoba, y en su 4a edición en 2011, una vez más cordinada y curada por daniel gonzález xavier, ocurre en los días 19 y 20 de septiembre, en el centro cultural españa local. el tema seleccionado para este encuentro rescata uma insistente necesidad de repensar los paisagenes informacionales y urbanos frente las freneticas transformaciones. a este punto, es claro que se puede plantear la urbe como una composición de procesos mediaticos que continuamente reconfiguran los patrones de la experiencia cotidiana. celulares y herramientas online orientan a los nodos humanos (termino que a veces me suele utilizar en cambio a usuarios) a sus destinos, mientras mapean sus movimientos por entre calles y locales de interés, conectando a millares de personas en una gran red narrativa propia de una cultura virtual de intercambios (hecho que posibilita algunos autores a identificaren en las redes contemporáneas un revival de las culturas orales). cámaras en toda parte, registrando momentos particulares o actuando como mecanismos de control. el ruido de los autos, los aviones, los helicópteros, de la publicidad indiscriminada. incontables canales de comunicación en rádio-frecuencia. todos son ejemplos de distintas pero inter-relacionadas capas de información que pueden ser tomadas como plataformas de análisis, interpretación y representación de paisajes urbanos y sus complejos vectores.

se hace interesante llevar este tipo de discusión a la luz de las rápidas modificaciones en las tecnologías móviles y de simulación, no solo como un intento de comprender este ritmo esquizofrénico de ‘inovaciones’, así como también abrir  un espacio de reflexión del impacto de tales procesos en distintos contextos culturales, considerando las consecuencias de una creciente cultura material obsoleta.

esta edición del avlab intenta aportar a este tipo de debate, proponiendo un encuentro de opiniones distintas pero de alguna forma inter-textuales.

bineural-monokultur (christina ruf y ariel dávila) compartirá de sus experimentos con los audio tours, un proyecto que propone un teatro sem actores, en lo cual la ciudad es el escenario de narrativas mediadas por interfaces sonoras.

las educadoras y investigadoras de las ciencias de la información, yamila ferreyrra y valerya sbuelz, proponen una discusión acerca de posibles cartografías de cuerpos, sinergías y contrastes entre distintas territorialidades urbanas en el contexto de córdoba. su taller será basado en la creación de estrategias de mapeamento de tales circunstancias.

mi participación en el encuentro propone la proyección de imágenes como interfaz visual para posibles détournements: la imagen técnica en movimiento y en tiempo real adecuada al espacio, superpuesta, generado capas de subjetividad virtualizada sobre paisajes urbanas. habrá un corto taller para presentar a los participantes una idea muy básica de la proyección mapeada (taller este basado en encuentros anteriores) utilizando de la herramienta libre vpt. el taller ocurre en el día 20 de septiembre, desde las 10am a las 12:30pm.

despues del taller, a partir de las 2:00pm, será propuesto un laboratório de corta duración, en lo cual los participantes serán invitados, junto a nosotros, a desarrollar intervenciones en el espacio del centro cultural españa y sus alrededores para la noche de cierre del avlab.

para programación y inscripciones en los talleres, por favor, consulte el sitio web del centro cultural españa dedicado al evento.

el cce realizará transmisión en vivo via streaming del evento.

nos vemos por allá!

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

imagen en tiempo real con puredata

procesamiento de imágenes en tiempo real con puredata

de 25 a 28 de agosto, estaré en la cúpula media lab, en córdoba, argentina, para más un taller. ahora estaremos usando puredata como herramienta para generar imágenes en tiempo real, técnica que puede ser aplicada en experimentos transmediales en diversos campos de actuación, como teatro, cine, performance, danza, vjing y outros. el programa del taller se encuentra abajo:

día 1

> introducción a la plataforma: ¿qué es puredata y qué puede hacer?;

> instalación del pd y de las bibliotecas necesarias (en mac y en linux);

> introducción a puredata y programación por la metáfora de patches / programación no-linear;

> introducción a GEM y openGL;

> ejercício 1: cargando un video en una ventana GEM;

día 2

> ejercício 2: mixer de video con puredata;

> ejercício 3: filtros de imagen aplicados en tiempo real;

días 3 y 4

> ejercício 4: openCV – computer vision y puredata – identificación de faces y otros patrones visuales;

> ejercício 5: alterando imágenes en tiempo real con arduino y puredata;

vagas para 15 personas . inscripciones en el sitio de la cúpula.

para adelantar algunas de las posibilidades que discutiremos durante el taller, abajo sigue un video de una obra de teatro en la cual trabajé con ricardo palmieri, gabriel camelo y el grupo de teatro les commediens tropicales. el escenario multimedia fue hecho en una combinación de puredata y vpt (programado por palm), que comandan las proyecciones y el sonido. espero verlos en córdoba!

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

datajockey en buenos aires

datajockey buenos aires

es una honra para mi anunciarles que el taller datajockey estará en el flexible lab, en buenos aires, con el apoyo del laboratorio de juguete. el taller mantiene la propuesta de su versión anterior que estuvo en el Museo de la Imagen y del Sonido de San Pablo. serán 4 encuentros. en el primero, se abre una discusión acerca del concepto de computación e lo que apunta como problemática para la producción de imágenes. para los encuentros siguientes, 3 ejercicios son propuestos: un de visualización de datos textuales; otro de acceso e apropiación de datos del servício twitter; y el ultimo, un experimento con datos provenientes del mundo físico.

en el jueves anterior al comienzo del taller, 21/07, de 19hs a 20:30hs, estaré en flexible lab para una charla introductoria acerca del asunto.

para los interesados, envíen un mail a labodejuguete@gmail.com con un breve currículo y con sus expectativas para con el taller.

bueno, los espero ver allá. gracias a jorge crowe y a el flexible lab!

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

visualización de datos de twitter

visualización de datos 3D de las últimas mensajes de twitter que contienen un término o un conjunto de terminos. la aplicación fue hecha en processing, utilizando una versión resumida de la biblioteca twitter4j y el twitter API. este fue un ejercicio propuesto para el taller datajockey, que ocurrió durante los días 17 y 31 de mayo de 2011, en el Museo de la Imagen y del Sonido de San Pablo, Brasil.

el sketch hace una búsqueda por un término en los últimos tweets almacenados en el banco de datos de twitter, exhibiendo los resultados en un espacio 3D. la posición y el color son atribuidos de acuerdo con el horario en que cada tweet fue almacenado en el banco. si dos o más tweets fueron almacenados en horarios próximos, una línea los conecta en el espacio 3D de visualización, generando estructuras. el tamaño de los cubos es atribuido segundo el valor respectivo a los minutos del horario en que el tweet fue almacenado en el banco.

una lástima que no puedo exhibir la propia aplicación acá, debido a limitaciones del processing.js. pero el código-fuente se encuentra abajo. fíjese que, antes de testarlo en processing, es necesario bajar la biblioteca de twitter4j y inserir el archivo en una carpeta llamada ‘code’, que debe quedarse adentro de la carpeta de tu sketch de processing. es necesario también inserir algunas claves de acceso al banco de datos del twitter, registrando una nueva aplicación en el sitio del API. después, injerí las respectivas claves en las variables indicadas en el código.

//twitter 3D data visualization
//by medul.la
//http://medul.la
//based on the sketch '3D Processing World', by Josue Page
//http://www.openprocessing.org/visuals/?visualID=19216
//the twitter connection is made by using the twitter4j java library:
//http://twitter4j.org
 
// Before you use this sketch, register your Twitter application at dev.twitter.com
// Once registered, you will have the info for the OAuth tokens
 
//setting twitter API info:
static String OAuthConsumerKey = "PUT YOUR CONSUMER KEY HERE";
static String OAuthConsumerSecret = "PUT YOUR CONSUMER SECRET KEY HERE";
static String AccessToken = "PUT YOUR ACCESS TOKEN HERE";
static String AccessTokenSecret = "PUT YOUR ACCESS TOKEN SECRET HERE";
 
//define parameters
//a word to search for in the tweets database:
String searchTerm = "PUT YOUR SEARCH TERM HERE";
//a number of tweets to work with (you can choose any number up to 100) :
int numOfTweets = 50;
 
java.util.List statuses = null;
Twitter twitter = new TwitterFactory().getInstance();
RequestToken requestToken;
String[] theSearchTweets = new String[numOfTweets];
Date[] tweetTimeData = new Date[numOfTweets];
String[] tweetTimeStrings = new String[0];
int[] tweetTimeInts = new int[0];
color[] colors = new color[0];
int[] coords = new int[0];
int objects = numOfTweets, zoom = -300, xCube, yCube, zCube;
Pts[] cubes = new Pts[objects];
color bgColor = 0, lineColor = 255;
float R, G, B;
PFont theFont;
 
void setup() {
  size(1024, 750, P3D);
  connectTwitter();
  getSearchTweets(searchTerm);
  convertDateToString();
  convertStringToInts();
  convertIntsToColor();
  convertIntsToPosition();
  checkColors();
  checkCoords();
  background(255);
  translate(width, 0, 0);
  theFont = createFont("Arial",1000);
  for (int i = 0; i < numOfTweets ; i++) {
    String t = theSearchTweets[i];
    //println(t);
    cubes[i] = new Pts(coords[i], coords[i+1], coords[i+2], colors[i], 1, t);
  }
}
 
void draw() {
  translate(width/2, height/2, width/2+zoom);
  rotateX(map(mouseY, 0, height, -2*PI, 2*PI));
  rotateY(map(mouseX, 0, width, -2*PI, 2*PI));
  background(bgColor, 50);
  for (int u = 0; u < objects ; u++) {
    cubes[u].drawCubes();
    for (int v=0;v<objects;v++) {
      if (abs(cubes[u].z-cubes[v].z)<200) {
        if (abs(cubes[u].x-cubes[v].x)<200) {
          if (abs(cubes[u].y-cubes[v].y)<200) {
            stroke(lineColor, 50);
            beginShape(LINES);
            vertex(cubes[u].x, cubes[u].y, cubes[u].z);
            vertex(cubes[v].x, cubes[v].y, cubes[v].z);
            endShape();
          }
        }
      }
    }
    cubes[u].change();
  }
 
  if (mousePressed) {
    bgColor = 255;
    lineColor = color(255, 0, 0);
  }
  else {
    bgColor = 0;
    lineColor = 255;
  }
}
 
class Pts {
  int x, y, z;
  float tem;
  color cubeColorC;
  String theText;
 
  Pts(int a, int b, int c, color d, float e, String t) {
  x = a;
  y = b;
  z = c;
  cubeColorC = d;
  tem = b/20;
  theText = t;
 
  }
 
  void drawCubes() {
    if (mousePressed) {
      fill(0, 50);
    }
    else {
      fill(lineColor, 50);
    }
    noStroke();
    fill(cubeColorC);
    text(theText, x+30, y, 100, 1000, z);
    pushMatrix();
    translate(x, y, z); 
    fill(cubeColorC);
    box(tem);
    popMatrix();
  }
 
  void change() {
    if (x <- width) {
      x =- width + 10;
    }
    else {
      if (x > height) {
        x = height - 10;
      }
      else {
        x = x + int(random(-3, 3));
      }
    }
    if (y <- height) {
      y =- height+10;
    }
    else {
      if (y > width) {
        y = width - 10;
      }
      else {
        y = y + int(random(-5, 5));
      }
      if (z > width) {
        z = width - 10;
      }
      else {
        z = z + int(random(-5, 5));
      }
      if ( z<- width) {
        z =- width + 10;
      }
    }
  }
}
 
void keyPressed() {
  if (keyCode == 40) {
    zoom -= 300;
  }
  if (keyCode == 38) {
    zoom += 300;
  }
}
 
//twitter API functions
 
// Initial connection
void connectTwitter() {
  twitter.setOAuthConsumer(OAuthConsumerKey, OAuthConsumerSecret);
  AccessToken accessToken = loadAccessToken();
  twitter.setOAuthAccessToken(accessToken);
}
 
// Loading up the access token
private static AccessToken loadAccessToken() {
  return new AccessToken(AccessToken, AccessTokenSecret);
}
 
// Search for tweets
void getSearchTweets(String searchTerm) {
 
  String queryStr = searchTerm;
 
  try {
    Query query = new Query(queryStr);    
    query.setRpp(numOfTweets); // Get 10 of the 100 search results  
    QueryResult result = twitter.search(query);    
    ArrayList tweets = (ArrayList) result.getTweets();    
 
    for (int i=0; i<tweets.size(); i++) {	
      Tweet t = (Tweet)tweets.get(i);	
      String user = t.getFromUser();
      String msg = t.getText();
      Date d = t.getCreatedAt();	
      theSearchTweets[i] = msg;
      tweetTimeData[i] = d;
      println(theSearchTweets[i]);
      println("----------------");
      println("Tweet by " + user + " at " + d);
      println("----------------");
      println(tweetTimeData[i]);
      println("----------------");
    }
 
  } catch (TwitterException e) {    
    println("Search tweets: " + e);  
  }
 
}
 
void convertDateToString(){
   for (int i = 0; i < tweetTimeData.length; i++){
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy/HH/mm/ss");
    String s = df.format(tweetTimeData[i]);
    String sArray[] = new String [0];
    sArray = splitTokens(s, "/");
    for (int j = 0; j < sArray.length; j++){
      tweetTimeStrings = append(tweetTimeStrings, sArray[j]);
      println(tweetTimeStrings[j]);
    } 
   }
}
 
void convertStringToInts(){
   for (int i = 0; i < tweetTimeStrings.length; i++){
    int num = int(tweetTimeStrings[i]);
    tweetTimeInts = append(tweetTimeInts, num);
    println("tweetTimeInts at the index of " + i + " is: " + num);
   }
}
 
void convertIntsToColor(){
   for (int i = 3; i < tweetTimeInts.length; i = i+6){
      R = map (tweetTimeInts[i], 0, 24, 0, 255);
      G = map (tweetTimeInts[(i+1)], 0, 60, 0, 255);
      B = map (tweetTimeInts[(i+2)], 0, 60, 0, 255);
      color clr = color (R, G, B); 
      colors = append (colors, clr);
      //println("color stored is = R " + red(clr) + ", G " + green(clr) + ", B " + blue(clr));   
   }
}
 
void convertIntsToPosition(){
   for (int i = 3; i < tweetTimeInts.length; i = i+6){
      xCube = int(map (tweetTimeInts[i], 0, 24, -width, width));
      yCube = int(map (tweetTimeInts[(i+1)], 0, 60, -height, height));
      zCube = int(map (tweetTimeInts[(i+2)], 0, 60, -width, width));
      coords = append (coords, xCube);
      coords = append (coords, yCube);
      coords = append (coords, zCube);
      //println("position stored is = xCube " + xCube + ", yCube " + yCube + ", zCube " + zCube);   
   }
}
 
void checkColors(){
   for (int i = 0; i < objects; i++){
      println("color stored is = R " + red(colors[i]) + ", G " + green(colors[i]) + ", B " + blue(colors[i]));
   }
}
 
void checkCoords(){
   for (int i = 0; i < coords.length; i=i+3){
      println("position stored is = xCube " + coords[i] + ", yCube " + coords[i+1] + ", zCube " + coords[i+2]);
   }
}

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

una devolución cuanto a arquitectura aumentada

acá están algunas imágenes del taller arquitectura aumentada, que ocurrió en el comienzo del mes en el espacio Trackers, en San Pablo. el taller introdujo algunos conceptos cuanto a la técnica y el lenguaje de la proyección aplicada a experimentaciones en percepción visual-espacial.

augmented architecture on flickr

augmented architecture on flickr

augmented architecture

augmented architecture

augmented architecture

y abajo sigue una presentación que utilicé para hablar del histórico de la proyección, en un sentido de percibir un cierto movimiento que, parafraseando a André Parente, puede denominarse “diáspora de la caja oscura”, proceso en lo cual me suele argumentar que la proyección mapeada esta inserida.

me gustaría agradecer eduardo ricci por las fotos, y a todos los participantes de ambos los talleres, fueron encuentros de mucha aprendizaje y construcción ;)

para el taller realizado en el mismo espacio Trackers, en diciembre de 2010, escribí un texto que reúne algunos de los conceptos que propongo cuanto al asunto, pretendo publicar acá una revisión de este texto. para los interesados, se puede bajar el pdf con el texto original acá.

fijense.

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

visualización de datos textuales

visualizing text data

hice un upload de un sketch hecho en  processing en la plataforma openprocessing, que propuse como ejercicio del taller datajockey. el sketch puede ser utilizado como forma de representar datos textuales en diferentes tipos de representación geométrica.

presione “C” para círculos, “S” para cuadrados e rectángulos, “A” para arcos e “L” para líneas.

el ejemplo arriba es una representación visual de algunos párrafos presentes en la novela de machado de assis, dom casmurro.

el código funte y el propio sketch pueden ser encontrados acá.

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

datajockey

datajockey

“(…) mientras el campo artístico de los nuevos medios han rapidamente expandido en los últimos años, y mientras los artistas en todas las disciplinas ahora utilizan la computadora como herramienta de trabajo, son raros los artistas que tienen su foco en lo más importante y radical concepto asociado a las computadoras digitales: la computación per se (en vez de otros, como interactividad, redes o multimedios)”.

- Lev Manovich, The Anti-Sublime Ideal in Data Art, p.6.

se puede plantear el concepto de computación como la matematización sistemática y automatizada de los procesos comunicativos. aunque la complejificación de estos procesos sea un innegable problema, hay un hecho, aún más esencial – de lo cuál nos habla Manovich -, que es la conversión de la cultura a una misma naturaleza de bits y bytes.

el taller Datajockey intenta levantar algunas cuestiones cuanto a estos procesos de computación, de modo a propiciar un espacio de discusión y experimentación acerca de una imagen (o una estética) posible para esta problemática.

para eso, serán propuestos ejercicios con las tecnologías libres ProcessingArduino. serán estudiados ejemplos simples de conversión de tipos de datos, así que el participante pueda experimentar con una imagen generada en tiempo real que es producto de informaciones locales (por intermedio de sensores o cámaras) o de otros contextos (información en red).

de 17 a 31 de mayo, martes y jueves, en el LabMIS/Museo de la Imagen y del Sonido de San Pablo.

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

arquitectura expandida

empiezo las actividades por acá anunciando que estaré en el espacio cultural trackers, en san pablo, entre los dias 11, 12 e 13 de mayo, trabajando en el taller arquitetura aumentada (arquitectura expandida), de 8pm a 11pm. se propone un espacio de intercambio de referencias y experimentaciones acerca de la técnica de proyección como agente en el proceso de percepción espacial. como herramienta digital, utilizaremos la aplicación libre VPT.

para inscripciones, enviá un mail a video@trackers.cx. más informaciones en el trackers blog.

como un adelanto, siguen algunas imágenes y vídeos del último taller, en diciembre/2010:

muchas gracias a lina lopes e a igor spacek por las fotos y vídeos. para más imágenes, por favor visite a el picasa de lina.

igualmente, estaré posteando más imágenes y vídeos de estos próximos 3 días de encuentro, fíjense.

..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................