The globe was stuttering on every rotation tick — garbage collection pauses. Switched the point storage from a plain array of objects to a flat Float32Array. No more GC pressure during animation. Also made the canvas DPR-aware so retina screens get crisp dots instead of blurry upscaled ones. The render loop runs via requestAnimationFrame now with proper cleanup on unmount. Consistent 60fps with 8,000 points. The difference between "demo" and "ship it" is always the boring performance work nobody sees.