Jun 28, 2026 · 6 min read

Rendering millions of points in the browser with deck.gl

Abstract illustration depicting complex digital neural networks and data flow

On the mapping platforms I've built, the hard part is rarely the data pipeline — it's the last hop: getting millions of features onto a screen at 60fps. WebGL-based rendering with deck.gl is what made that tractable.

The core idea is to hand the GPU flat typed arrays and let it do the work per-vertex, instead of touching the DOM per feature. Once your data is in that shape, a ScatterplotLayer or a custom layer can draw enormous datasets smoothly.

The tricks that mattered

  • Aggregate before you paint. Screen-space binning and hexagon aggregation turn "a million points" into "a few thousand cells" that read better anyway.
  • Cull aggressively. Nothing outside the viewport, and nothing below a zoom threshold, ever reaches a draw call.
  • Move projection to the GPU. Doing coordinate math in shaders keeps the main thread free for interaction.

The lesson that generalizes: performance at scale is usually a design decision about what not to draw, made long before you reach for a profiler.