God's Eye View in 3D: the free Cesium ion route that works from Europe
Google blocks its lifelike 3D city maps for new projects billed in the European Economic Area. We tried Cesium ion instead, in God's Eye View, from the Netherlands. It was free and it worked well.
Google's lifelike 3D maps of cities are called Photorealistic 3D Tiles. In Europe, you often cannot get them straight from Google anymore. That is the case for new Google Maps projects paid through a billing account in the European Economic Area (EEA). For those projects, Google's map service answers with a 403 error, which means "not allowed". The same happens to older projects once they are changed.
So we tried another route: Cesium ion. We tested it from the Netherlands on 17 September 2026. In our six test runs, the 3D view was ready in about six seconds. Our frame counter stayed at 60 frames per second. We paid nothing.
This follows our first look at God's Eye View. There, we installed it without any API key.
Why is the direct Google route blocked in Europe?
God's Eye View can load Google's 3D tiles in two ways. You can use your own Google Maps key, or go through Cesium ion. The README, the project's main instruction page, calls the Google key the option you pay for per use. It needs billing turned on.
That route is now blocked if your Google Cloud billing account has an address in the European Economic Area. Where you live does not matter. What matters is where the project is billed.
Google says so itself. Its notice for European Economic Area customers covers projects made after 8 July 2025 with an EEA billing address. For those, the map service "will throw a 403 HTTP error" when you ask for the 3D tiles. The same goes for older projects that are no longer in what Google calls the Unmodified State. In other words: older projects that have been changed. Google suggests its own 3D Maps product instead. That is a different technology, and God's Eye View does not use it.
We did not make a Google key to see the error ourselves. We did not need to: this article is about the route that works. Without it, the app shows you this flat satellite view.
The free route: a Cesium ion Community account
Cesium is the company behind CesiumJS. That is the free, open-source tool God's Eye View uses to draw its globe. Cesium also runs an online service called Cesium ion. It gives access to Google's 3D tiles, and even the free plan includes them.
| Plan | Price | Google 3D limit | Allowed use |
|---|---|---|---|
| Community | $0 | 1,000 root tiles a month | Personal projects that make no money, trying it out for a company or government, unpaid education |
| Commercial | $149 a month (one person) | 5,000 root tiles a month | Commercial use |
That is how Cesium put it on its pricing page on 17 September 2026. The page does not say what happens after 1,000. In late August, a user reported from Prague that this route works from Europe. The makers credited that report in the 0.1.0 release notes. The current code loads the 3D tiles from Cesium ion when a token is set.
Setting it up: four steps, two small snags
The whole setup took about ten minutes. Most of that was making the account.
- Make a free account at cesium.com/ion.
- Open the Access Tokens page and copy the Default Token. A token is a long code that works like a key. This one starts with "eyJ".
- In the Asset Depot, add Google Photorealistic 3D Tiles to My Assets.
- In God's Eye View, click POWER UP in the bottom-right corner. Paste the token in the Cesium ion field and click Save keys.
The app saved the token in a file on our computer that Git ignores. Git is the tool that tracks code changes, so the token stays out of shared code. The app's server restarted itself twice within two seconds. We did not have to restart anything. The label in the corner went from "8 keys waiting" to "7 keys waiting".
We hit two snags. First, the token page is easy to miss. We first ended up on a developer page for OAuth apps, a kind of login for apps. Only then did we find Access Tokens in the menu at the top. Second, the POWER UP panel sells the key short. It describes Cesium ion as "Bing imagery map stacks + world terrain". It never says that the token also unlocks Google's 3D cities. The README does.
One warning from us, not from the makers: never paste the token in a chat, a screenshot or public code. It is made to be used from a browser, so the damage would stay within your free amount. But it is still yours.
How fast was it?
We loaded three places in both map types. We used the same Windows 11 laptop as in our first article: an Intel Core Ultra X7 358H with its built-in Intel Arc B390 graphics chip (GPU) and 31 GB of memory (RAM). Chrome ran without a visible window, at 1600 by 900 pixels, on the real graphics chip.
"Ready" in the table below means: the time from loading the page until there had been no network traffic for three seconds. Frames per second show how smoothly the picture moves. Requests are the number of times the page asked a server for data.
| Place | Map | Ready after | Frames per second | Requests |
|---|---|---|---|---|
| Amsterdam, Central Station | Google 3D via Cesium ion | 5.8 s | 60 | 545 |
| Amsterdam, Central Station | Esri satellite (no key) | 6.8 s | 60 | 866 |
| Rotterdam, Noordereiland | Google 3D via Cesium ion | 5.0 s | 60 | 656 |
| Rotterdam, Noordereiland | Esri satellite (no key) | 6.7 s | 60 | 959 |
| Austin, State Capitol | Google 3D via Cesium ion | 5.7 s | 60 | 803 |
| Austin, State Capitol | Esri satellite (no key) | 6.7 s | 60 | 995 |
These six runs were on one laptop, one internet connection and Chrome 152. We noticed three things.
The 3D view was not slower than the flat one. In every pair, it was ready one to two seconds sooner, with fewer requests. But each flat-map run came right after the 3D run of the same place, in the same browser session. So see the gap as a hint, not a proper speed test. Also, "ready" means the network went quiet. That does not mean every tile was sharp, as Rotterdam shows below.
The picture stayed at 60 frames per second in all six runs. We counted the browser's frames for four seconds per view. That shows the page kept up with the screen while the camera stood still. It does not show how smooth it is while you fly around.
And there was not a single error. No 403, no block for our region, no VPN needed.
In 3D mode, the tiles come straight from Google's own servers at tile.googleapis.com. Cesium only starts the session. We counted two requests to its API, its connection for programs, and one to its asset server per page load.
What does it look like, and where does it fall short?
Amsterdam and Austin loaded sharp from edge to edge. In Amsterdam, you see Central Station, the Damrak and the church with the dome to the west of it, all in 3D. In Austin, the Capitol and the towers around it rise up from the ground.
Rotterdam was different. The middle of the picture was sharp, with the red Willemsbrug and the old lift bridge De Hef. But near the right and top edges, the tiles stayed rough and blocky. That stayed the same in a second try, where we waited nine seconds after the network went quiet. We cannot say what caused it. It could be Google's data for that area, the app's detail settings, or our browser without a window. We can only say it happened, and you can see it in the screenshot.
The credit line in the bottom-left corner changes too. In 3D it says "Cesium ion, Upgrade for commercial use, Google Maps, Data attribution". The project's own documents say that credit must stay visible. They say the app keeps it on screen even in its clean-view and recording modes. We did not test those modes.
What does the free limit really mean?
Cesium counts the free plan in "root tiles". That sounds technical, so we watched the network traffic. Every page load made exactly one request for Google's root tileset file: the starting file for the 3D map. Everything after it, hundreds of tile downloads, used that one session. Google's billing documentation says one root request allows up to three hours of drawing the map.
| How you use it | Root requests a month | Within the free 1,000? |
|---|---|---|
| One session every evening | about 30 | Yes, with room to spare |
| Five reloads a day while trying things out | about 150 | Yes |
| Ten people sharing one token, five loads a day each | about 1,500 | No |
So 1,000 a month is about 1,000 times opening or reloading the app, not 1,000 tiles. For one person, that is plenty.
One thing to know: with the token set, the app also made one root request when we chose the flat Esri map. On top of that, it made 61 to 97 requests to Google's tile server. If Cesium counts that the way we think, every session uses up part of the limit, even if you never look at the 3D cities. That is what we saw in the network traffic. Cesium has not confirmed it.
In flat mode, we also saw hundreds of requests to Cesium's asset server. Those did not happen before we added the token. The most likely reason is Cesium's world terrain, the shape of the land, which the POWER UP panel says the token unlocks. But we did not look at those requests more closely.
The rules matter more than the number. Cesium's free plan covers personal projects that make no money. It also covers trying it out for a company or government, "such as evaluating whether ion meets your needs", and unpaid education. If your work will be used outside your own organisation, Cesium asks you to contact them about a licence. Read Cesium's plan conditions and compare them with your own plans. This is not legal advice about licences.
Our verdict
For projects billed in the European Economic Area, Cesium ion is the known 3D route that is still open. In our test, it worked well. Ten minutes of setup, no credit card, and the 3D cities ran smoothly on our laptop. Did you follow our install without keys? Then adding the Cesium ion token is the first upgrade we would make, before any other key.
Keep three things in mind. The free plan sets conditions on commercial use. The limit is counted per session, and probably also when you stay on the flat map. And the 3D quality is not the same everywhere: Amsterdam was perfect, parts of Rotterdam were not.
Next in this series: the data licences behind God's Eye View, and what "MIT licensed" does and does not let you do with it.
Questions people ask
What is Cesium ion?
Cesium ion is an online service from Cesium, the company behind CesiumJS. It gives access to Google's lifelike 3D city maps, even on the free plan. In our test from the Netherlands on 17 September 2026, it worked in God's Eye View without a single error.
Is CesiumJS free?
Yes. CesiumJS is a free, open-source tool for drawing 3D globes. God's Eye View uses it to draw its globe. Cesium's online service, Cesium ion, is a separate thing with a free plan and a paid plan.
How much does Cesium cost?
Cesium ion's free Community plan costs $0, with 1,000 root tiles a month for Google's 3D maps. The Commercial plan costs $149 a month for one person, with 5,000. In our test, one root tile meant about one page load of the app. These are the prices from Cesium's pricing page on 17 September 2026.
What are Google 3D tiles?
They are Google's lifelike 3D maps of cities, called Photorealistic 3D Tiles. An app first loads one starting file, then downloads hundreds of small tiles for the view. In our test, Amsterdam and Austin looked sharp from edge to edge, but parts of Rotterdam stayed blocky.
Are Google Maps tiles free?
Not directly. Google's own route needs a key that you pay for per use, with billing turned on. In Europe, new projects billed there even get a "not allowed" error. A free Cesium ion account gives you Google's 3D tiles for $0, up to 1,000 root tiles a month.
How we checked
We read Google's notice "Map Tiles API adjustments for EEA customers", Cesium ion's pricing page and the CesiumJS documentation. We also read God's Eye View's README, release notes, code (src/maps/google3d.js, src/sharelink.js) and user report #71. We read all of them on 16 and 17 September 2026. Rules and prices can change.
We made the Cesium ion account, set it up and took our measurements on 17 September 2026. We used the laptop described above and commit 531ef52, one saved version of the code. We used Chrome 152 with a fresh browser profile for each run of our script. Our script loads each view and waits for the network to go quiet. Then it counts the frames for four seconds and writes down every request to outside servers. These are things we saw in six runs on one laptop and one connection. It was not a proper speed test.
We made the screenshots ourselves on 17 September 2026. We only changed their size. The comparison images are the exception: they put two of our screenshots side by side. We took the image credits in the captions from the app's Data attribution panel for each view, on the same day.
Updated 17 September 2026. We added the data providers' credits to every caption. We also made our statements about Europe more exact: they apply to projects with an EEA billing account. We added Cesium's own words about use for trying it out. And we limited our conclusions about speed to our six test runs.
This review only covers the free Cesium ion route. It does not cover the direct Google route, what happens once the monthly limit is used up, or any other key.
Update, 19 October 2026: we added our own diagram to a section that did not have an image yet. It shows what this article already says. No facts changed.