The Problem The Geospatial API lets developers build AR experiences tied to real-world locations, anchored to a detailed 3D model of the world where buildings and bus shelters, statues and storefronts are captured with striking precision. We needed a way to visualize this technology so that developers at Google I/O could understand the vast scale of the data unlocked by this API.
The Constraint We wanted to show off the beauty and complexity of this digitized Earth — billions upon billions of data points. But our normal animation software wasn't made to handle billions of data points. We needed to build a new graphics pipeline to make the invisible visible.
The Decisions Show the real data, not a metaphor. While we could have shown a fictional, stylized motion graphics version of the point clouds we decided instead to drive the animation with real Google Earth geometry and real Geospatial API point cloud data. We wanted to make the point that this is not just vaporware; this is real data that your app can tap into today.
Let the camera carry the narrative. By starting with the whole Earth in the frame and then doing a camera flythrough down through the clouds and straight into the heart of San Francisco we were able to demonstrate the scale of the API data at both ends of the spectrum: it spans the entire globe, and it's dense enough to resolve details as small as trees and bus shelters.
Stream only what the camera sees. Loading the entire Earth would instantly crash even the beefiest computer, so we pulled just the city tiles the virtual camera could see, through the Cesium plugin. It reads as a technical detail; it was really the decision that made everything above possible.
Process — what it took
For the opening shot, the first thing we needed to nail down was the actual camera move. Getting that right was tricky: we needed to smoothly decelerate the camera from approximately asteroid speed down airplane speed once we entered the city of San Francisco without it feeling like an abrupt stop. We iterated in Unreal using low-res geometry from Google Earth.
Once we had locked our camera move, we brought in the full resolution Google Earth geometry and then used the Cesium plugin to stream just the point-cloud data necessary to fill the camera's field of view. Any more than that and our pipeline would choke on too much data.
My Role I provided creative direction and oversight for our team of animators, designers and copywriters. I was also hands-on filming the live-action sequences and using Unreal Engine to animate the intro city fly-through using actual point-cloud data provided by Google.
Outcome Our video and animations stole the show at the Google I/O Developer Keynote and our Hook team learned a ton about incorporating Unreal Engine into our production pipeline.
Links: I go deeper into our Unreal Engine workflow in this blog post for Hook