port: the oracle harness was nondeterministic and I quoted it for a dozen iterations
verify-capture's main_menu row reads 13.30 / 13.27 / 13.25 / 13.26 across runs this session while every other row is identical to the digit. I cited those numbers repeatedly, including in the rest() adjudication. Cause: the focus ring spins on time_units raw rather than the pose clamped by holding -- deliberate and correct, since the ring is the one thing on a settled screen that keeps moving -- so its angle at capture is set by the wall clock. extras is stable because nothing there spins. --loop-phase already existed and did not cover it: it pins the looping focus record phase, while the spin is a second free-running clock I guarded once and never connected. Extended loop_phase_units to pin the spin too, and verify-capture now passes --loop-phase=0 at all four render sites. The control matters because the drift was intermittent -- three unpinned runs gave 13.25, 13.26, 13.26, so three pinned runs agreeing would prove nothing. Phases 0/30/60/90 give 13.2583 / 13.1991 / 13.2637 / 13.2588: the pin is live and the 0.065 spread is the whole of the observed drift. Non-finding recorded so nobody mines it: phase 30 scoring lowest is not evidence about the ring's real phase -- 0.065 against a ~13.2 gamma floor is 200x too small. A margin only means something against the noise it sits on. No conclusion changes: the smallest margin any of them turned on was 0.14% differing area. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01N7FiFFFwbvG2uxdcEh8HyF
This commit is contained in:
@@ -641,7 +641,19 @@ func _draw_focus(element: Dictionary) -> void:
|
||||
# `time_units` raw, NOT the pose clamped by `holding`: a spinning
|
||||
# ring is the one thing on the settled main menu that keeps moving,
|
||||
# and the whole point of the finding is that it does not stop.
|
||||
rot = 360.0 * fposmod(time_units, period) / period
|
||||
#
|
||||
# 🔴 WHICH MADE THE ORACLE HARNESS NONDETERMINISTIC, and I quoted its
|
||||
# numbers for many iterations without noticing. `verify-capture`'s
|
||||
# `main_menu` row read RMSE 13.30 / 13.27 / 13.25 / 13.26 across
|
||||
# runs -- the ring's angle at the moment of capture -- while
|
||||
# `extras`, `title` and both splashes are identical to the digit.
|
||||
#
|
||||
# `loop_phase_units` already pins the LOOPING FOCUS RECORD phase for
|
||||
# the same reason; the spin is a second free-running clock and needs
|
||||
# the same pin. Negative still means free-running, which is what a
|
||||
# player gets. Only the harnesses pass it.
|
||||
var st: float = time_units if loop_phase_units < 0.0 else loop_phase_units
|
||||
rot = 360.0 * fposmod(st, period) / period
|
||||
_draw_quad(tex, placement(pose, pivot, tex.get_size()), modulate_of(pose),
|
||||
pivot, pos, rot)
|
||||
drawn.append(fe.get("id", ""))
|
||||
|
||||
Reference in New Issue
Block a user