Exposition de Pauline Jupin (texte & conception), Aneymone Wilhelm (construction & conception), Simon Cacheux (création sonore) & Milena Milanova (voix & performance). J’ai participé à la conception & réalisation complète d’une de ces machines.
Merci à Aneymone pour son invitation. Merci à Matthias Wandel pour son très utile Gear Generator. Merci à tous les spectateurs qui n’auront pas peur de toucher une oeuvre d’art!
Une nouvelle version de Hide [Gaïa] est actuellement présenté à la MJC Jean Roger Caussimon, à Tremblay en france. C’est accompagné d’un dossier pédagogique très intéressant sur l’erreur dans l’histoire de l’Art qui introduit au projet [Méta] morphoses, un atelier avec une classe de 4e au collège René Descartes, pour mettre les mains dans la cambouis numérique.
Le dossier en parle bien mieux que moi :
« [Méta]morphoses est une aventure dans les correspondances entre image et langage. Une quête littéraire et picturale, qui vient connecter arts et sciences de la Renaissance aux pratiques numériques contemporaines. Après avoir découvert différents niveaux d’interprétation des tableaux, les élèves vont y mêler leur univers numérique. De l’abstraction du pixel aux arcanes du code informatique, les élèves vont être amenés à intervenir sur les différents modes de représentation d’une image numérique. Les réalisations des élèves seront imprimées et encadrées en « style renaissance » afin de faire l’objet d’une exposition et les images des différentes étapes seront animées afin de devenir un petit film d’animation présentant le projet »
Notre première rencontre a eu lieu avant-hier et il me semble qu’on est bien partis pour faire germer de belles choses.
Cette installation vidéo a poussé dans les écrans d’une colocation fertile à Gambetta, c’est une respiration infinie dans un espace commun, un flux flou en constante déformation, à la recherche d’une beauté neutre et universelle en mouvement.
Hide est un processus de malcompression picturale, à l’opposé de la compression seul les parties fertiles de l’image y sont généralisées et cachés, ne laissant transparaître plus que les détails fin et réguliers de l’image.
Pour faire une impressions ou planter une vidéo dans vos écrans salon, n’hésitez pas à me contacter.
Ci-dessous le code source Processing donnant naissance à ces images. Attention ce code permet de traiter plusieurs fichiers d’affilés, de type Nomdufichier00X.jpg, qu’il faut ensuite monter ensemble pour donner une vidéo.
/**
* Title : Hide vidéo v2
* Author : Frédéric Pavageau
* Website : www.fredericpavageau.net
* Contact : fredericpavageau@gmail.com
* Date : 11/12/2014
*/
// Sequence d'images
int Seqmin=1; // Première image
int Seqmax=1; // Dernière image
// Paramètres de compression
int umin = 4; // Dimension minimum des carrés de compression
int umax = 256; // Dimension maximum des carrés de compression
float t = 1.25; // Taux de compression, minimum de différence par pixel pour généraliser, Plus la valeur est basse et plus l'image sera compressé
float c = 0.435; // multiplicateur de t, plus il est grand au dessus de 1 moins les grand carré seront fort, entre 0 et 1 plus il est faible plus les grand carré serons importants
float tfirst = t;
// Image
String im;
String filename = "Nomdufichier";
String extension = ".jpg";
int nb0 = 3; // nombre de chiffres au total dans le nom du fichier (zéro compris)
// Variables de calcule
int i = 0; // Incrément
float T; // Variable différence Total Max-Min couleurs par carré
float tparticulier; // t adapté proportionnellement aux zones particulières/tronqués
// Coordonnées
int x = 0;
int y = 0;
int x0 = 0;
int y0 = 0;
// Variables
float Rmax = 0;
float Vmax = 0;
float Bmax = 0;
float Rmin = 0;
float Vmin = 0;
float Bmin = 0;
// Pixel total
int pt = 0;
// Couleurs
float R = 0;
float V = 0;
float B = 0;
// Couleurs Total
float Rt = 0;
float Vt = 0;
float Bt = 0;
// Couleurs de la cellule
int Rmoy = 0;
int Vmoy = 0;
int Bmoy = 0;
float CC;
PImage[] img = new PImage[Seqmax-Seqmin+1];
void setup() {
for (int Seq = Seqmin; Seq <= Seqmax; Seq++) { // Loop de fichier
String StringSeq = ""+Seq; // Calcule du nombre de zero necessaire dans le numero du fichier
int nbchiffre = StringSeq.length();
int nbdezero = nb0 - nbchiffre;
String Seqfile = ""+Seq;
for (int zero=0; zero<nbdezero; zero++) { // Ecriture du nb de zero a completer dans la variable Seqfile
Seqfile = "0"+Seqfile;
}
String im = filename+Seqfile+extension;
img[i] = loadImage(im);
i++;
}
size(img[0].width,img[0].height);
i=0;
}
void draw() {
noLoop();
for (int Seq = Seqmin; Seq <= Seqmax; Seq++) { // Loop de fichier
String StringSeq = ""+Seq; // Calcule du nombre de zero necessaire dans le numero du fichier
int nbchiffre = StringSeq.length();
int nbdezero = nb0 - nbchiffre;
String Seqfile = ""+Seq;
for (int zero=0; zero<nbdezero; zero++) { // Ecriture du nb de zero a completer dans la variable Seqfile
Seqfile = "0"+Seqfile;
}
String im = filename+Seqfile;
image(img[i], 0, 0);
t = tfirst;
for (int u = umin; u <= umax; u = u*2) {
for (int x = 0; x < img[i].width; x = x+u) {
for (int y = 0; y < img[i].height; y = y+u) {
float Rt = 0;
float Vt = 0;
float Bt = 0;
Rmax = Rmin = red(get(x,y));
Vmax = Vmin = green(get(x,y));
Bmax = Bmin = blue(get(x,y));
pt = 0;
for (int x0 = x; (x0 < x+u) && (x0 < img[i].width); x0++) {
for (int y0 = y; (y0 < y+u) && (y0 < img[i].height); y0++) {
R = red(get(x0,y0));
V = green(get(x0,y0));
B = blue(get(x0,y0));
Rt = Rt+R;
Vt = Vt+V;
Bt = Bt+B;
Rmax = max(R,Rmax);
Vmax = max(V,Vmax);
Bmax = max(B,Bmax);
Rmin = min(R,Rmin);
Vmin = min(V,Vmin);
Bmin = min(B,Bmin);
pt = pt+1;
}
}
T = ((Rmax-Rmin)+(Vmax-Vmin)+(Bmax-Bmin))/pt; // Calcule de l'Amplitude de différence par pixels
println(T);
if(pt < (u*u)) {
println(u*u+"="+pt+" "+T);
tparticulier = t*((u*u)/(pt));
if(T > tparticulier) {
int Rmoy = round(Rt/pt);
int Vmoy = round(Vt/pt);
int Bmoy = round(Bt/pt);
color CC = color(Rmoy,Vmoy,Bmoy);
fill(CC);
noStroke();
rect(x,y,u,u);
}
}
else {
if(T > t) {
int Rmoy = round(Rt/pt);
int Vmoy = round(Vt/pt);
int Bmoy = round(Bt/pt);
color CC = color(Rmoy,Vmoy,Bmoy);
fill(CC);
noStroke();
rect(x,y,u,u);
}
}
}
}
t = t*c;
}
save("Out/"+filename+"_t="+tfirst+"_c="+c+"_umin="+umin+"_umax="+umax+"/"+im+"_t="+tfirst+"_c="+c+"_umin="+umin+"_umax="+umax+".jpg");
println("Saved in : Out/"+filename+"_t="+tfirst+"_c="+c+"_umin="+umin+"_umax="+umax+"/"+im+"_t="+tfirst+"_c="+c+"_umin="+umin+"_umax="+umax+".jpg");
i++;
}
i=0;
}
L’expo faite maison c’est neufs artistes qui interviennent dans ta colloc sympas. C’est à partir de jeudi 11 Décembre à 18h, C’est avec Safouane BEN SLAMA, Benoit BLANCHARD, Wiliam BONNET, Guylain CANET, Célia COETTE, Florent FRIZET, Marlène JANIN, Marine PROVOST & moi qui présente l’installation Hide [Gaia] dans une version plus ample qui sera plus complète, sporadique, vivante et jubilatoire. C’est à l’initiative et organisé par Sarah Mercadante & Pauline Guyau. C’est jusqu’au dimanche 14 et c’est au 3 avenue du père Lachaise, 75020, Paris, métro Gambetta.
L’event Facebook est la. Pour passer dans le week end, il va falloir prévenir de votre présence auprès des médiateurs, pour qu’on puisse vous ouvrir la porte, contactez par mail sarah ou moi si vous êtes timide.
Spring (∞) | Paillettes, Dimensions variables, 2014.
Carte de la Nuit Noire 2014.
Pendant que le site de Pole Emploi ne fonctionne pas et en effaçant ma manucure pailleté du week end, j’écris ces quelques lignes sur l’expo que vous avez bêtement raté en allant vous perdre sur le parcours de la nuit blanche sous la pluie.
Sache que les endroits sombres sont gorgés de lumières. Dans les sous sols de Paris, en direction des miroirs, le long d’une voie lactée s’écoule une source infinie de brèches effondrés.
la Nuit Noire c’était harassant, scintillant, profond, in situ et pérenne. Merci à Sylvain Hardy d’avoir sacrifié son dos à m’assister et à Edouard Sufrin pour l’invitation et tout le travail.
Spring (∞) | Paillettes, Dimensions variables, 2014.
Si vous avez vu, entendu, rêvé, pris des photos à cet endroit, ces données m’intéressent, partagez les moi.