Repository navigation
Planted feet that stay planted, and a sitter that rests on a round seat - #832
Merged
Merged
Conversation
…he pelvis for reach, steps set down on their place (#827, #828) Four causes of a toe sliding on the ground in a plant, found going to a spot five ways (tests/test_go_to.ae), each with a check that failed without its fix: - core.quat_from_to took turns under 0.08 degrees for none (a dot over 0.999999). The leg solve's last aim is such a turn: a running leg was aimed up to 1.2 mm off its target every other frame, and its locked foot slid 8.6 mm a step. The half-way form it uses is exact for small turns (test_gmath). - ik.solve_two_bone measured the knee's bend without its side. A knee the clip overstraightens behind the hip-ankle line was turned as if on the pole's side, bent further backwards, and left its ankle short of a target just under the leg's reach (test_ik). - ae3d.feet lowered the pelvis only for the ground's height. A foot held where it was set while the body went on past it, braking from a run most, was out of the leg's reach by 4 to 8.6 mm; now the pelvis comes down for that too (reach_drop), by REACH_DROP at most. - ae3d.feet's own steps followed the clip's place down, and that place goes on with the body turning on the spot: the foot came down going 7.5 mm a frame. Over its place it now comes straight down there, and it is set down on its last frame, not a frame late from its seconds' round-off. test_go_to now holds every way to #825's 5 mm. CI stays on Aether 0.834.0 (a ci.yml line names aether#3023 and aether-ui#220).
…height (closes #833) The seated key was set down so the lowest drawn flesh of the pelvis and thighs within half a thigh of the seat's point was at the seat's height. On a round log that flesh is the thighs over the log's sides, where the wood is lower, and the buttocks over its top stayed in the air: 6.6 and 8.5 cm on Siltreach's people, 2.1 mm on the box man on a round log with its top 0.6 m up. Now the seat's surface is sampled once a sit, 15 by 15 rays down onto the static world over the flesh looked for on it (seat_surface), and the key is set down by the nearest gap between each point of the pelvis's and thighs' flesh and the surface under it (seat_gap), through skin.skeleton_bone_points_near and physics.ragdoll_flesh_points. On a flat seat the two agree; flesh past a seat's edge no longer counts. test_sit sits the box man on a squared log 0.4 m high and on a round one, both held to a millimetre: the round one rests 0.26 mm into it, and fails without the fix. Its pop check is held at 8 degrees on that high seat, where main turns a body 7.6 in a step (#834).
…n; inflate's dead return Its planted feet held where they landed now (the pelvis lowered for their reach, #828), the box man stops with its feet a stride apart and steps to its stance, landing 1.08 s after the stop and standing on through three seconds. On main the planted foot gave as the body braked over it, its toe drifting 3.8 mm stopping, and it stood at a second. inflate's huffman_block ended with a `return true` after a `while true` that only leaves by returning: unreachable, as the next Aether's W1002 finds (aether#3026).
This was referenced Oct 20, 2026
CI: the macOS leaks shard runs 17 to 21 minutes of its 25-minute limit; a slow runner timed out
#836
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A planted foot now stays where it was set. Going to a spot five ways (
tests/test_go_to.ae, the box man onae3d.feet), no toe slides in any plant, before or after arriving:test_go_tonow holds every way to #825's 5 mm. On main the turns (#827) and braking a run (#828) were held to what they slid.There were four causes, each found by tracing a plant frame by frame. Each has a check that fails without its fix.
core.quat_from_totook turns under 0.08 degrees for none. It returned the identity for a dot over 0.999999.test_gmath: a 0.001 rad turn takes one direction onto the other.ik.solve_two_bonemeasured the knee's bend without its side.test_ik: a leg 3 cm overstraightened, solved to 0.08 mm under its reach, ends on the target with its knee toward the pole. On main the knee ends behind the line.ae3d.feetlowered the pelvis only for the ground's height.reach_drop), as foot-IK systems lower the pelvis for the farthest planted foot (Unreal's leg IK pelvis adjustment, Final IK's grounder).REACH_DROP(5 cm) at most. Past that the foot gives, as before (LOCK_REACH).ae3d.feet's own steps followed the clip's place down.STEP_PLACE), a step now comes straight down there.STEP_SECONDSby round-off, and the foot stood a frame on the ground unheld.A sitter rests on a round seat (#833, reported by Siltreach). The seated key was set down so the lowest drawn flesh of the pelvis and thighs near the seat's point was at the seat's one height.
seat_surface). The key is set down by the nearest gap between each flesh point and the surface under it (seat_gap), through the newskin.skeleton_bone_points_nearandphysics.ragdoll_flesh_points.test_sitnow also sits the box man on a round log, its top 0.6 m up, high enough that his thighs slope down to his knees. Both seats are held to a millimetre: the round one rests 0.26 mm into the wood, and without the fix it is 2.1 mm over and fails.Stopping on its feet. With planted feet held where they land, the box man on
ae3d.feetstops a stride apart and steps to its stance. The step lands 1.08 s after the stop, and he stands on through three seconds. On main the planted foot gave as the body braked over it: the toe drifted 3.8 mm stopping, and he stood at a second.test_locomotionnow checks the stance a second and a half on. Walking straight, its toe drift is 0 (main 4.9 mm); turning round, 2.26% of the body's way (main 2.90%).Also:
inflate'shuffman_blockended with an unreachablereturn trueafter awhile truethat only leaves by returning. The next Aether's W1002 finds it (aether#3026).Tested locally: on Aether 0.834.0 and aephysics f0bd6d6, the motion gate (34 suites) plus
test_go_to,test_sit,test_lie,test_locomotion,test_characters_meet,test_physics,test_ikandtest_gmathall pass, 42 of 42, with no warnings.Plaza scorecard against main (988affa): 20, 24 and 28 walkers, 60 s each, on Aether 0.834 and aephysics f0bd6d6. Every run started and finished.
Dependencies: held. CI stays on Aether 0.834.0 and aephysics f0bd6d6, as on main. A ci.yml line now names why:
-Wformat-truncation(aether-ui#220).Closes #833. Part of #827, #828, #825 and #790.