I can't help but roll my eyes whenever I see more WebGL visualizations from Uber. I had interviewed there maybe a year ago for the visualizations team, but didn't get an offer because I "had too much WebGL experience and not enough d3 experience." I think this is now the second or third webgl based library since released by Uber.
About a year ago would have been around the time Twitter's head of visualization joined Uber to become Uber's head of visualization. The team has grown massively since he joined. You should probably apply again.
Their shader is doing software 64 bit float emulation, including trignometric functions.
That city graphic is really precise.
(edit: it looks like the 64 bit math is used only for the map projection part of the shader... so it's not quite as ridiculous as it might seem, my haswell system is limited by CPU, not by vertex shader performance)
What should I google to find out more on this topic? Why do they need double precision if they aren't doing computation? Is it actually visible to the human eye?
They are feeding in lat/long coordinates to the shader, and then doing the map projection there. Effectively they want lots of precision, but also the ability to represent coordinates anywhere in the world, in their shader. The alternative is to precompute the projection before putting it into the shader.
The examples are pretty, but all of them are basically just population density maps[1]. I'm not sure what additional understanding I can take away from the examples.
You got some of it, pretty is part of the point here. You can do nicer looking things with WebGL than with an HTML canvas.
High performance and interactivity is another side of what to look for here. Spend some time rotating and zooming these examples to see the kinds of interactions you don't get in other data visualizations. You can (potentially) visualize a lot more data at interactive rates with a WebGL view than you can with other techniques.
The laying/compositing tech is a third piece of what is interesting here, allowing different data slices to be rendered and included separately. This is useful as it's common to put everything in single WebGL view for ease of implementation initially, but can get complicated and may not scale as well as this layering approach.