Week 10: Computing Concrete Poetry

I love programming concrete poetry! My first week’s project was a tip-off, but it was reaffirmed when I saw the work of Alyson Provax and Anatol Knotek this week. My original idea for this week’s sketch was to layer lines of words to build up images of the human form as infinite meanings seem possible from the combination of the two. But making slight alterations to this small snippet of code below produced so many variations, that I quickly realized much more time was needed to build myself a reference library of “brush strokes.” 

let word = 'obsessed';

function setup() {
  noCanvas();
   for (let i = 0; i < 400; i += 20) {
    let startX = windowWidth * 0.3;
    let startY = windowHeight * 0.2;
    let div = createDiv(words);
    div.position(startX, startY + i);
    div.size(200, 200);
    div.style('font-family', 'monospace');
    div.style('font-size', '32px');
    div.style('letter-spacing', '0.1' + i/4 + 'em');
    div.style('transform', 'rotate(0' - i + 'deg)');
    div.style('color:black');
  }
}

Not a surprise then that I got lost in a rabbit hole of iterations. I know there are many more parameters to add to the above (color, font family, skewed transformations), but changes to any one of the current ones completely alters the output: number of letters, number of loop iterations, div size, div position, font size, letter spacing, the starting degree of rotation, and the transform origin. It’s super fun but also maddening at times to figure out how to work deliberately. So I played and created few iterations for this week’s prompt but look forward to revisiting this again. 

Homage to Alyson Provax:

Getting closer to brush strokes here:

Just can’t get this out of my mind for some reason:

Play with the code here:
Obsessed
Overheard
All the Time
Brains