# Random Face

example processing procedural-generation```
size(200, 200);
//place face in middle of window
float faceX = width/2;
float faceY = height/2;
//smallest face is half the window, biggest face is whole window
float faceWidth = random(width/2, width);
float faceHeight = random(height/2, height);
//random face color
fill(random(255), random(255), random(255));
//draw the head
ellipse(faceX, faceY, faceWidth, faceHeight);
//random eye size
float eyeWidth = random(faceWidth*.1, faceWidth*.25);
float eyeHeight = random(faceHeight*.1, faceHeight*.25);
//random eye position
float spaceBetweenEyes = random(eyeWidth, eyeWidth*2);
float leftEyeX = faceX - spaceBetweenEyes/2;
float rightEyeX = faceX + spaceBetweenEyes/2;
float eyeY = faceY - random(faceHeight*.1, faceHeight*.25);
//white
fill(255);
//draw the eyes
ellipse(leftEyeX, eyeY, eyeWidth, eyeHeight);
ellipse(rightEyeX, eyeY, eyeWidth, eyeHeight);
//random pupil size
float pupilWidth = random(eyeWidth*.1, eyeWidth*.9);
float pupilHeight = random(eyeHeight*.1, eyeHeight*.9);
//black
fill(0);
//draw the pupils
ellipse(leftEyeX, eyeY, pupilWidth, pupilHeight);
ellipse(rightEyeX, eyeY, pupilWidth, pupilHeight);
//random mouth size and Y
float mouthWidth = random(faceWidth*.2, faceWidth*.8);
float mouthHeight = random(faceHeight*.1, faceHeight*.3);
float mouthY = faceY + random(faceHeight*.1, faceHeight*.25);
//random mouth color
fill(random(255), random(255), random(255));
//draw the mouth
arc(faceX, mouthY, mouthWidth, mouthHeight, 0, 3.14);
line(faceX - mouthWidth/2, mouthY, faceX + mouthWidth/2, mouthY);
```

This code uses variables along with the `random()`

function to procedurally generate random faces. Every time you run the program, you get a different face.

This code might seem complicated, but when writing a program like this, you only focus on one small part at a time.

- First, get a randomly sized circle showing up. Don’t worry about anything else yet!
- Only when you get that working, then think about randomly coloring that circle.
- Then get two more randomly sized circles showing up for the eyes.
- Finally, focus on the mouth.

The point is, you don’t write this entire program at one time. You focus on one small piece at a time.

See the Pen by Happy Coding (@KevinWorkman) on CodePen.

## Tweak Ideas

- Randomly generate a flower, or a tree, or your favorite animal.