Skip to content
Andrew Voirol
Saturday, April 4, 2026dot-matrix-globe-build

Float32Array and 60fps: killing the jank

CanvasReactVisualization

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.

← Previous

Point cloud on a sphere: first render

Next →

The orchestration problem


Andrew Voirol

Builder, hacker, shipper. Currently leaving localhost.

Navigate

WorkThreadsBuilder's LogAboutContactRSS Feed

Connect

X / TwitterGitHubLinkedIn

© 2026 Andrew Voirol·Back to top ↑
✦Just one prompt away from figuring it all out.