Como pudimos comprobar a lo largo del curso, el arte Multimedia definitivamente ofrece una considerable cantidad de alternativas y opciones de las que un artista plástico puede servirse en su labor cotidiana. Aunque muchas de las herramientas y tecnologías estudiadas parecen de cierto modo contraponerse a las disciplinas tradicionales, pueden, sin embargo complementarse y enriquecerse mutuamente si quien las emplea posee suficiente criterio y apertura para saber aprovechar dicha simbiosis entre aspectos aparentemente opuestos. Si bien las nuevas tecnologías permiten soluciones nunca antes conocidas e imposibles de llevar a cabo con otros medios, no garantizan, por sí mismas, el desarrollo de un discurso y una producción artística coherente y convincente, aunque merecen sin duda ser tomadas en cuenta, ser conocidas y valoradas en su justa medida por el creador, aun si no resultan ser un recurso habitual dentro de su trabajo. Considero que, como cualquier otra disciplina, su conocimiento cabal y profundo puede mostrarnos muchos más caminos a seguir, sobre todo en una época en la cual la tecnología ha alcanzado una extensión e importancia sin precedentes, pero no debemos olvidar que es finalmente el artista quien desarrolla su obra, e inclusive los medios considerados más obsoletos pueden convertirse en armas formidables siempre y cuando exista voluntad, creatividad y capacidad, para las cuales toda técnica, toda disciplina y toda tecnología poseen su propio y particular potencial, siendo, en formas distintas, perfectamente aprovechables.
martes, 7 de junio de 2011
domingo, 29 de mayo de 2011
Arte de Cómputo Físico
Self Portrait
En esta instalación creada por Random International Studio, una pantalla captura momentáneamente la imagen del espectador, misma que no vuelve a repetirse ni a aparecer nuevamente, cuestionando de esta manera el concepto tradicional del retrato como una forma de preservar la memoria mediante una imagen. En esta pieza, un programa hace que los "retratos" ejecutados sean expuestos y almacenados momentáneamente para ser eliminados cuando un nuevo espectador se acerca e interactúa con la pantalla, único instante en el cual existe y se produce una evidencia de dicho encuentro.

You Fade to Light
Esta pieza pertenece también al Random International Studio, y consiste en un panel compuesto por 1064 celdas luminosas y espejos pequeños, así como un software y una cámara capaces de detectar y traducir en impulsos lumínicos cada movimiento que el espectador realice. La instalación difiere de un espejo convencional en el sentido de que la imagen reflejada no resulta un elemento pasivo, sino que se traduce en movimientos de luz dentro de un recinto oscuro, la única e indispensable condición para que ello ocurra es la interacción de un individuo con la pieza, que en medio de la oscuridad, requiere un detonante para producir un efecto o estado contrario.

Wave Ufo
La artista japonesa Mariko Mori desarrolló esta pieza interactiva, en cuyo interior, una serie de electrodos son conectados al espectador con el objeto de leer sus ondas cerebrales, utilizando un programa especialmente diseñado para ello. Esta información se transforma en una imagen visual, que se corresponde en tiempo real con la actividad del cerebro; las formas que se proyectan en las paredes de la pieza cambian como respuesta a tres tipos de ondas cerebrales, indicando mediante distintos colores cual de ellas es la dominante, es decir, qué estado mental prevalece en el sujeto durante dicha experiencia, misma que logra humanizar la tecnología conectando al espectador con su propio mundo interior y sus particulares estados de ánimo, logrando así, mediante la interacción hombre-máquina una conjunción entre cuerpo, mente y alma.


You Fade to Light
Esta pieza pertenece también al Random International Studio, y consiste en un panel compuesto por 1064 celdas luminosas y espejos pequeños, así como un software y una cámara capaces de detectar y traducir en impulsos lumínicos cada movimiento que el espectador realice. La instalación difiere de un espejo convencional en el sentido de que la imagen reflejada no resulta un elemento pasivo, sino que se traduce en movimientos de luz dentro de un recinto oscuro, la única e indispensable condición para que ello ocurra es la interacción de un individuo con la pieza, que en medio de la oscuridad, requiere un detonante para producir un efecto o estado contrario.

