Repository navigation
Go to a spot and stop on it (#825), stops planned on a footfall (#828), turning on the spot by steps (#827); aephysics b37fae2, Aether 0.835.0 - #831
Merged
Conversation
…ing on the spot and the run's stop still slide
…foot's own step judged by the clip's motion in the root's frame
…e ground (test_feet's carried foot)
…Distance Matching's aim): behind it 82 mm to 8 mm, every walk arrives
…rom a run it changed clip every frame and flung a foot to its hips
…own; go_to's toe limits
…he gait band, turning on the spot by steps
…lking and struck aephysics b37fae2 (#183) closes every open aephysics issue and needs Aether 0.835.0, which removes std's long names (aether#2976); ae3d itself calls none of them. The plaza scorecard now says how much of its legs-splayed time was struck figures', as it already did for knees and sinking: a change to how figures walk moves which are struck, and with it the struck part.
…at -O0 on Win64 aephysics b37fae2 puts AVX2 code (its @target("avx2") copies of sat and contact_solver_wide) into every x86 build. GCC on Win64 cannot realign the stack to 32 bytes, so a function with an f32x8 local is an internal compiler error at -O0 (expand_one_stack_var_1, GCC 15.2 and 16.2 alike). ae3d builds its suites at -O0, and every Windows suite that links aephysics failed to build. The fix is Aether's codegen; the move to b37fae2 and Aether 0.835.0 waits for the release that carries it. aephysics f0bd6d6 does not build on 0.835.0 (E0303), so both pins go back, and aether-ui with them to dcc1bd48 (6890549f warns -Wformat-truncation in its GTK4 backend).
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.
The next slice of #825 (what a game's day asks of a figure): walking to a spot and stopping on it, facing a given way. It also turns on the spot by steps and stops on a footfall, the two locomotion defects going to a spot exposed (#827, #828).
locomotion.go_to(l, at, facing, running), witharrived,going_toandstop_going;set_inputends it too.Stopping on a footfall (#828). Distance Matching's aim (Paragon, GDC 2016): a move ends on its mark with its feet where they land.
ae3d.feetcarried the lifted foot 8 cm low over the ground to the idle's place. Going to a spot behind it, a toe slid 82 mm; now 8.4.Keeping its gait. The walk and run swap only
GAIT_BAND(0.15 m/s) past the middle of their speeds. Switched at the middle itself, a figure braking from a run changed clip every frame, each change a new blend, and a foot was flung up to its hips (18.3 m/s in a frame; 7.0 now).Turning on the spot by steps (#827), opt-in with
locomotion.set_turn_steps(l, true), for a figure onae3d.feet. This is procedural legs' plant-and-step.TURN_SPOT_RATE(2.5 rad/s, about a second and a quarter for a turn round).ae3d.feetsteps a standing figure's feet.ae3d.feet, for every figure:test_feet's carried foot caught it).STEP_PLACE) before it is set down, as a foot reaches its place before it lands. Carried the whole way, a turning figure's foot came down still going 13 mm a frame.Measured (
tests/test_go_to.ae, the box man onae3d.feet, to a spot 10 m off five ways):Every case faces the way asked to the degree, no bone goes faster than 7 m/s in the figure's frame, and its toes move under 5 mm in the 1.5 s after it arrives. #825's bar is 5 mm of toe slide a plant. Walking straight there meets it. Setting off and turning while walking (#827) and braking a run (#828) still slide a toe further, and the test holds each case to what it slides now until those are fixed.
Tested locally: on aephysics f0bd6d6 and Aether 0.834.0, main's: the motion gate (34 suites) plus
test_go_to,test_sit,test_lie,test_locomotion,test_characters_meetandtest_physicsall pass, 40 of 40. They passed 40 of 40 on aephysics b37fae2 and Aether 0.835.0 too, where all 252 programs compile without a warning at -O2.Dependencies: unchanged, held. This PR moved to aephysics b37fae2 and Aether 0.835.0, then went back.
@target("avx2")copies ofsatandcontact_solver_wide) into every x86 build. GCC on Win64 cannot realign the stack to 32 bytes, so a function with anf32x8local is an internal compiler error at -O0 (expand_one_stack_var_1, GCC 15.2 and 16.2 alike).-Wformat-truncationin its GTK4 backend (aether-ui#220), and the editor builds with warnings as errors.Plaza scorecard against main: 20, 24 and 28 walkers, seeds 1 to 8, 60 s each, on aephysics f0bd6d6 and Aether 0.834 so the comparison is this change alone. Over seeds 5 to 8 (the confirm run):
Seeds 1 to 4 lean the same way, a little less clearly. Splay is the one that goes up. The scorecard now splits it into walking and struck figures (
tools/plaza_showcase.ae), as it already did for knees and sinking. On the 18 seeds where both sides ran cleanly, walking splay is 1.07 s on main and 1.68 s on the branch (worse in 9, better in 6), out of about 26,000 walker-seconds. Struck figures' splay is 4.3 s against 6.5 s: those are ragdolls, which nothing here touches, struck at other moments because the walkers' paths changed. Eleven of that rerun's 48 runs failed, across six of its seed pairs, which are left out: ten could not start because the GPU was out of memory at the time (Vulkan init failed), and one stopped at 25 s. Every seed that ran in both batches gave the same numbers to the last digit, so the plaza is deterministic and the paired seeds compare fairly.Part of #825, #827, #828 and #790.