A Simple Face Puppet

The Shockwave panel below shows a simple face puppet created by superposing several curve-puppets, each of which blend between two curve shapes in an amount which can be controlled by the horizontal position of the mouse. The code for each curve simply blends the vector and handle positions of the two extreme positions of each curve linearly. Parametrized puppets, like this six-parameter object, can be animated by moving linearly between selected parameter vectors.

The parameter vectors for various expressions are as follows:

Placid[0.7103, -4.2500, 1.0942, -1.2188, -1.2188, -3.6750]
Sad[0.7103, -4.2500, -0.0102, -1.2188, -1.2188, -3.6750]
Dismayed[2.3784, -4.2500, -0.0102, -1.2188, -1.2188, 5.7375]
Resentful[2.8884, -29.6250, -0.4466, -13.7344, 7.5469, -2.9438]
Teary[0.1897, -29.6250, 1.3911, -13.7344, 7.5469, -2.9438]
Tearful[0.1897, -29.6250, -0.1764, -13.7344, 7.5469, -2.9438]
Angry[1.6081, 32.1250, -0.0102, -1.2188, -1.2188, 5.7375]
Bewildered[1.6081, 32.1250, -0.0102, -9.6562, 11.2031, 5.7375]
Distracted[1.6081, 32.1250, 1.3792, -13.7344, -13.7344, -4.2188]
Insightful[1.6081, 32.1250, 1.3792, -9.6562, 11.2031, 5.7375]
Cautious[1.6081, 32.1250, 1.3792, 10.0781, 10.0781, 5.7375]
Cautious2[1.6081, 32.1250, 1.3792, -13.7344, -13.7344, 5.7375]