Rejecting the sender-stall theory was right: a gap of over a second is a
death pause, not a tick. The remaining symptom is described precisely - a
RHYTHMIC tick as a pod moves past the camera - and rhythm is the clue.
A fixed period points at a cadence in our own code, because the network
has no period.
There are at least four candidates and they are only distinguishable by
their interval: the 20ms physics step, the 30ms update rate, the sawtooth
in the dead reckoner blend (percent climbs from 0.29 to 0.87 across each
update interval as lastPerformance approaches nextUpdate, then resets),
and the twenty-step quaternion renormalisation in Mover::BeginStep, which
falls at 0.4s - a few times a second.
So measure the interval rather than guess among them. Per frame, take the
angle the traced pod subtends at the eye, flag the frames whose angular
step is far above the running mean, and report the time BETWEEN those
events. Angle rather than distance because a pod crossing the view moves
far across the screen while barely changing range, which is the geometry
the tick was reported in.
Both samples come from one frame, marked by the eye's own frame counter
rather than assumed from draw order, and the renderer reports on the same
pod the mover trace describes - MoverTracedEntity now exposes that latch.
Two traces about two different pods, or two different frames, would
compare nothing; that mistake has already cost this investigation three
wrong answers.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>