I spent a lot of time exploring possible parameters. Some parameter sets always produce good faces, but don’t produce all good faces. Some parameter sets produce lots of good faces, but also produce lots of bad ones. The above set (m, p, q, r, s) works pretty well for mouths, with the only constraint being m+p+q ≥ 0. The main parameter space is a a five dimensional hypercube (with a slice cut off for the one constraint). In addition, the (skew, rotate) parameters add asymmetry to the mouth, and (browLift, browAngle) control the eyebrows. I haven’t worked on eyes yet.
You can see the original mouth parameterizations I played with here and here (Flash) The one I liked better was m=mouth opening, p/q=lip position, r=roundedness, s=smile position.
For all the original geometry models I had used Bezier curves. I was never quite happy with the mouth shapes. When I later explored Bezier curves vs circular arcs for road drawing, I started to appreciate circular arcs much more. I’d like to go back and see if circular arcs would improve the mouth shapes here.
I’d also like to explore a small emoji-style format where the eyes are just dots and the mouths are simple lines. Eyebrows would only show up occasionally.
Blinking eyes can make a big difference to making the face feel alive (see an old experiment of mine); I want to add that here. Right now I have no parameters to control the eyes. I’m also unhappy with the relative position of the eyes to the mouth but haven’t decided what to do about it.