A&HA 5128: PERIODIC UPDATE #7

Artifacts To Date:

As planned I was able to design one more algorithm for a third piece. Here it is:

Form 11-16-2017 at 22.09.00s

And it’s code:

// "Regular Vertical Bars with Random Squares" | Dylan Ryder | December, 2017
// Talma Quality, Pastel 2 Palette
size(3984, 3000); // 46-48" x 36", 84 DPI
background(#F9FAF9); // Blizzard
noSmooth();
noStroke();

int w = width / 30;
int h = height;
int h2 = height / 10;

// large columns
fill(#FFE4F3); // Pinking
for (int col = 0; col < 30; col++) {
 rect(w * col + w / 8, h * 0.05, w * 0.5, h * 0.9);
}

// small columns in 2 rows
fill(#FFEEF8); // Tutu
for (int col = 0; col < 30; col++) {
 for (int row = 1; row < 3; row++) {
 rect(w * col + w / 8, (h * 0.9) / 3 * row, w * 0.5, h2);
 }
}

// small squares randomly placed in grid
int w3 = width / 60;
fill(#877193); // Beta
for (int col = 0; col < 60; col++) {
 for (int row = 1; row < 8; row++) {
 int rand = int(random(7*row));
 if (rand <= 3) {
 rect(w3 * col + w/8, (h * 0.7) / 7 * row, w * 0.5, w * 0.5);
 }
 }
}

// generate a unique filename for each generation based on datestamp
save("Form "+nf(month(), 2)+"-"+nf(day(), 2)+"-"+year()+" at "+nf(hour(), 2)+"."+nf(minute(), 2)+"."+nf(second(), 2)+"s"+".png");

Adjustments to Timeline:

I sent generative prints of all three works to WOVNS to be fabricated on November 17th. I should have them shipped out in around 10 days.

Advertisements

A&HA 5128: PERIODIC UPDATE #6

Artifacts To Date:

I worked this week to rebuild my Scratch prototypes with the Processing language, which is best for creating graphics that can be translated into textiles on a jacquard loom. WOVNS requires all colors to be expressed with specific hexadecimal values in any selected palette. Coding with that kind of color specificity is not possible with Scratch.
The first rebuild used a different algorithm to achieve the desired generative design. Here is an example generative design:

Form 11-13-2017 at 22.08.52s

Here is the code:

// "Two Agents Crossing" Dylan Ryder, November 2017
// Designed in Processing
// Talma Quality, Pastel 2 Palette

size(3984, 3000); // 46-48" x 36", 84 DPI
background(#F9FAF9); // Blizzard
noSmooth();
noStroke();

int side = 100;
int x1 = 2000;
int x2 = 0;
int y1 = -100;
int y2 = height / 2;

// Vertical Agent
fill(#877193); // Beta
while (y1 < height) { 
 // Y axis traveling
 int r = int(random(7));
 for (int i = 0; i <= r; i++) {
 y1 += side;
 rect(x1, y1, side, side);
 }
 
 // X axis traveling 
 r = int(random(3));
 int shift = int(random(2));
 for (int i = 0; i < r; i++) {
 if (shift == 0) {
 x1 -= side;
 rect(x1, y1, side, side);
 } else {
 x1 += side;
 rect(x1, y1, side, side);
 }
 }
}

// Horizontal Agent
for (int x = 0; x < width; x += side) {
 pushMatrix();
 translate(x * int(random(2)), 0);
 fill(#BFCDE5); // Moon
 //fill(#74AED7); // Ciel
 rect(x2, y2, side, side);
 popMatrix();
}

// generate a unique filename for each generation based on datestamp
save("Form "+nf(month(), 2)+"-"+nf(day(), 2)+"-"+year()+" at "+nf(hour(), 2)+"."+nf(minute(), 2)+"."+nf(second(), 2)+"s"+".png");

The next rebuild also used a slightly different algorithm to achieve my desired generative design. Here is an example of that generative design:

Grid 11-16-2017 at 22.26.37s

Here is the code:

// "Squares in an Imperfect Grid with 8-bit Fill Variability"  
// Dylan Ryder, November 2017
// Designed in Processing
// Talma Quality, Pastel 2 Palette

size(3984, 3000); // 46-48" x 36", 84 DPI
background(#BFCDE5); // Moon
noSmooth();
noStroke();
color c = #F9FAF9; // Blizzard
fill(c);

int w = width / 30;
int h = height / 25;
int r; // horizontal random gap between squares
int vRand; // vertical random gap between rows
int stroke;

for (int row = 0; row < 18; row++) {
 vRand = int(random(30));
 for (int col = 0; col < 18; col++) {

// decide if the shape is filled or not
 if (int(random(256)) == 255) {
 noFill();
 stroke(c); // Color
 stroke = 5;
 strokeWeight(stroke);
 } else {
 noStroke();
 fill(c); // Color
 stroke = 0;
 }

r = int(random(-20, 20));
 // draw the square
 rect(w * col * 2 + w / 2 + r, h * row * 1.35 + h / 2 + vRand, 
 (w * 3 / 4)-stroke, (h * 3 / 4)-stroke );
 }
}

// generate a unique filename for each generation based on datestamp
save("Grid "+nf(month(), 2)+"-"+nf(day(), 2)+"-"+year()+" at "+nf(hour(), 2)+"."+nf(minute(), 2)+"."+nf(second(), 2)+"s"+".png");

Adjustments to Timeline:

I am feeling motivated to make this work a triad and plan to design one more algorithm for a third piece. I plan to get that done this weekend and if I am satisfied with it, I will have all three works fabricated.

A&HA 5128: PERIODIC UPDATE #5

Artifacts To Date:

I had a plan for two different computational textiles for my final project and I prototyped them in Scratch.

Two Agents Crossing:

Screen Shot 2017-11-05 at 2.28.04 PM

Perfect Squares in an Imperfect Grid w/8-bit Fill Variability:

Screen Shot 2017-11-17 at 10.35.01 PM

Feedback:

So far my feedback from peers has been polite encouragement, rather than specifically pointed or instructive comments. I assume because none of us work with textiles the comments are brief 🙂

Your Assignment To Yourself:

In the next weeks I have to push myself to translate my ideas from Scratch into Processing. There I can have more control over my design’s dimensions and code in the appropriate color palettes to comply with the WOVNS platform’s constraints. That’s challenging for me – I feel it’s a bit like translating  a poem from one natural language to another because you must be mindful that literal translation isn’t really appropriate. You must translate for meaning and understanding that fits the second language.

So far I’ve only made my original designs in Scratch because I am so comfortable with it. I’ll be rethinking my generative instructions to fit Processing which is sometimes tricky for me.

Timeline:

I don’t have any timeline adjustments at the moment.