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!
Un dimanche 10 mai teinté de répression, j’ai présenté le tryptique Perversion (L’Origine du monde) #001, composé de Perversion (-128,-158,L’Origine du monde), Perversion (-23,-77,L’Origine du monde) & Perversion (6,125,L’Origine du monde). Trois tableaux de glitch de l’Origine du monde de Gustave Courbet, en triptyque devant une toile du graffeur Bebar, pour l’exposition Culture de Paix à Vitry-sur-seine.
La liberté d’expression n’est elle pas la liberté d’utiliser et de modifier nos chefs d’œuvres à notre guise? Le droit d’auteur ne serait il pas une barrière à la liberté d’expression, sachant que toutes œuvre est issue, inspiré ou au moins influencé par l’histoire de l’Art? La véritable paix ne serait elle pas de laisser vivre toutes formes d’Art, de folie, de jugement et d’opinion? Au lieu d’être un moment d’inactivité sans danger, ne serait elle pas plutôt ce moment d’émulsion, voir même de conflits, mais d’échange, où toutes les formes d’expressions ou de réappropriation sont autorisées dans un monde qui l’entend, le voit, l’écoute et le regarde?
L’idée étant de remettre au goût du jour une peinture de Gustave Courbet au travers d’un traitement numérique, soit la série perversion, un programme qui génère des erreurs dans des images, tel le plus simple des chiffrement en intervertissant deux données (bytes) tout le long d’un fichier d’image Jpeg. Comme pour réactualiser des questionnement toujours contemporain d’un pilier de l’histoire de l’Art dans notre sphère numérique.
S’en dégage une esthétique onirique mystérieuse, mi chaotique, mi épurée, dans laquelle on peut farfouiller, explorer, rechercher ou simplement admirer son abstraction.
La force de cette nouvelle représentation étant la manière de modifier et cacher l’image réaliste et figurative de son modèle original, comme un contre pied de cette importance de l’image et de son discours évident, comme une manière de pousser le spectateur à aller chercher son intérêt propre, son imagerie propre, et laisser divaguer son imagination dans cette nouvelle représentation devenue semi-abstraite, ouvrant la porte à des interprétations inattendues.
A l’heure où nos données personnelles sur le réseau sont mises à mal jusque dans notre intimité, autorisons nous à torturer librement du bytes en pagaille à grands coups de randomisation dans du Chef-d’œuvre de poids, afin d’illustrer librement le bordel du flux sensible qui nous entoure dans toute sa complexité à l’époque du partage universelle et de la réappropriation généralisée.
Cette démarche de destruction aléatoire, non maitrisée, est une métaphore de la perte, de la réutilisation et de l’évolution de nos données personnelles et parfois intime dans le monde numérique contemporain qui nous échappe. Le monde numérique n’a pas de propriétaire.
PS : Désolé pour la qualité des photos et mon reflet dedans, j’ai pas réussis à faire mieux. Sinon ils existent toujours en vrai chez moi.
Perversion (6,125,L’Origine du monde)Perversion (-23,-77,L’Origine du monde)Perversion (-128,-158,L’Origine du monde)Tryptique Perversion (L’Origine du monde)
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;
}