re(ui): why rest_plateau is right -- and last is right only for a transient

The shifted keyframe-time reading looked like it implied something
simple: the final pose is reached at a definite time and nothing follows,
so rest should just be the last keyframe and the plateau heuristic could
go. Tested by applying it to EVERY element:

  title              +0.9500 -> +0.6819   -0.2681
  main menu          +0.9460 -> +0.6416   -0.3044
  EXTRAS             +0.9440 -> +0.5745   -0.3695
  publisher splash   +0.9600 -> blank (zero variance, corr undefined)
  developer splash   +0.9643 -> blank

Refuted, and the failure supplies the model. A group is entry -> hold ->
exit, and the exit is the screen's DISMISSAL. While a screen is displayed
it has not reached its last keyframe; it is sitting at the hold. So
rest_plateau is the correct primary rule, and the last keyframe is the
post-exit state -- correct only once the screen is gone, which is why
applying it everywhere blanks the splashes.

This does not contradict the shifted reading. That reading says when each
pose is reached; it says nothing about the group being played to
completion while the screen is still up. The step between them was mine.

And it explains why last wins for the two plateau-less elements: an
element with no hold is a transient, it flashes and is over, and at any
settled moment it is gone -- which is its last keyframe. The draw capture
says the same independently: on the developer splash the _eff glows draw
on frames 94-115 and the logos on 116-211, so the glows are already
finished when the logos are up.

Three independent observables -- animation timing, static composites, and
the per-frame draw log -- now agree on one rule: plateau where there is
one, last keyframe where there is not.

METHOD: a blank render is a NaN correlation, not a low score, and that
NaN was the strongest form of the result; and when a model predicts
something the measurement refuses, suspect the step you supplied between
them.
This commit is contained in:
Sylpheed RE agent
2026-08-29 04:28:19 +00:00
parent 6a7c42366c
commit e63efabcfb
5 changed files with 95 additions and 0 deletions

View File

@@ -548,3 +548,10 @@ neighbourhood, not just the line.
fallback needs an element to be plateau-less **and** multi-keyframe; title,
main menu and `EXTRAS` reach it **zero** times, the two splashes once each.
[`ui-resting-pose.md`](structures/ui-resting-pose.md)
* "the shifted time reading implies rest = the last keyframe, so the plateau rule
can be dropped" → **mine, and refuted by measurement.** Applying it to every
element collapses all five screens (title 0.9500→0.6819, main menu
0.9460→0.6416, `EXTRAS` 0.9440→0.5745) and renders both splashes **blank**. A
group is entry → hold → exit and the exit is the screen's *dismissal*: a
displayed screen sits at the hold, not at its final pose.
[`ui-resting-pose.md`](structures/ui-resting-pose.md)