Question: I'm in the process of creating a web app. I have many randomly-generated non-player characters in a database. I can pull a lot of information about them - their height, weight, down to eye color, hair color, and hair style.

For this, I am solely interested in generating a graphical representation of the face. Currently the information is displayed with text in the nicest way possible, but I believe it's worth generating these faces for a more... human experience.

Problem is, I don't know where to start. Were it 2007, I'd naturally think to myself that using Flash would be the best choice. I'd love to see "breathing" simulated. However, since Flash is on its way out, I'm not sure of a solid solution.

With a previous game, I simply used layered .PNGs to represent various aspects of the player's body: their armor, the face, the skin color. However, these solutions weren't very dynamic and felt very amateur. I can't go deep into this project feeling like that's an inferior way to present these faces, and I'm certain there's a better way.

Can anyone give some suggestion on how to pull this off well?

Answer: 
The way you are thinking to do it is fine. You should drop inhibitions about Flash and just use it. You aren't writing a bank system here, you're writing a single game. Even if it does have a sequel, Flash is still installed on pretty much every computer today.

Just a note that the best face generator I've ever come across is [facegen](http://www.facegen.com/).

There is a [FaceGen SDK](http://www.facegen.com/sdk.htm). I don't really know what it costs, but I'm guessing it must be in the thousands. Then, you have FaceGen create a face, using your inputted parameters (for eyes spacing, skin color etc - FaceGen can do all that). Then, you render the face to a texture, save it out, and send it over to the other application.
This is a very good question! Unfortunately I can't suggest anything more than what probably you already know:

1. Prepare 10 faces in Photoshop or Flash or other drawing tool with layers.
2. Put every face element like nose, eyes, eyebrows etc. on a separate layer.
3. Design the faces the way all elements are on same place.
4. Hide all elements except one (or set as a guide layer in Flash)
5. Save as .PNG file and repeat for other elements
6. Put these .PNG files in groups, and generate faces by overlapping random PNGs, one of every type on top of each other.