Toolbox Interactiondesign


Portraits

Portrait – zurück in die analoge Welt

Arina Fix, Generative Gestaltung Goes Analog bei Prof. Dr. Christine Goutrié

Fotos sind dafür da um schöne Momente mit der Kamera festzuhalten. Das digitale Zeitalter hat die Bedeutung der Fotografie auch verändert. Es können Fotos im Überfluss geschossen, mit anderen geteilt und im Nachhinein wieder gelöscht werden wenn sie nicht gefallen. Im Gegensatz zur digitalen Fotografie entsteht das analoge Bild anders, es wird geschossen und es ist da und bleibt. Die Aufgabe des Portraitsfräsen geht „zurück“ und transformiert die digitale Fotografie wieder ins Analoge. Sie geht sogar einen schritt weiter und zwar von zweidimensionalen Bild ins dreidimensionale, indem Farbunterschiede durch Höhenunterschiedene dargestellt werden.
Wir brauchen die digitale Bilddatei sogar um die Pixelwerte auslesen zu können, um diese wiederum über die CNC-Fräse ins Analoge zu übertragen.

Material

Da das Portraitfräsen der erste Zugang und eine Art erste Übung mit der Fräse für uns war, entschieden sich die meisten zunächst für Pappe. Auch ich nahm zunächst dieses Material und fing an verschiedene Änderungen am Code vorzunehmen und direkt an der Fräse auszuprobieren. Jedoch stieß das Material schnell an seine Grenzen. Aufgrund der geringen Dichte konnten keine feinen Ergebnisse erzielt werden, das Material wurde durch das Fräsen zerstört, das dadurch allerdings seine besondere Ästhetik bekam.

Bei den Bildabfolgen erkennt man sehr gut, dass in der Ersten ein relativ grobes Raster verwendet wurde, bei der Zweiten ein Feineres. Farbkontraste, Größe des Fräskopfs als auch das Endmaterial sind wichtige Parameter, die die Wirkung und Erkennbarkeit des Bildes stark beeinflussen. Nach einigen Experimenten mit Code, Fräsköpfen und Pappe wagte ich mich an Materialen wie PVC-Hartschaum (Forex-rechts oben), Sperrholz (recht unten), transluzentes Polyproylen und fluoriszierendes Acrylglas.

Arbeitsschritte

Das Ausgangsmaterial muss zunächst etwas aufbereitet werden. Größe, Farbe und Kontrast sind hierbei wichtige Parameter. Um ein gutes Ergebnis zu erzielen sollte der Hintergrund relativ ruhig gehalten werden. Das Portrait sollte am besten grob aus dem Hintergrund geschnitten werden, damit die Konturen des Gesichts am Ende nicht mit dem Hintergrund zerfließen. Ist das Bild nicht sehr kontrastreich macht es Sinn hier noch etwas an den Reglern zu drehen. Das Bild sollte vorher in schwarz-weiß konvertiert werden, da das Programm die Helligkeitsunterschiede der einzelnen Pixel ausliest. Anschließend wird das aufbereitete Bild vom Programm ausgelesen und ein CNC-Code für die Fräse geschrieben.

Programmcode

Bei Rastern und Mustern macht es Sinn sich den Funktionen pushMatrix() und popMatrix() sowie translate() zu bedienen. PushMatrix() speichert die akuelle Position des Koordinatensystems bzw. des Ursprungs,  die Funktion translate() erlaubt das Verschieben eines vorher gezeichneten Objekts bzw. Ursprungs, die Funktion popMatrix() führt es wieder in die ursprüngliche Position, die zuvor über pushMatrix() abgespeichert wurde, zurück.

/*
 code:christine goutrie
 modified by arina fix
*/
 
import java.util.Calendar;

PrintWriter output; 
PImage myImg;

int imageSize=99;

void setup() { 
  background(255);  
  size(imagesize, imagesize);  
  noStroke();
  output = createWriter(timestamp()+"_"+".ngc"); 
  output.println("%");
  output.println("G 54");
  myImg=loadImage("foto.jpg");
  loadPixels();
}

void draw() {
  // rasterRapp = Abstand zwischen den zwischen den Bohrungen
  // bzw der Mittepunkte der Ellipsen
  int rasterRapp =3;
  for (int i=1; i<=imageSize; i+=rasterRapp) {
    for (int j=1; j<=imageSize; j+=rasterRapp) {
      // Helligkeitswert jedes einzelnen Pixels wird über brightness ausgelesen
      float currBrightness=(brightness(myImg.pixels[i+imageSize*j]));
      fill(currBrightness);
      ellipse(i, j, rasterRapp,rasterRapp);
      output.println("G0 X"+j+" Y"+i);
      // Vorschubbewegung G1 ins Material hinein je nach Brightness
      // map Funktion transformiert die Helligekeits von 0 bis 255 auf die Frästiefe von 0 bis -3
      output.println("G1 Z "+(map(currBrightness, 255, 0, 0, -3))+" F300");  
      output.println("G0 Z3");
    }
  }
  noLoop();
}

void mousePressed() {
  saveFrame(timestamp()+"_"+".png");
  output.println("M 02");
  output.println("%");
  output.flush(); 
  output.close(); 
  exit();
}

String timestamp() {
  return String.format("%1$ty%1$tm%1$td_%1$tH%1$tM%1$tS", Calendar.getInstance());
}

Die imageSize sollte ein Vielfaches des rasterRapp sein damit bei den for-Schleifen kein Fehler auftreten kann.

 

FAZIT

// Je höher die Dichte,  desto besser das Ergebnis und desto präzisere und feinere Ergebnisse können entstehen.
// Für jedes Material muss die Geschwindigkeit des Fräsers angepasst werden
(viele Kunststoffe haben eine niedrige Schmelztemperatur, Holz ist schnell entflammbar)
// PVC-Hartschaum ist ein sehr gut zu fräsendes Material
// Je höher die Kontraste im digitalen Bildmaterial als auch zwischen Bohrung und Oberfläche desto besser ist das Bild zu erkennen
// Je feiner der Bohrer/Fräser, desto besser ist das Bildmaterial zu erkennen
// Bohrer sind hier besser geeignet, das sie durch sie durch ihre kegelförmige Spitze verschiedene Größen an Durchmessern der Bohrungen erlauben und die Hellgkeitsunterschiede dadurch besser zum Vorschein kommen

02.01.2014 | Arina Fix |