====== Tisser du code ====== * Porteur du projet: Lucile Dubrana * Date: Mai 2019 * Contexte: exposition Musée Borély * Intitulé du projet: //"Motif du vivant"// ====== Intention====== //
Le musée Borély, riche en décors, témoigne d'une évolution des goûts à travers les siècles. En attestent les magnifiques tentures de cuirs dorés polychromes, le décor d'Indiennes, le papier peint panoramique de La Grande Helvétie, le décor de gypseries à thème ou les tapisseries. Les faïences et porcelaines s'invitent également dans les grandes demeures de la noblesse et de la haute bourgeoisie. Chaque objet est décoré de la plus belle des manières et est orné d’une multitude de motifs. Pour créer ces motifs, les maîtres peintres décorateurs sur céramique, puisent leur inspiration à travers des scènes orientales, exotiques, dans la nature, la mythologie.// Au sein de ce Lieu, j’ai interprété ces motifs comme des **«Motif du vivant »** car ce sont des motifs crées **par l’Homme et son Histoire.** En effet, ces motifs naissent par des savoirs de l’Homme. Ils existent grâce à des techniques , à des manipulations de matières et l’ implication physique et morale de l’Homme. À mon sens, Ils prennent des allures précises et spécifiques car ils résultent de l’Homme et donc de son vécu. **Le motif est donc connoté**. Le choix du visuel pour construire celui-ci n’est donc pas anodin et n’est pas simplement esthétique. Il est également porteur d’une histoire, d’un contexte et d’une culture. Il en est de même pour** la technique adoptée pour sa création**: Elle est choisit selon un contexte historique. **Afin de cantonner mon champs de recherche je me suis intéressées aux techniques des motifs de la chambre d’apparat.** {{ :wiki:projets:tisser-du-code:capture_d_e_cran_2019-06-05_a_19.18.55.png?600 |}} {{ :wiki:projets:tisser-du-code:capture_d_e_cran_2019-06-05_a_19.19.16.png?600 |}} Située sur la façade nord, **cette chambre offre des motifs floraux** et notamment celui de l’arbre de vie: un arbre avec des branches tordues et fleuries émergeant d'un petit monticule et encadré de deux bordures, une grande et une petite, également fleuries. Cette chambre rassemble le mobilier le plus précieux du château et possède **de nombreux textiles pour décliner ce motifs.** Le motif va ainsi apparaître autant sur les murs de cet appartement que sur les rideaux, les sièges, les canapés ,fauteuils et coussins de celui-ci. Ainsi, pour permettre cette déclinaison, une grande richesse et diversité techniques a été mise en oeuvre: la broderie, le tissage et l’indienne, c’est à dire du tissus peint . Et c’est en effectuant mes recherches sur ces motifs et notamment sur les techniques de création de ces motifs que je me suis rendue compte que l’ensemble du travail des textiles de cette pièce n’était pas d’origine. En effet, de 2009 à 2013, **le Château Borély a subit des travaux de rénovation**. Dans ce cadre, la chambre d’apparat a été totalement **rénové par l’entreprise « Pierre Frey » .** Pierre Frey est une entreprise créée par le fondateur éponyme Pierre Frey qui édite et fabrique des tissus d’ammeublement de luxe mais également des moquettes, papiers peints, mobilier et accessoires. Basé sur des archives du château, l’enseigne a pu construire l’ensemble des tissus de la chambre . Ainsi, l’esthétisme du motif reste inchangé mais les techniques employés à leur conception furent différentes. Si certains détails étaient effectués à la main, **la majorité des pièces a été fabriqué grâce à des machines numériques.** Le motif est donc connoté à un contexte historique moderne : celui de l’ère numérique. {{ :wiki:projets:tisser-du-code:capture_d_e_cran_2019-05-23_a_02.43.21.png?400 |}} {{ :wiki:projets:tisser-du-code:capture_d_e_cran_2019-05-23_a_02.42.52.png?400 |}} =====Dans la mesure où ces motifs sont construits par des appareils numériques, peut-on encore parler de « motif du vivant »?===== Mon travail s’est construit autour de ce questionnement. Il était alors **une réflexion quant à l’implication de l’Homme dans la création de ces motifs** d’origine numérique mais également **une expérimentation autour de la conception via ces nouveaux outils.** Ce projet s’est construit en 3 parties: * Montrer que L’emploi des outils numériques n’est pas si différent des outils traditionnels mais que **l’implication de l’Homme dans la manipulation change**:À travers une édition, je vais établir une **analogie entre le traditionnel et le numérique** employés pour la construction de ces motifs afin de montrer que l’implication de l’Homme existe toujours.Ainsi on constatera qu’elle est toujours actuelle dans l’ère numérique mais différente. Au cours de cette édition , je vais également montrer que ces **nouvelles techniques laissent place à une nouvelle matière: une matière numérique.** * À travers 2 expériences fondée sur la manipulation de capteurs/ du tactile et des valeurs numériques du programme, je vais permettre à la personne de **manipuler la matière numérique**. Cette manipulation influencera le motif et sera preuve de l’existence d’une matière numérique manipulable par l’Homme. * Enfin au travers d’une vidéo, je monterais que le numérique a permit une nouvelle forme de vie.Durant sa fabrication par des outils numériques, **le motif peut être influencé** par des bugs numériques. **Le motif créé par ces nouvelles techniques est alors « un motif du vivant »** car il existe par l’Homme et son Histoire implicant désormais des machines numériques mais également car il possédera sa propre nature capable d’évoluer. =====Références===== {{:wiki:projets:tisser-du-code:capture_d_e_cran_2019-06-05_a_19.41.40.png?300 |}}**Faig Ahmed**, designer azerbaïdjanais, se consacre à l’exploration des techniques artisanales et plus particulièrement celui de la **tapisserie traditionnelle.** Il y mêle** art ancestral et altérations contemporaines.** C’est un curieux **mélange entre réel et bugs numériques** ou graphiques — les fameux glitch. ( un petit problème survenant dans le circuit électronique d'un ordinateur, des serveurs, d'une surchauffe provoquant sa défaillance.) Dans **sa série Carpets** il reprend des tapis traditionnels qu’il détourne avec des techniques et ces références modernes pour leur donner un tout nouvel aspect. Toutes ses créations sont crées à la main après avoir établit son motif et l'avoir retranscrit informatiquement sur une armure ( plan qui permet de créer un plan de l'enchevêtrement des fils pour ainsi contruire le motif) , le résultat produit est entre tradition et contemporanéité. ** Son objectif : renouveler ces savoir-faire ancestraux et se questionner sur les techniques employées dans nos productions actuelles qui sont fondées sur l'emploi des machines.** // //// librairies import processing.serial.*; Serial myPort; // appel à la class processing.serial int mode = 0; // variables globales // nom et type image String imgFileName = "test"; String fileType = "png"; int loops = 1; // variable Le mode 0 travail sur les noirs, le mode 1 sur les lumières intermédiaires et le mode 2 sur le blanc. int blackValue = -16000000; int brightnessValue = 60; int whiteValue = -13000000; // pour déterminer des coordonnées int row = 0; int column = 0; boolean saved = false; // communication série Serial myPort; // Create object from Serial class float val; // Data received from the serial port void setup() { //chargement image img = loadImage(imgFileName+"."+fileType); size(1, 1); // redimensionnement accordé ( true) et mettre à jour la surface aux dimensions de l'image surface.setResizable(true); surface.setSize(img.width, img.height); // load image onto surface - scale to the available width,height for display image(img, 0, 0, width, height); // initialisation du port série printArray(Serial.list());// liste de tous les ports séries disponibles String portName = Serial.list()[0];// sortie 0 myPort = new Serial(this, portName, 9600);// unité de fréquence / rapidité généralement à 9600 (en baud) } void draw() { // faire une boucle dans les colonnes while (column < img.width-1) { println("Sorting Column " + column); img.loadPixels(); sortColumn(); column++; img.updatePixels(); } // faire une boucle dans les rangés while (row < img.height-1) { println("Sorting Row " + column); img.loadPixels(); sortRow(); row++; img.updatePixels(); } // ajustement à la largeur et à la hauteur de l'écran image(img, 0, 0, width, height); if (!saved && frameCount >= loops) { // sauvegarde img.save(imgFileName+"_"+mode+".png"); saved = true; println("Saved "+frameCount+" Frame(s)"); // exiting here can interrupt file save, wait for user to trigger exit println("Click or press any key to exit..."); } } void sortColumn() { // current column int x = column; // emplacement du début du sorting int y = 0; // emplacement de fin du sorting int yend = 0; while (yend < img.height-1) { switch(mode) { case 0:// case correspond aux modes et définit des coordonnées // les modes sont assimilés à Y qui varient selon if y = getFirstNotBlackY(x, y); yend = getNextBlackY(x, y); break; case 1: y = getFirstBrightY(x, y); yend = getNextDarkY(x, y); break; case 2: y = getFirstNotWhiteY(x, y); yend = getNextWhiteY(x, y); break; default: break; } if (y < 0) break; int sortLength = yend-y; color[] unsorted = new color[sortLength]; color[] sorted = new color[sortLength]; for (int i=0; i= img.width) return -1; /// affichage des images if (val>0 && val<255) { // valeur avec potentiomètre image( getFirstNotBlackX,0,0); //afficher image taille et position } return x; } int getNextBlackX(int x, int y) { x++; while (img.pixels[x + y * img.width] > blackValue) { x++; if (x >= img.width) return img.width-1; } return x-1; } // brightness x white x mode 0 int getFirstBrightX(int x, int y) { while (brightness(img.pixels[x + y * img.width]) < brightnessValue) { x++; if (x >= img.width) return -1; /// affichage des images if (val>0 && val<255) { // valeur avec potentiomètre image( getFirstBrightX,0,0); //afficher image taille et position } return x; } int getNextDarkX(int _x, int _y) { int x = _x+1; int y = _y; while (brightness(img.pixels[x + y * img.width]) > brightnessValue) { x++; if (x >= img.width) return img.width-1; } return x-1; } // white x mode 1 int getFirstNotWhiteX(int x, int y) { while (img.pixels[x + y * img.width] > whiteValue) { x++; if (x >= img.width) return -1; } return x; } int getNextWhiteX(int x, int y) { x++; while (img.pixels[x + y * img.width] < whiteValue) { x++; if (x >= img.width) return img.width-1; } return x-1; } // black y int getFirstNotBlackY(int x, int y) { if (y < img.height) { while (img.pixels[x + y * img.width] < blackValue) { y++; if (y >= img.height) return -1; } } return y; } int getNextBlackY(int x, int y) { y++; if (y < img.height) { while (img.pixels[x + y * img.width] > blackValue) { y++; if (y >= img.height) return img.height-1; } } return y-1; } // brightness y int getFirstBrightY(int x, int y) { if (y < img.height) { while (brightness(img.pixels[x + y * img.width]) < brightnessValue) { y++; if (y >= img.height) return -1; } } return y; } int getNextDarkY(int x, int y) { y++; if (y < img.height) { while (brightness(img.pixels[x + y * img.width]) > brightnessValue) { y++; if (y >= img.height) return img.height-1; } } return y-1; } // white y int getFirstNotWhiteY(int x, int y) { if (y < img.height) { while (img.pixels[x + y * img.width] > whiteValue) { y++; if (y >= img.height) return -1; /// affichage des images if (val>0 && val<255) { // valeur avec potentiomètre image( getFirstBrightX,0,0); //afficher image taille et position } } return y; } int getNextWhiteY(int x, int y) { y++; if (y < img.height) { while (img.pixels[x + y * img.width] < whiteValue) { y++; if (y >= img.height) return img.height-1; } } return y-1; } ===Arduino=== #define POTENTIOMETRE A0// la sortie int sensorValue = 0; // variable to store the value coming from the sensor void setup() { //init du port serie Serial.begin(9600); } void loop() { // lire une valeur relative au potentiomtre4 sensorValue = analogRead(POTENTIOMETRE); // valeurv entre 0 et 1023 // écriture de la valeur sur le port série Serial.println(sensorValue); // valeur entière donnée par floor() entre 0 et 255 } ====Aperçu des différents modes=== {{ :wiki:projets:tisser-du-code:capture_d_e_cran_2019-06-05_a_21.28.51.png?600 |}} {{ :wiki:projets:tisser-du-code:capture_d_e_cran_2019-06-05_a_21.29.03.png?600 |}} =====Expérience 2: Le geste===== L'expérience numéro 2 repose sur cette même idée de **manipuler la matière mais d'appuyer le geste**. Ainsi,elle se développe en** tactile**: lorsque la personne glisse son doigt dur l'écran et crée du mouvement, **l'image va ainsi réagir**. Le choix de manipuler les valeurs numériques est très significatif car c'est un geste de notre quotidien avec nos tablettes et nos smartphones. Cette expérience appuie un motif connoté à notre ère du numérique où tout est simple et que **nous manipulons les données numériques du bout de notre mains par le pont que constitue nos écrans. ** ====Aperçu de variation de l'image==== {{ :wiki:projets:tisser-du-code:test1.jpg?300 |}} {{ :wiki:projets:tisser-du-code:test2.jpg?300 |}} {{ :wiki:projets:tisser-du-code:test3.jpg?300 |}} {{ :wiki:projets:tisser-du-code:test4.jpg?300 |}} =====Vidéo===== La vidéo constitue la 3ème étape de la réponse à ce questionnement. Elle constitue une sorte d'ouverture et de réflexion quant aux conséquences du numérique: En effet, //le numérique// a permit **une nouvelle forme de vie.**Durant sa fabrication par des outils numériques, **le motif peut être influencé par des bugs numériques.** Le motif créé par ces nouvelles techniques est alors « un motif du vivant » car il existe par l’Homme et son Histoire implicant désormais des machines numériques mais également car il possédera sa propre nature capable d’évoluer. **La vidéo est donc une simulation de ce vivant.** //Lien de la vidéo://[[https://www.youtube.com/watch?v=WdCsn5XG6Fs]] =====Simulation de l'installation===== Pour des raisons techniques notamment d'éclairage, le projet n'a pas été projeté au sein du Musée Borély. Pour donner une idée du projet au sein de cet espace en voici les simulations. {{ :wiki:projets:tisser-du-code:simulation2.jpg?300 |}} {{ :wiki:projets:tisser-du-code:simulation.jpg?300 |}} {{ :wiki:projets:tisser-du-code:simulation3.jpg?300 |}}