"Chase camera using raw fixed-tick position causes model sawtooth jitter"
▸ SYMPTOM
The player model flickers/sawtooths side-to-side while running, but the terrain is stable. Worse on high-refresh monitors (120 Hz resolves the ramp-then-snap pattern). The jitter is lateral because it lies along the velocity vector while the camera faces the mouse. If the pivot's Z is smoothed but XY reads raw, the flicker is horizontal-only.
▸ CAUSE
The character root written in OnFixedUpdate is engine-interpolated per render frame, but a raw field like a stored position Vector3 is the 50 Hz staircase — it only updates at fixed-tick rate. The camera sampling this raw field per-frame disagrees with where the model actually renders by up to one tick of velocity (~5–15 cm at run speed), snapping back at each tick.
The near-model vs far-terrain distance asymmetry is why only the model appears to flicker — the terrain is too far away for the same sub-tick offset to be perceptible.
▸ FIX
Read chr.WorldPosition in the camera's per-frame hook instead of a raw stored field:
// BAD — raw fixed-tick staircase, causes sawtooth
var pivot = _storedFeetPosition; // updated in OnFixedUpdate
// GOOD — context-sensitive, returns interpolated position per-frame
var pivot = Character.WorldPosition;GameTransform getters are context-sensitive (IsInterpolating = !InsideChangeCallback && !Scene.IsFixedUpdate): per-frame reads return _interpolatedLocal (where the model renders), while OnFixedUpdate reads return the raw target. The same rule applies to rotation and scale — they interpolate in independent buffers.
This is the same interpolated-transform principle as the name-tag-follow fix: anything that needs to visually track a character per-frame must read the interpolated transform, not a raw snapshot.
▸ WHY IT WORKS
The engine's FixedUpdateInterpolation system smoothly interpolates WorldPosition between fixed ticks for render frames. Reading the interpolated getter gives the camera the exact position where the model is drawn that frame, eliminating the disagreement that causes the sawtooth.