Exercise 3: Why Renormalize Every Frame Even Though One Frame's Drift Is Invisible — Possible Solution ==================================================================== WHY ONE FRAME'S DRIFT REALLY IS NEGLIGIBLE ------------------------------ This chapter's own verified experiment showed the drift accumulates gradually - after 200,000 compositions, the quaternion's magnitude had moved to 1.000000000009458, an extremely tiny deviation from the exact value of 1. After just a single frame's worth of composition (one multiplication instead of 200,000), the drift would be smaller still - genuinely far too small to produce any visible difference in a rendered frame, exactly as the question states. WHY RENORMALIZING EVERY FRAME IS STILL THE RIGHT DEFAULT ------------------------------ The key insight is that this chapter's own verified drift did not happen from one single operation - it accumulated steadily over 200,000 repeated compositions, the same way Chapter 1's own million-addition floating-point example showed error compounding with the number of operations performed, not staying fixed. A game object that spins or reorients continuously over a long play session (which could easily involve many hundreds of thousands or millions of frame updates over an extended session) would eventually accumulate drift on the same order this chapter directly measured, if the drift is never corrected. Renormalizing every single frame resets the accumulated error back down to a tiny baseline before it has any chance to compound further, keeping the total drift bounded indefinitely regardless of how long the object has been running, rather than letting it grow without limit over an arbitrarily long session. WHY THE COST OF DOING SO IS TRIVIAL ------------------------------ This chapter also verified specifically how cheap the fix is - a single square root and four divisions per quaternion, reducing the error by roughly 500x in the chapter's own worked example. Given how small this cost is (compared to, say, the substantially more involved process of re-orthonormalizing a full rotation matrix), there is essentially no performance reason to skip it, even though skipping it for any single individual frame would be completely unnoticeable. WHY THIS WORKS AS AN ANSWER ------------------------------ The answer acknowledges that any single frame's drift is genuinely negligible (rather than overstating the immediate risk), but explains why a policy of running that negligible operation every frame is still the correct engineering default, by connecting the cheap fix's cost to the chapter's own demonstrated fact that error compounds over many repeated operations rather than staying fixed.