NotesProcedural locomotion for Three.js

The gait, measured against real people

I compared the gait with CMU motion capture and tuned it curve by curve.

Until now, whether the gait looked right depended on looking at it. Now it is measured: I analyse it the same way as real motion capture from the CMU database, at the same relative speed, and compare curve by curve.

Several changes came out of that comparison:

  • Cadence grows with the square root of speed, and running starts at 1.7 m/s and is complete around 2.3 m/s.
  • The swinging foot follows the mocap's shape: it leaves with the push-off velocity, reaches its peak early and glides into contact.
  • The heel rises to about 55° over the toe joint, and the toes bend and stay planted.
  • The arms swing more backwards than forwards, and more the faster it goes.

I also added optional twist bones in thighs, shins, upper arms and forearms, and a naturalness test that fails if the gait drifts from the reference.