Loon recently achieved an important milestone: Our balloons have flown over 1 million hours in Earth’s stratosphere. In all of those hours aloft, Loon’s balloons have traveled nearly 40 million kilometers — enough to make 100 trips to the moon or circle the Earth 1,000 times.
Our balloons navigate by drifting on wind currents between 50,000 and 70,000 feet. We’ve created what is essentially a stratospheric submarine that utilizes the sun, the air, some pretty cool machines, and a collection of smart algorithms. A solar-powered pump* adds or subtracts air from the balloon. That air makes the balloon heavier or lighter, allowing it to ascend or descend in altitude. Rather than fight against the wind at one altitude, the balloon moves up or down until it finds a favorable wind current. By repeating this thousands of times over the lifespan of a balloon, we can drift on the winds to get to locations around the world.
Achieving this stratospheric dance requires processing large amounts of data, including wind forecasts from global numerical weather models and real-time measurements from our fleet of balloons. The prior information gathered over our 40 million kilometers of flight is the equivalent of an atmospheric Rosetta Stone that shows us how to fuse together these two sources of data and make educated guesses about what movements the balloons should make.
Automation software does what humans can’t. It dives deep into wind forecast data to build maps through the changing stratospheric winds for our balloons. (a mesmerizing time-lapse of one of these maps is shown below). Automation then provides the minute-by-minute attention needed to process every observation from every balloon so we can constantly make the best guess at how to follow the map.
This superhuman data processing and attention that only software automation can provide is what makes efficient, long journeys through the stratosphere possible. While we have a dedicated team of flight engineers that monitor every balloon 24/7/365, it is this system, not humans, that directs the movements of Loon’s balloons. It makes the decisions necessary to get a balloon around the world and keep it above a desired location for months at a time.
Over 1 million hours of flight, we’ve been surprised by some of the clever and complex navigational behaviors to emerge from this system. These are not prescribed behaviors or ones directed by the engineers building it. Instead, they emerged as the system sought to maximize the navigational efficiency of the Loon fleet.
When X’s Astro Teller outlined Loon’s navigation journey a few years ago, he used a nautical metaphor for how balloons sail the winds. The similarities go beyond literary device.
When human operators remotely managed our system (which happened often in the early days of Loon) they tended to choose paths that followed, as much as possible, a straight line. That’s an intuitive instinct given what we’ve all been taught is the fastest way between two points, and humans naturally try to extend this intuition when looking at balloon positions on a map.
With its higher information processing capacity our navigation system looks both at the positions on the map and the 4D wind vector field**, which allows it to get more creative. As a result we notice the balloons sometimes fly a zig-zag pattern in which they stray from their course, in some cases almost reversing themselves, before resuming in the desired direction. A recent example looks like this:
People familiar with sailing might recognize this technique as tacking, a maneuver used when a desired course is into the wind. By changing the orientation of a vessel in relation to the wind, a sailor can make progress despite unfavorable conditions using this technique.
Given that balloons and sail boats are both wind-driven vehicles and that tacking has been employed by sailors for thousands of years, it shouldn’t be surprising that this could be a useful technique. But it was surprising to us the first time we saw the system begin to execute this maneuver — so surprising, in fact, that we manually over-rode the system.
Even as the creator of this system — without the benefit of the picture above and seeing only that the navigation system had zigged where a human would have zagged — I had to stare for a while at the strategy the algorithm was trying to execute. But we quickly realized we’d been outsmarted when the first balloon allowed to fully execute this technique set a flight time record from Puerto Rico to Peru. I had never simultaneously felt smarter and dumber at the same time.
In late 2017, Loon’s balloons were in the midst of providing emergency connectivity service to Puerto Rico following Hurricane Maria. Early one morning as I drank coffee and scanned the system that shows the real-time location of every balloon in our fleet, I found something that didn’t look right. A group of four balloons had parked themselves south of Puerto Rico and were in a holding pattern over a patch of ocean.
Normally, balloons that had finished a round of service above the island would float southwest, cross South America and eventually loop back to Puerto Rico to resume serving those needing connectivity.
But these four balloons were loitering where there were no people. I thought maybe there had been a configuration error in what we’d tasked the balloons to do, given that stratospheric Internet balloons don’t take vacation days. Continuing to fail to find what could be wrong, I began to search for what might be right. Diving deep into the forecasts made it clear I had missed something. The winds, as it turned out, were expected to change in the coming days. The new winds would allow the balloons to simply drift straight back toward Puerto Rico, rather than taking the longer, circular route through South America. The algorithm guessed it would be quicker to wait. And it was right: The winds changed and the balloons returned to Puerto Rico in less time.
These days we often have balloons strategically loitering or drifting somewhere at a stroll rather than a sprint. We even added additional algorithms to double down on this behavior to help enhance the consistency of our service.
Once we navigate somewhere we want to stay there for as long as possible. Keeping the balloons over a place that needs connectivity seems like an obvious goal, but it wasn’t obvious to me when I started working on Loon. (You can read more about that here.) Today, staying above a region is an integral part of our business.
Imagine you want a balloon to remain over a certain region but it needs to keep moving on the winds. The most obvious choice would be to fly a circular pattern. It is good that we didn’t hardcode this behavior (i.e., specify it explicitly), because from the very beginning our navigation system had better ideas.
The very first time we tested our ability to stay in one place using our new automated algorithm, the balloon immediately began flying an unexpected pattern. Rather than circle the area, the balloon flew in a figure 8 pattern. And not just once, it did it all day. Every previous LTE test was over in a few hours as the balloon drifted away. But this time our team testing the LTE connection below ran out of battery on their phones and laptops as the balloon stuck around overnight.
Figure 8s aren’t the only pattern to emerge. In some wind conditions we see a back-and-forth pattern, like a ball at a tennis match. Other times we see balloons fly to a specific point and then slowly drift away, only to fly right back. In fact, the one behavior that we rarely see is a circular pattern, which is the one I am thankful I never programmed into the system.
Is this Balloon-based AI?
I often ask myself if artificial intelligence is required to drift this efficiently through the stratosphere. As someone who has worked so much of my life in AI, it’s embarrassing how much time I spend asking myself what it is and …is this it?
Many people characterize AI by the type of technology (deep neural network!) or some arbitrary ability (the AI can convince a human it is a person). Others simply say they know it when they see it***. My non-definitive criteria is simpler: I think AI is when a system uses behaviors to solve a problem in a way you didn’t originally envision.
By my own definition these emergent behaviors from Loon’s navigation system are a basic AI, but I’m still unsure. At the end of the day, perhaps it’s less important to label it and more important to focus on the result. AI or not, this system works to make something really meaningful possible. Beyond being interesting and fun, this technology is a key enabler to navigating our balloons above the billions of people that still need connectivity.
*We’ve called various versions Hans and Franz because, of course, they’ll pump you up.
**3 spatial dimensions of winds, varying in time. Don’t forget that on top of the 4D best guess there is also a confidence dimension as well as we are more certain that some parts of that guess to what the true vector field is are better than others.
***This is the Justice Potter Stewart’s criteria of defining AI. Personally, I challenge this view because if I told you in 1995 that a hyper-intelligent computer would be able to give you directions to anywhere on Earth you’d be certain it was an AI breakthrough, but these days Google Maps is simply considered a good app with some route planning algorithms backing it.