perf: atlas idle-frame scheduling, cached colors, smooth transitions, halo sprites
- idle-frame optimization: rAF loop stops when not animating (GPU sleeps when idle)
- cache colors per frame: theme read once, precomputed rgba lookup eliminates
getColors/isDark/hexToRgba from hot path
- extend nebula halos to all zoom levels: continuous alpha curve instead of
hard cutoff at zoom 4 (25% floor at zoom 10)
- smooth zoom transitions: labels cross-fade coarse↔fine↔titles, connections
fade in over zoom 2.5–3.5 instead of hard pop at zoom 3
- cache nebula halo sprites: pre-rendered offscreen canvases keyed by
(platform, radiusBucket), drawImage instead of createRadialGradient per frame
- reuse connection line buffers: pre-allocated Float32Arrays instead of 18
fresh arrays + thousands of push() calls per frame
- quantize sprite sizes: snap radius to 0.5px steps, reduces sprite rebuilds
during smooth zoom from ~60/s to ~4-5/s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>