for this project, I was inspired by the work of weaver and sculptor Ruth Asawa, who gained international recognition in the art world for her looped-wire sculptures and hanging mobiles. the most challenging part of this project was creating self-contained forms that intersected multiple times.
string art ruth asawa
var connectX = 150; var connectY1a = 75; var connectY1b = 125; var connectY2a = 160; var connectY2b = 190; var connectY3a = 250; var connectY3b = 350; var xa = 200; var xb = 50; var xc = 120; var dx1a; var dx1b; var dx2a; var dx2b; var dx3a; var numLines = 15;
function setup() {
createCanvas(300, 400);
background(0);
stroke(255);
stroke(100);
line(width/2, 0, width/2, 350);
stroke(255);
strokeWeight(1.5);
line(100, 100, 200, 100); line(150, 75, 150, 125); line(100, 100, 150, 75); line(150, 125, 200, 100); line(50, 175, 250, 175); line(150, 160, 150, 190); line(50, 175, 150, 160); line(150, 190, 250, 175); line(120, 300, 180, 300); line(150, 250, 150, 350); line(120, 300, 150, 350); line(150, 250, 180, 300);
dx1a = (100-xa)/numLines;
dx1b = (200-100)/numLines;
dx2a = (250-50)/numLines;
dx2b = (50-250)/numLines;
dx3a = (180-120)/numLines;
dx3b = (120-180)/numLines;
}
function draw () {
stroke(200);
for (var i = 0; i <= numLines; i++) {
line(connectX, connectY1a, xa, 100);
xa += dx1a;
}
xa = xa + dx1b
for (var i = 0; i <= numLines; i++) {
line(connectX, connectY1b, xa, 100);
xa += dx1b;
}
for (var i = 0; i <= numLines; i++) {
line(connectX, connectY2a, xb, 175);
xb += dx2a;
}
for (var i = 0; i <= numLines; i++) {
line(connectX, connectY2b, xb + dx2b, 175);
xb += dx2b;
}
for (var i = 0; i <=numLines; i++) {
line(connectX, connectY3a, xc, 300);
xc += dx3a;
}
xc = xc + dx3b;
for (var i = 0; i <= numLines; i++) {
line(connectX, connectY3b, xc, 300);
xc += dx3b;
}
noLoop();
}