All Shapes and Sizes Barbie

Computational Media

Barbie, and the world in general, has been known to celebrate and look up to one particular kind of beauty, which is tall, skinny and white skinned. Not only is this standard highly difficult to achieve, but the non-inclusivity of the concepts of beauty that the general public has held for generations has been making women all over the world feel less comfortable in their own skin. Women are body shamed when they don’t fit a certain mould or skin color.

Generic old iconic-ass Barbie

Doll companies, alongside the people who control famous actresses and models, and popular media from advertisements to fashion magazines promote unattainable and restrictive beauty standards and cause a lot of pain, body dysphoria, and low self esteem among women and girls. Capitalism uses low self esteem as fuel to sell women products, and sometimes it all starts with a little girls first Barbie doll. Fortunately, recently women are now taking charge of what these beauty standards may be. A movement of acceptance has started, aiming towards more body positivity and diversity.

Body Positivity + Diversity

This has not only led to the Photoshopping of fashion magazines to be revealed more often, to models speaking about eating disorders, belly rolls, and stretch marks, but also doll companies to invest in dolls that more people can relate to. Ideals are being shifted, and capitalism is tweaking itself.

These are the dolls of the All Shapes and Sizes Barbie campaign:

In this assignment, I decided to make a function that takes as arguments weight, height and ethnicity, and outputs a doll.

function allShapesBarbie(x,y,heavy,tall,ethnicity)

(x,y): Coordinates on canvas

Heavy: Weight in pounds, ranging from 90 to 200 lbs

Tall: Height in inches, ranging from 5 foot 2 inches to 6 feet

Ethnicity: 1 for White, 2 for South Asian, 3 for African American — limited to three in my code to keep it simple but more can be added.

My code:

function setup() {
createCanvas(650, 500);
}

function draw() {
allShapesBarbie(50,100,90,67,1);
allShapesBarbie(150,126,130,63,2);
allShapesBarbie(250,78,105,70,3);
allShapesBarbie(350,145,90,60,1);
allShapesBarbie(465,146,190,60,3);
allShapesBarbie(580,68,90,72,2);
}

function allShapesBarbie(x,y,heavy,tall,ethnicity){

let skinColor;
let white = color(252, 226, 199);
let black = color(140, 95, 49);
let southasian = color(229, 166, 114);

if (ethnicity == 1){
skinColor = white;
}
else if (ethnicity == 2){
skinColor = southasian;
}
else if (ethnicity == 3){
skinColor = black;
}
else {print(“Invalid Ethinicty Number, Enter 1, 2 or 3 please.”);}

//Face
let faceWidth = map(heavy,90,200,40,54);
ellipseMode(CENTER);
rectMode(CENTER);
noStroke();
fill(112, 60, 4);
arc(x+7,y-22,42,26,PI,0);
arc(x-14,y-22,24,22,PI,0);
rect(x+1,y+5,54,59);
fill(skinColor);
ellipse(x,y,faceWidth,54);//faceshape
strokeWeight(1);
stroke(0);
fill(255);
ellipse(x-10,y-5,8,10);//eyes
ellipse(x+10,y-5,8,10);
fill(0);
ellipse(x-10,y-4,6,6);
ellipse(x+10,y-4,6,6);
noStroke();
fill(168, 24, 11);
ellipse(x-3,y+10,9,9);//lips
ellipse(x+3,y+10,9,9);
fill(242, 53, 36);
arc(x,y+10,15,12,0,PI);
fill(112, 60, 4);
arc(x+7,y-28.5,30,30,0,PI);//fringe

//Dress

let shoulder = map(heavy,90,200,30,40);
let waistx1 = map(heavy,90,200,20,40);
let waisty1 = map(tall,60,72,78,98);
let waistx2 = map(heavy,90,200,40,70);
let waisty2 = map(tall,60,72,140,170);
fill(0);
beginShape();
vertex(x-(shoulder),y+34);
vertex(x-10,y+34);
vertex(x-10,y+24);
vertex(x+10,y+24);
vertex(x+10,y+34);
vertex(x+(shoulder),y+34);
vertex(x+(waistx1),y+(waisty1));
vertex(x+(waistx2),y+(waisty2));
vertex(x-(waistx2),y+(waisty2));
vertex(x-(waistx1),y+(waisty1));
vertex(x-(shoulder),y+34);
endShape(CLOSE);

//Arms //put behind dress?

noFill();
let armFat = map(heavy,90,200,13,26);
let armLength = map(tall,60,72,80,122);
strokeWeight(armFat);
stroke(skinColor);
arc(x-(waistx1),y+(waisty1),36,armLength,HALF_PI,(3/2)*PI);
arc(x+(waistx1),y+(waisty1),36,armLength,(3/2)*PI,HALF_PI);

//Thighs

fill(skinColor);
let thighx1 = map(heavy,90,200,28,31);
let thighx2 = map(heavy,90,200,10,4);
let thighy = map(tall,60,72,140,170);
let kneex1 = map(heavy,90,200,18,26);
let kneex2 = map(heavy,90,200,10,16);
let kneey = map(tall,60,72,190,250);

beginShape();
vertex(x-(thighx1),y+(thighy));
vertex(x-(kneex1),y+(kneey));
vertex(x-(kneex2),y+(kneey));
vertex(x-(thighx2),y+(thighy));
endShape(CLOSE);
beginShape();
vertex(x+(thighx1),y+(thighy));
vertex(x+(kneex1),y+(kneey));
vertex(x+(kneex2),y+(kneey));
vertex(x+(thighx2),y+(thighy));
endShape(CLOSE);

//Boots
fill(0);
noStroke();
let bootx1 = map(heavy,90,200,32,40);
let bootx2 = map(heavy,90,200,0,2);
let booty = map(tall,60,72,195,250);
let bootheelx = (bootx1 + bootx2)/2
let bootheely = map(tall,60,72,270,350);

triangle(x-(bootx1),y+(booty),x-(bootheelx),y+(bootheely)+10,x-(bootx2),y+(booty));
ellipse(x-(bootheelx),y+(bootheely),25,20);
rect(x-(bootheelx),y+(bootheely)+7.5,25,5);

triangle(x+(bootx1),y+(booty),x+(bootheelx),y+(bootheely)+10,x+(bootx2),y+(booty));
ellipse(x+(bootheelx),y+(bootheely),25,20);
rect(x+(bootheelx),y+(bootheely)+7.5,25,5);

}

The output:

Play with more dolls here:

http://alpha.editor.p5js.org/amena91/sketches/HkEdfl53-

 

Leave a Reply

Your email address will not be published. Required fields are marked *