Mid-Century Curtains

The mid-century in the UK saw a lot of fabrics being produced with designs that were based seemingly on almost random looking shapes and forms.

This was a trend that produced some very distinctive looking fabrics and wallpapers and, along with the use of appropriate colours, tends to mark patterns as being mid-century.

This design was made in code with Processing and was intended from the outset as a fabric pattern. It uses the type of shapes that were commonly used and paired with a dark background fabric it makes an ideal material. The set used is a very basic curtain set that was made some time back and which, to be honest, is as good as any other set for showcasing curtain material. The pattern looks an awkward one when seen as a swatch but comes alive when used as material with the other shapes forming a division across the curtain which contrast in well with the shape and colour of the lower forms.

The code is rather long and a little scrappy but I include it below in case it helps anyone.

You can also see larger versions of this and our other work on our Flickr page which is here.

PImage bg ;
 color brass ;
 color pinkb ; // pink beige
 color butterm ; // buttermilk
 color rred ; // reef red
 color cbrown ; // congo brown
 color choc ; // chocolate
void setup() {
 size(1000, 1000) ;
 bg = loadImage("092.jpg") ; // regal red
 image(bg, 0, 0) ;
 // background(255) ;
 // colors
 brass = color(#DBA20D) ;
 pinkb = color(#E09F81) ;
 butterm = color(#E9DAB1) ;
 rred = color(#E07A67) ;
 cbrown = color(#574736) ;
 choc = color(#352522) ;
drawShape01(500, 500) ;
 drawShape01(250, 750) ;
 drawShape02(0, 500) ;
 drawShape02(1000, 500) ; // offset above
 drawShape02(700, 750) ;
 drawShape03(360, 1000) ;
 drawShape03(360, 0) ; // offset above
 drawShape04(0, 700) ;
 drawShape04(0, -300) ; // offset above
 drawShape04(1000, 700) ; // offset above
 drawShape04(1000, -300) ; // offset above
 rect(830, 100, 80, 260, 60, 0, 60, 0) ;
 rect(5, 100, 80, 260, 0, 60, 0, 60) ;
//drawGuides() ;
 // shapes
 stroke(0) ;
 strokeWeight(1) ;
 fill(brass, 180) ;
 // shape01
 beginShape() ;
 curveVertex(360, 150) ; // C1
 curveVertex(210, 100) ; // V1
 curveVertex(170, 200) ; //V2
 curveVertex(210, 300) ; // V3
 curveVertex(360, 250) ; // C2
 vertex(110, 300) ;
 vertex(110, 100) ;
 endShape(CLOSE) ;
 // shape02 add 140 to across to make it 50 away
 beginShape() ;
 vertex(240, 80) ;
 curveVertex(490, 150) ; // C1
 curveVertex(340, 100) ; // V1 curveVertex(310, 200) ; //V2
 curveVertex(340, 320) ; // V3
 curveVertex(490, 250) ; // C2
 vertex(240, 320) ;
 endShape(CLOSE) ;
 // shape03 add 150 to across to make it 50 away
 beginShape() ;
 vertex(380, 300) ;
 vertex(380, 100) ;
 curveVertex(630, 150) ; // C1
 curveVertex(480, 100) ; // V1
 curveVertex(410, 200) ; //V2
 curveVertex(480, 300) ; // V3
 curveVertex(480, 250) ; // C2
endShape(CLOSE) ;
 // shape04 add 150 to across to make it 50 away
 beginShape() ;
 vertex(500, 320) ;
 vertex(500, 80) ;
 curveVertex(580, 150) ; // C1
 curveVertex(630, 100) ; // V1
 curveVertex(590, 200) ; //V2
 curveVertex(630, 320) ; // V3
 curveVertex(630, 250) ; // C2
 endShape(CLOSE) ;
 // shape05 add 150 to across to make it 50 away
 beginShape() ;
 curveVertex(930, 150) ; // C1
 curveVertex(780, 100) ; // V1
 curveVertex(740, 200) ; //V2
 curveVertex(780, 300) ; // V3
 curveVertex(780, 250) ; // C2
 vertex(680, 300) ;
 vertex(680, 100) ;
 endShape(CLOSE) ;
}
//---------------------------------------------------------------
void drawShape01(int x, int y) {
 stroke(butterm, 200) ;
 strokeWeight(7) ;
 fill(pinkb, 150) ;
 rect(x, y, 300, 30) ;
 rect(x, y + 40, 240, 25) ;
 rect(x, y + 75, 180, 20) ;
 rect(x, y + 105, 120, 15) ;
 rect(x, y + 130, 60, 10) ;
 }
void drawShape02(int x, int y) {
 stroke(rred, 250) ;
 strokeWeight(10) ;
 fill(butterm, 200) ;
 ellipse(x, y, 100, 200) ;
 ellipse(x + 100, y, 80, 180) ;
 ellipse(x + 180, y, 60, 160) ;
 }
void drawShape03(int x, int y) {
 stroke(choc, 250) ;
 strokeWeight(5) ;
 fill(pinkb, 250) ;
 line(x, y, x + 300, y) ;
 ellipse(x + 303, y, 30, 30) ;
 line(x, y, x + 300, y - 50) ;
 ellipse(x + 303, y - 50, 30, 30) ;
 line(x, y, x + 300, y + 50) ;
 ellipse(x + 303, y + 50, 30, 30) ;
 // origin ball
 ellipse(x, y, 30, 30) ;
 }
void drawShape04(int x, int y) {
 stroke(choc, 250) ;
 strokeWeight(5) ;
 fill(pinkb, 250) ;
 line(x, y, x, y + 300) ;
 ellipse(x, y + 300, 30, 30) ;
 line(x, y, x + 50, y + 300) ;
 ellipse(x + 50, y + 300, 30, 30) ;
 line(x, y, x - 50, y + 300) ;
 ellipse(x - 50, y + 300, 30, 30) ;
 // origian ball
 ellipse(x, y, 30, 30) ;
 }
//-----------------------------
 void drawGuides() {
 stroke(255, 50) ;
 strokeWeight(1) ;
 // across
 line(250, 0, 250, 1000) ;
 line(500, 0, 500, 1000) ;
 line(750, 0, 750, 1000) ;
 // down
 line(0, 250, 1000, 250) ;
 line(0, 500, 1000, 500) ;
 line(0, 750, 1000, 750) ;
 // reset stroke
 stroke(0) ;
 strokeWeight(1) ;
 }

About Mike
I design and create 3D interiors and mid-century inspired surface patterns

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: