DEV Community

Cover image for Kinewright Humans: the first person model
Dimon
Dimon

Posted on Originally published at dimonb19a.hashnode.dev

Kinewright Humans: the first person model

Two stages closed since the plan: the pelvis and chest move in the walk (25 September), and height and trunk mobility became inputs of a person model (10 October). This article shows what changed and every defect still visible in the clips.

Kinematics only. No physics. Every number is sampled from the engine's own motion, not measured on people. The picture is a small reference renderer. Each stage was accepted by two reviewers choosing between lettered clips, with the letter-to-setting map sealed until both had answered.

What changed

  • The walk's trunk moves. Pelvis drop 3.33° → 5.00°, chest turn 2.83° → 6.00°.
  • The run stopped wobbling. The pelvis's sideways travel 73 mm → 15 mm.
  • One body became a person model. Height 1.50–1.80 m and trunk mobility 0–1 are inputs; the engine derives the rest. The default person is 1.72 m.

Pelvis and chest

  • The new default: pelvis drop 5.00°, chest turn 6.00°, shoulder line 17° ahead of the hip line. Two neighbours ship as presets (6°/8°, 6°/11°); the September set stays as the control.
  • The stop keeps its two bars: shoulder-line roll ≤ 0.62° and head sideways ≤ 12 mm on the last step. The default closes at 0.043° and 1.41 mm. Every new walk rolls the shoulders less at the stop than the old one, because the counter-roll shares were set for it.
  • The run was left unchanged at this stage: a pelvis-rotation ladder moved the picture by under 3.3 px, and a sway ladder failed the contact gate (the foot inherited 5.3 mm of pelvis motion against a tolerance of 1e-9 m).

The person model

  • Inputs: height, trunk mobility, and speed as the independent variable.
  • A law may move only what a preset may move: feet within 1e-9 m of the accepted motion, cadence untouched. So all three heights step at the same rate and length; only the body above the feet is scaled. A real shorter person would take shorter, quicker steps.
  • When nothing is specified, the engine plays the default person through the laws. The last review compared that against the accepted motion passed in directly: byte-identical videos, no difference seen.
  • Two speeds are played: 1.0 m/s walk, 4.5 m/s run. The trunk's speed laws were checked on 1.00–1.60 and 2.50–4.50 m/s by instrument but are not played yet.
  • Why 1.50–1.80 m and not more: the range was planned to 1.95 m. Above 1.80 m the engine's own continuity limits bind: the head's vertical step through the walk-to-run transition passes 5 mm from 1.81 m (at 1.80 m it is 4.974 mm), the hip and knee jerk at the braking boundary pass their limits from 1.90 m, and the run-to-stand exit cannot be compiled from about 1.94 m. Recorded as not reached; no limit was moved to admit a taller person. 1.50 m is the planned floor, and it is already the tightest corner: with the most mobile trunk, 1 % of headroom is left. All three binding places are transitions and braking, not steady gaits. The next stage, the runtime step planner, lays those transitions out anew; the height corners and the clamps are re-run after it, and the range widens to whatever then holds.
  • Every law has a clamp. Its limits were found at the tightest corner (shortest height, most mobile trunk), and the runtime reports what it clamped.

The run

  • Four sideways-travel settings were shown; the first attempt at the side camera did not show the sway and was recorded as a defect. At the corrected look both reviewers chose the same letter: 0.2 of the old travel, 14.6 mm instead of 73.2 mm.
  • What moved: the root and everything above the hips, sideways, by at most 29.3 mm; hips, knees and ankles by at most 0.036 rad. Feet and contacts did not move.
  • Hip rotation 9.74° and shoulder turn 4.05° are unchanged.

What looks wrong, and why

1. All heights step at the same rate and the same length.
Why: in this stage the engine was not allowed to move the feet. Where each foot lands, and when, is the same for every height; only the body above the feet is scaled. A real shorter person would take shorter, quicker steps.
When it changes: the stage after the planner, where step length and cadence start to depend on the person, not only on speed. Starts and stops get re-reviewed then, because the feet move.

2. The short and the tall person look like the same body scaled.
Why: the body is built from 17 proportions set by hand, not from measured body dimensions.
When it changes: once a licensed dataset of adult body dimensions is admitted, the proportions become a profile that can be swapped.

3. Heights stop at 1.80 m.
Why: above 1.80 m the engine's smoothness limits are crossed in the transitions. The head jumps more than 5 mm when the walk becomes a run; the legs jerk too hard when braking; above about 1.94 m the run cannot settle into a stand at all. We do not loosen a limit to fit a taller person.
When it changes: the planner rebuilds those transitions; after that the limits are re-checked at the corners and the range widens to whatever holds.

4. Only two speeds: walking at 1.0 m/s, running at 4.5 m/s.
Why: the trunk's speed laws were verified on 1.00–1.60 and 2.50–4.50 m/s by instrument, but the product has no way yet to ask for another speed.
When it changes: the playable controller, which changes speed continuously.

5. The stop ends on a hard last foot.
Why: a known leftover from the stand-start-stop stage. The last braking step lands harder than a person would.
When it changes: the runtime step planner, the next stage; it owns starts, stops and interrupted commands.

6. The run's chest is stiff against the hips.
Why: this stage changed only how far the running pelvis travels sideways. A set of larger pelvis rotations for the run was built, but on the reviewers' camera it moved the picture by less than three pixels, so it was never shown.
When it changes: a run trunk ladder at a scale the camera can show. Not scheduled yet.

7. Every step is identical.
Why: the engine is deterministic. The same inputs always produce the same motion. Real people vary from step to step by a few percent.
When it changes: planned as its own item right after the cadence-and-step stage, before the playable controller — seeded and bounded, so a replay with the same seed is still the same motion.

8. The arms do not depend on the person.
Why: arm swing is a fixed rule per gait, about 35° walking and 57° running.
When it changes: the skill platform stage, where the arms get rules of their own.

9. Block feet, block hands, no face.
Why: the mannequin is a reference renderer. Feet and hands are boxes and the head is a sphere because the engine has no foot or hand articulation yet.
When it changes: feet and hands come in the stage that closes the locomotion foundation. A face is not on the map.

10. No transitions in these clips.
Why: walk-to-run and run-to-walk exist and were accepted in the first stage. This time the reviews compared steady gaits, so the clips show those.
Not a defect.

11. In the side-camera run the whole body drifts sideways.
Why: that drift is the sway itself. The usual camera follows the pelvis and hides it; the side camera does not.
Changed: 73 mm before, 15 mm now.

12. Extreme persons are clamped.
Why: at the shortest height with the most mobile trunk the engine holds some channels at its smoothness limits, and says so in its report. None of the clips shown here is clamped.
When it changes: the limits move only when the transitions are rebuilt, never to fit a result.

Feedback that lands: does it respond the way you expect, does it look natural, and what exactly you saw. "Can't tell" is a valid answer.


Data behind the laws: Fukuchi et al., walking and running datasets v5 (CC BY 4.0); Riglet et al., 2024 (CC0); NIOSH firefighter body dimensions for the reference body (public domain). They inform the motion; they do not validate the engine.

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.