The dots in 3d are certainly the best-looking solution of the ones they mention, but most likely also significantly slower than a texture-based approach. It makes their website extremely janky for me when scrolling, on an upper-midrange laptop.
This mostly depends on the graphics chip (and drivers, obviously). What I'm saying is that it shouldn't be necessary to have powerful graphics processing just in order to see a marketing website, but YMMV.
That laptop only has Intel GPU, albeit a good one (Iris 550, 800 GFlops).
> it shouldn't be necessary to have powerful graphics processing just in order to see a marketing website
I generally agree. If I would be making that web site, I would have tested on the slowest Intel GPU I have in this house, I think I still have a Windows tablet with Atom Z3735G somewhere in the attic. However, I’m 100% certain it’s technically possible to implement that particular thing in a way so it works even there.
One obvious improvement, merge all dots into a single immutable mesh, for mouse dragging effect displace them in vertex shader. Each dot needs 4 vertices, each vertex with XYZ relative to center of sphere, UV to apply round sprite texture, and one scalar random number for mouse drag displacements. They render 20k dots, rectangular sprites would need 80k vertices, with 6 floats per vertex that’s about 2MB of VRAM, and this way all dots will render in a single draw call. Possible to optimize further by passing less data per vertex (e.g. positions only need 2 floats for lat/lon, and texture coordinates only need 2 bits of data), and more so if WebGL supports geometry shaders in which case we only need to pass single vertex per dot without texture coordinates, and expand them into quads on GPU.
However, such low-level GPU shenanigans require skills most web developers probably don’t have.