Each of these is a slider:
Back in 2011 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. I’d like to make a version that doesn’t have this constraint. 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. If your browser can still run Flash, you can see the original mouth parameterizations I played with here and here.
Things I still want to add:
- ✅ UI: I need to make the current slider position obvious.
- I would really like a hypercube model that has no constraints (like m+p+q ≥ 0), so I want to explore different models.
- I want to add parameters to control the eyes.
- I want to add smooth interpolation between settings.
- Store the current settings in the URL so you can share the page.
- 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 want a small emoji-style format where the eyes are 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 - Flash); I want to add that here.
- I’m unhappy with the relative position of the eyes to the mouth but haven’t decided what to do about it.
- A “continous animation” feature could move randomly through the hypercube parameter space so you can sit back and watch faces without repeatedly clicking Random. I think this would involve constructing a bezier spline in the hypercube parameter space.