Wave Ufo
La artista japonesa Mariko Mori desarrolló esta pieza interactiva, en cuyo interior, una serie de electrodos son conectados al espectador con el objeto de leer sus ondas cerebrales, utilizando un programa especialmente diseñado para ello. Esta información se transforma en una imagen visual, que se corresponde en tiempo real con la actividad del cerebro; las formas que se proyectan en las paredes de la pieza cambian como respuesta a tres tipos de ondas cerebrales, indicando mediante distintos colores cual de ellas es la dominante, es decir, qué estado mental prevalece en el sujeto durante dicha experiencia, misma que logra humanizar la tecnología conectando al espectador con su propio mundo interior y sus particulares estados de ánimo, logrando así, mediante la interacción hombre-máquina una conjunción entre cuerpo, mente y alma.

martes, 10 de mayo de 2011
lunes, 2 de mayo de 2011
Ejercicios de Processing
Ejercicio 1
int numBalls = 400;
float spring = 0.05;
float gravity = 0.07;
float friction = -0.9;
Ball[] balls = new Ball[numBalls];
void setup()
{
size(440, 440);
noStroke();
smooth();
for (int i = 0; i < numBalls; i++) {
balls[i] = new Ball(random(width), random(height), random(20, 40), i, balls);
}
}
void draw()
{
background(0);
for (int i = 0; i < numBalls; i++) {
balls[i].collide();
balls[i].move();
balls[i].display();
}
}
class Ball {
float x, y;
float diameter;
float vx = 0;
float vy = 0;
int id;
Ball[] others;
Ball(float xin, float yin, float din, int idin, Ball[] oin) {
x = xin;
y = yin;
diameter = din;
id = idin;
others = oin;
}
void collide() {
for (int i = id + 1; i < numBalls; i++) {
float dx = others[i].x - x;
float dy = others[i].y - y;
float distance = sqrt(dx*dx + dy*dy);
float minDist = others[i].diameter/2 + diameter/2;
if (distance < minDist) {
float angle = atan2(dy, dx);
float targetX = x + cos(angle) * minDist;
float targetY = y + sin(angle) * minDist;
float ax = (targetX - others[i].x) * spring;
float ay = (targetY - others[i].y) * spring;
vx -= ax;
vy -= ay;
others[i].vx += ax;
others[i].vy += ay;
}
}
}
void move() {
vy += gravity;
x += vx;
y += vy;
if (x + diameter/2 > width) {
x = width - diameter/2;
vx *= friction;
}
else if (x - diameter/2 < 0) {
x = diameter/2;
vx *= friction;
}
if (y + diameter/2 > height) {
y = height - diameter/2;
vy *= friction;
}
else if (y - diameter/2 < 0) {
y = diameter/2;
vy *= friction;
}
}
void display() {
fill(200,24,40,100);
rect(x, y, diameter, diameter);
}
}
Ejercicio 2
float bricksPerLayer = 26.0;
float brickLayers = 30.0;
Cube brick;
float brickWidth = 80, brickHeight = 45, brickDepth = 35;
float radius = 145.0;
float angle = 0;
void setup(){
size(640, 360, P3D);
brick = new Cube(brickWidth, brickHeight, brickDepth);
}
void draw(){
background(255);
float tempX = 0, tempY = 0, tempZ = 0;
fill(0, 40, 29, 40);
noStroke();
// Add basic light setup
lights();
translate(width/2, height*1.2, -380);
// Tip tower to see inside
rotateX(radians(-45));
// Slowly rotate tower
rotateY(frameCount * PI/600);
for (int i = 0; i < brickLayers; i++){
// Increment rows
tempY-=brickHeight;
// Alternate brick seams
angle = 360.0 / bricksPerLayer * i/2;
for (int j = 0; j < bricksPerLayer; j++){
tempZ = cos(radians(angle))*radius;
tempX = sin(radians(angle))*radius;
pushMatrix();
translate(tempX, tempY, tempZ);
rotateY(radians(angle));
// Add crenelation
if (i==brickLayers-1){
if (j%2 == 0){
brick.create();
}
}
// Create main tower
else {
brick.create();
}
popMatrix();
angle += 360.0/bricksPerLayer;
}
}
}
int numBalls = 400;
float spring = 0.05;
float gravity = 0.07;
float friction = -0.9;
Ball[] balls = new Ball[numBalls];
void setup()
{
size(440, 440);
noStroke();
smooth();
for (int i = 0; i < numBalls; i++) {
balls[i] = new Ball(random(width), random(height), random(20, 40), i, balls);
}
}
void draw()
{
background(0);
for (int i = 0; i < numBalls; i++) {
balls[i].collide();
balls[i].move();
balls[i].display();
}
}
class Ball {
float x, y;
float diameter;
float vx = 0;
float vy = 0;
int id;
Ball[] others;
Ball(float xin, float yin, float din, int idin, Ball[] oin) {
x = xin;
y = yin;
diameter = din;
id = idin;
others = oin;
}
void collide() {
for (int i = id + 1; i < numBalls; i++) {
float dx = others[i].x - x;
float dy = others[i].y - y;
float distance = sqrt(dx*dx + dy*dy);
float minDist = others[i].diameter/2 + diameter/2;
if (distance < minDist) {
float angle = atan2(dy, dx);
float targetX = x + cos(angle) * minDist;
float targetY = y + sin(angle) * minDist;
float ax = (targetX - others[i].x) * spring;
float ay = (targetY - others[i].y) * spring;
vx -= ax;
vy -= ay;
others[i].vx += ax;
others[i].vy += ay;
}
}
}
void move() {
vy += gravity;
x += vx;
y += vy;
if (x + diameter/2 > width) {
x = width - diameter/2;
vx *= friction;
}
else if (x - diameter/2 < 0) {
x = diameter/2;
vx *= friction;
}
if (y + diameter/2 > height) {
y = height - diameter/2;
vy *= friction;
}
else if (y - diameter/2 < 0) {
y = diameter/2;
vy *= friction;
}
}
void display() {
fill(200,24,40,100);
rect(x, y, diameter, diameter);
}
}
Ejercicio 2
float bricksPerLayer = 26.0;
float brickLayers = 30.0;
Cube brick;
float brickWidth = 80, brickHeight = 45, brickDepth = 35;
float radius = 145.0;
float angle = 0;
void setup(){
size(640, 360, P3D);
brick = new Cube(brickWidth, brickHeight, brickDepth);
}
void draw(){
background(255);
float tempX = 0, tempY = 0, tempZ = 0;
fill(0, 40, 29, 40);
noStroke();
// Add basic light setup
lights();
translate(width/2, height*1.2, -380);
// Tip tower to see inside
rotateX(radians(-45));
// Slowly rotate tower
rotateY(frameCount * PI/600);
for (int i = 0; i < brickLayers; i++){
// Increment rows
tempY-=brickHeight;
// Alternate brick seams
angle = 360.0 / bricksPerLayer * i/2;
for (int j = 0; j < bricksPerLayer; j++){
tempZ = cos(radians(angle))*radius;
tempX = sin(radians(angle))*radius;
pushMatrix();
translate(tempX, tempY, tempZ);
rotateY(radians(angle));
// Add crenelation
if (i==brickLayers-1){
if (j%2 == 0){
brick.create();
}
}
// Create main tower
else {
brick.create();
}
popMatrix();
angle += 360.0/bricksPerLayer;
}
}
}
Víktor Koen

Viktor Koen es un artista de origen griego nacido en el año de 1967, quien tras comenzar su carrera abordando la pintura en un sentido tradicional, incursionó progresivamente en nuevos medios tales como los collages digitales y el fotomontaje; aunque la mayor parte de su obra ha sido considerada como perteneciente al género de la ilustración, resulta notable su capacidad de conciliar los clásicos aspectos formales, compositivos y pictóricos con el arte digital y las tecnologías que este implica. Su temática se centra principalmente en la fusión de elementos mitológicos con elementos de carácter abstracto y gestual, entre tradición y contemporaneidad, pero resultando de un corte mayoritariamente figurativo y narrativo, donde la representación y el aspecto visual juegan un papel fundamental. Viktor Koen ha realizado también ilustraciones para libros, revistas, diversas publicaciones e inclusive para instalaciones de otros artistas.
Suscribirse a:
Entradas (Atom)