OBJECTIVE //  Very loosely inspired by Mr. Roy Lichtenstein but more so generally by various pointillism techniques, I finally got around to trying out a laser cutting dot pattern technique that I have been wanted to experiment with for awhile. I wrote a very short snippet of code that took an image (in the case, of famous rock climber Alex Honnold) and translated the image into a series of circles based on the brightness of the pixel at their center point. The dot pattern was then sliced into panels and each panel was saved as a PDF. Unfortunately, because the driver software for our laser cutter is less than supreme, trying to cut all the dots in one go likely would make it crash, but I was pretty happy with the look of the panels (laser cutting guides on the backing board made the spray mounting process pretty painless and pretty clean looking). Each panel took 2-3 mintues to cut so it was a bit tedious with 54 total, but fortunately the contrast turned out well enough to hopefully recognize the face.

img_6336.jpg

INGREDIENTS//

……………(1) LASERS!!

……………(2) Foam core (sans chlorine…)

……………(3) Black matte board

……………(4) Spray Mount

 

THE CODE //

import processing.pdf.*;

PImage img; // Initial image
boolean recordPDF;

void setup(){
size(600, 900, P2D);

background(255);
img = loadImage(“Honnold.png”); // Load the image

// Set up the window
//image(img, 0, 0, 600, 900); // Display the image
recordPDF = true;

int spacing = 40;
for(int row = 1; row <= img.height/500; row++){
for(int col = 1; col <= img.width/500; col++){
clear();
if (recordPDF) {
String fileName = “output – Row ” + Integer.toString(row) + ” – Col ” + Integer.toString(col) + “.pdf”;
beginRecord(PDF, fileName);
}
strokeWeight(0.01);
stroke(255, 0 , 0);
noFill();
rect((col-1)*100, (row-1)*100, 100+spacing/10, 100+spacing/10);

stroke(0); // Set the stroke to black
strokeWeight(0.01);

for(int x = 500*(col-1); x < 500*col; x+= spacing){
for(int y = 500*(row-1); y < 500*row; y+= spacing){

float diameter = map(brightness(img.get(x,y)), 255, 0, 0, spacing/5-2);
ellipse((x + spacing/2)/5, (y+ spacing/2)/5, diameter, diameter);

}
}

if (recordPDF) {
endRecord();
//recordPDF = false;
}
}
}

}