Outils pour utilisateurs

Outils du site


wiki:projets:tisser-du-code:accueil

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.

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.

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

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.

<Tapis de la série Carpets, exposition à Shangri La Museum of Islamic Art, Culture & Design Janvier 2019

Ryoji Ikeda Artiste créant du glitch. Pour cela il créé des programmes capables de convertir n’importe quelles informations en motif visuel et sonore. Utilise des coordonnées géographique et des erreurs de disques dures pour composer des images abstraites.À l'égal des réels bugs informatiques, il arrive à introduire la notion d'aléatoire proche de celle de l'imprévu au sein de ses algorihtmes.Il fond également son travail sur le glitch/ Le Glitch a été reconnu comme un art, alors que des artistes visuels comme Serge Uro (dès 2004 sur le site fo- tolog) ou Tony “Ant” Scott commencent à adopter le glitch comme une esthétique de l'ère numérique.Ikeda qui se dissocie dans son approche car il génère le bug de manière aléatoire comme le veut la nature propre du bug.

Édition

À travers une édition, on constate 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.

L'édition se construit en 3 parties:

  • L'armure et le pixel: (analogie entre écran et armure/ analogie entre le binaire informatique et le métier à tisser jacquard)
  • Tisser du Code: Réflexion quant à l'implication de l'Homme dans la création de ces motifs d'origine numérique.Introduction du phénomène de manipulation de code source qui crée le motif et donc de la modulation de la matière numérique.
  • Le code, une matière:Une nouvelle matière modulable par l'Homme

Extrait partie 1

L’armure est une séquence d’enchevêtrements des fils entre eux pour créer un motif technique ou décoratif. La représentation graphique d’une armure est réalisée à partir d’une mise en carte. La mise en carte est un papier quadrillé sur lequel chaque rangée de carreaux, dans le sens vertical, représente le cheminement d’un fil de chaîne. Chaque rangée de carreaux dans le sens horizontal représente le cheminement d’un fil de trame. Sur l’armure, les “pris” se matérialisent par des carrés pleins / carrés de couleur (le plus souvent noir). Les “laissés” sont toujours représentés par des carrés vides / carrés blancs. À l’égal d’un écran d’ordinateur, le motif est construit sur une grille que l’on peut assimiler au papier quadrillé de la carte et le motif est construit par des carreaux qui vont remplir la grille afin de rendre le motif visible. Ces carreaux peuvent être assimilées aux pixels de nos écrans.

Essais pour affirmer un parallèle entre les écrans constitués de pixels sur une grille et une toile à broder avec des points en croix. Armure ( carte d'enchevêtrement des fils)

Extrait partie 2

Le métier à tisser Jacquard ainsi que l’ordinateur se base sur une forme de langage: le langage binaire*. *Le binaire est le système de numération utilisant la base 2. On nomme couramment bit (de l’anglais binary digit, soit « chiffre binaire ») les chiffres de la numération binaire positionnelle. Un bit peut prendre deux valeurs, notées par convention 0 et 1. Le système binaire est utile pour représenter le fonctionnement de l’électronique numérique utilisée dans les ordinateurs. Il est donc utilisé par les langages de programmation. Le système binaire permet donc de construire un ordre et une quantité de données. Lorsque l’on utilise des logiciels afin de consevoir une image, ces données sont interprétées par ce logiciel. Autrement dit, la lecture de données brutes est réinterprétée par le langage informatique du logiciel du fichier qui lit le résultat. Le code source de l’image est constitué des données permettant la construction de l’image. Si celui-ci est modifié, l’image sera également modifié.

Extrait code source d'une image de motif

Extrait partie 3

Le code d’une image source constitue donc l’ensemble des informations qui va la constuire. Changer le code revient donc à changer la structure de l’image. Ainsi le code est une matière modulable par l’Homme. L’Homme possède donc une part importante dans le procéssus de création du motif car en travaillant l’image et en la modifiant, ils modifient la structure de l’image. Même si il utilise des appareils numériques, l’Homme manipule une nouvelle forme de matière. Le motif relève donc du vivant.

Exemple de manipulation du motif

Aperçu global de l'édition

Expérience 1: la manipulation de la matière

Ces expériences sont basées sur la manipulation de capteurs/ du tactile et des valeurs numériques de programmes pour 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.

Matériaux

Potentiomètre :http://wiki.seeedstudio.com /Grove-Slide_Poten- tiometer/ Un potentiomètre est un type de résistance variable à trois bornes, dont une est reliée à un curseur se déplaçant sur une piste résistante terminée par les deux autres bornes. Ce sys- tème permet de recueillir, entre la borne reliée au curseur et une des deux autres bornes, une tension qui dépend de la position du curseur et de la tension à laquelle est soumise la résistance.

  • Télécharger Script ASDFPixelSort

Montage

Le montage est très simple, il suffit de brancher à l’aide d’un port usb la carte seeeduino à ton ordinateur et de brancher sur une sortie analogique choisit et précisé sur Arduino le potentio- mètre 8-) Ici la sortie est la A0 Enjeux du projet Prouver cette nouvelle matière par le bug:Le Glitch Le Glitch est une corruption de code ou de données ou manipulations d’appareils électroniques. Il a pour effet de décaler les pixels constituant une image. La modulation des données prouvent qu’elles sont à l’origine de l’image: elles sont donc la matière qui constitue l’image. Pour construire ce projet, on va plus précisément générer du bug par du Pixel Sort Le Pixel Sort est un effet intéressant, se rapprochant du glitch, qui commande sélectivement les pixels dans les lignes / colonnes d’une image. Il a été popularisé par l’artiste Kim Asendorf. Ici, le programme de Pixel Sorting se présente sous la forme d’un programme Processing

Méthode

Décompresser le dossier ASDFPixelSort.zip Ouvrir le fichier ASDFPixelSort.pde Choisir l'image voulue, la glisser dans le dossier ASDFPixelSort( attention le programme est assez long pour des raisons pratiques je recommande de l'organiser) De retour dans ASDFPixelSort.pde, Pour indiquer au programme quelle image doit être utilisée, insérer le nom de l'image (ici test) entre les guillemets dans la ligne StringimgFileName = Indiquer l'extension (ici jpg) de l'image choisie entre les guillemets, dans la ligne suivante

Indiquer la taille de l'image a traiter plus bas, dans la ligne Size située un peu plus bas. Ici l'image choisie ou adapté l'image à l'écran. Liste numérotéeChoisir le mode de rendu de l'image.

  • Le mode 0 travail sur les noirs
  • Le mode 1 sur les lumières intermédiaires
  • Le mode 2 sur le blanc.

Pour lancer le programme, cliquer sur l'icône play

Code

Processing

//// 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<sortLength; i++) {
      unsorted[i] = img.pixels[x + (y+i) * img.width];
    }

    sorted = sort(unsorted);

    for (int i=0; i<sortLength; i++) {
      img.pixels[x + (y+i) * img.width] = sorted[i];
    }

    y = yend+1;
    

  }
}


// black x
int getFirstNotBlackX(int x, int y) {

  while (img.pixels[x + y * img.width] < blackValue) {
    x++;
    if (x >= 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

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

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/accueil.txt · Dernière modification: 2019/06/06 21:54 (modification externe)