Skip to content

motion: kneel and stand up (#825's 5); keyed ways keep joints in range and step feet as a person does (#841 in part) - #844

Merged
nicolas-maman merged 5 commits into
mainfrom
feat/motion-kneel
Oct 21, 2026
Merged

nicolas-maman merged 5 commits into
mainfrom
feat/motion-kneel

Conversation

@nicolas-maman

@nicolas-maman nicolas-maman commented Oct 21, 2026 •

Copy link
Copy Markdown
Collaborator

Kneeling by a point on the ground to work at it with both hands, and up again (#825's 5). Fixing it showed that the keyed ways asked the box man's joints for more than they have, and stepped feet badly, so this also fixes that for every keyed way (#841, in part).

Kneeling

motion.kneel(body, at, facing) kneels a figure by a point on the ground. kneel_spot says where to stand for it, and kneeling, knelt and work_at report on it.

  • Down: the figure steps back onto its left knee, then brings the right knee down beside it, upright, and only then leans over the work. The hands move over the work as hands treating a wound do.
  • Up: stand_up rises the way the get-up's half kneel does.

tests/test_kneel.ae:

measured held to
knelt, the left knee's flesh over the ground 1.9 cm under 2 cm
the hands' middle from the work 3.0 cm 5 cm
toes sliding while they bear, all the way 4.0 mm 5 mm
the lowest drawn flesh 0.7 cm in (a standing foot) 1 cm
the worst body turn in a step 5.4° 6°

Every keyed way

  • Joint ranges. A solve keeps the knee or elbow inside its range, and a stepped foot inside its ankle's cone. The plans had asked for a 153° knee against the box man's 130°. The bodies stopped at their limits and dragged a foot 26 cm under a foot drawn floating.
  • The stage eased onto the animation. It now puts each leg's end back where its solve had it, keeping the knee hinge's lie. Eased bone by bone, a back leg's ankle dipped under both of its keys, 8.3 cm into the ground.
  • Starting from the drawn pose. A way begun while acting starts from what is drawn, not from the bodies. Standing up from kneeling, the neck snapped 58° and the arms 29° on the first frame.
  • Stepped feet:
    • they lift, travel at an even pace and set down level;
    • once off the ground they ride their shins;
    • while carried they stay 3 cm clear;
    • where the leg can't lift them, they turn their toes up and swing out round the folded knee, both planned over the stage.
  • Settling after a way up. The stance shifts at 4 mm a step, under the 5 mm slide bound.
  • Getting up from the front. The kneeling feet tuck their toes under. The drawn feet went 8.8 cm into the ground and now go 0.7 cm. tests/test_get_up_feet.ae fails on main.
  • The knee's range is 149 degrees, up from 130. That is a person's bend crouched or kneeling; 130 is their bend standing. At 130, the get-up's crouch over the feet asked the knees past their range, and the knee clamp pushed the planted feet 6.7 cm into the ground. A crouch lifted to fit 130 turned a forearm 6.2 degrees a step, and leaning it instead 7.1, against main's 4.6. At 149 the crouch fits as keyed, and face up's worst turn is 5.9 degrees. A crouch that still asks for more raises its hips to fit (crouch_within).

Holds and follow-ups

The motion gate passed all 41 suites, kneel included.

… its 5); ways keep their joints in range and step their feet as a person does (#841)

Kneeling (motion.kneel, kneel_spot, kneeling, knelt, work_at): down
stepping back on the left knee, then the right beside it, upright, then
leant over the work with the hands moving over it; up by the half kneel.
tests/test_kneel.ae holds it: a knee on the ground (1.9 cm), the hands
at the work (3.0 cm), toes 4.0 mm, nothing drawn under 0.7 cm, 5.4 deg.

Every keyed way:
- a solve keeps its middle joint in range (a knee's 130 degrees), and a
  stepped foot its ankle's cone; a crouch rises to what the knees take;
- the stage eased onto the animation puts each leg's end back where its
  solve had it, its hinge's lie kept (the eased leg dipped 9 cm);
- a way begun while acting starts from the drawn pose (the neck snapped
  58 degrees standing up from kneeling);
- a stepped foot lifts, is carried at an even pace and set down, rides
  its shin, stays 3 cm clear, turns its toes up and swings wide round a
  folded knee where it must, planned over the stage;
- the settle shifts the stance at 4 mm a step, under the slide bound.

Getting up from the front, the kneeling feet tuck their toes under: the
drawn feet went 8.8 cm into the ground, now 0.7 (tests/test_get_up_feet.ae
fails on main). Up from the back its first stage still draws them 3.6 cm
in: #841 stays open for that.
…eling (#841)

At 130 degrees, a person's bend standing, the get-up's crouch over the
feet asked the knees past it, and with the knees held to their range a
lifted crouch turned the arms 6.2 degrees a step. At 149 the crouch is
one the knees can take as keyed; face up turns 5.9 degrees at most.
@nicolas-maman
nicolas-maman merged commit b84dc46 into main Oct 21, 2026
10 checks passed
@nicolas-maman
nicolas-maman deleted the feat/motion-kneel branch October 21, 2026 20:18
nicolas-maman added a commit that referenced this pull request Oct 21, 2026
A macOS shard rebuilds nearly all it builds once the motion module moves:
macos-2 built 67 programs in 1404 s on its three cores and was cut off at
25 minutes before its suites ran, as main's run after #844 was.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant