Most campaign sites track progress with a bar. It fills up from left to right. Everyone claps politely.
We were asked to show a million miles of greener driving spread across Vietnam, and a progress bar felt like a waste of a perfectly good country.
So we built the country.
Here it is. Not a video, not a screen recording — the actual scene. Drag it, spin it, zoom in on the mountains. Then grab the slider along the bottom and watch the forests come in.
Take your time. The rest of this will still be here.
A Progress Bar Is a Missed Opportunity
Here is the thing about geography in marketing: brands sit on top of it constantly and almost never use it.
Your customers are somewhere. Your stores are somewhere. Your campaign is winning in Hanoi and doing nothing in Cần Thơ, and somebody has that fact in a spreadsheet, in a column, next to another column. A country is the most intuitive chart ever invented and we keep flattening it into bars.
The moment you put the actual place on screen, three things happen without you asking:
The usual objection is that a map is decoration. It is not. It is the interface.
What You Are Actually Dragging Around
The Vietnam in that window is a real elevation model, not an illustration of one. Fansipan is tall because Fansipan is tall.
On a capable laptop it renders as 58,296 triangles of terrain. The roads and rivers threaded across it come from OpenStreetMap data, which is why the highway network actually goes where the highway network goes, and why there is an attribution line in the corner of the map — OSM data is free to use and it is not free to pretend you made it.

Everything ships inside one self-contained HTML file. The terrain mesh is baked into it as a binary blob, the fonts are embedded, the models are embedded. There is no tile server to pay for, no API key to rotate, nothing to break in eighteen months when a vendor changes their pricing page. You can put the file on a USB stick and it still works on a plane.
That last part is not a gimmick. It is how a client reviews a pitch in a meeting room with hostile wi-fi.
Making a Country Recognisable Is Not About Accuracy
This is the part that surprised us the first time.
You can model a coastline to the metre and still have people squint at it. Recognition does not come from precision, it comes from the four or five places a person actually has feelings about. So the map names Fansipan, Hạ Long Bay, Huế, and the Mekong Delta, and lets the rest be beautiful and anonymous.
Same logic for the props. The trees are not botanically correct. There is a pagoda roof up north, a few houses on stilts, a cluster of buildings where a city should be — all low-poly, all cheap to draw, all doing an enormous amount of work convincing you that you are looking at somewhere rather than something.
A map that is 100% accurate and 0% legible is a GIS export. We were not asked for a GIS export.
The Slider Is Where the Campaign Lives
Everything above is scenery. The mechanic is the slider.
Drag it and the country greens: bare hills fill with forest, colour shifts, the counter climbs toward a million. Drop it back to zero and the place goes pale and empty. That is the entire campaign narrative in one gesture, and it takes about four seconds to understand with no copy at all.

We keep coming back to this pattern because it inverts the usual relationship. Normally the audience reads about the campaign's progress. Here they operate it, which means they have to find out what the maximum looks like. Everyone pushes the slider to the end. Everyone.
Then You Add the Party Tricks
Once a country is on screen and running at a decent frame rate, adding spectacle is almost free, so we did not hold back:
None of these are technically hard once the scene exists. That is rather the point. The expensive part is the country; the set pieces are a weekend.

Making 16 MB Behave Itself
Now the unglamorous half, because a map nobody can load is a map nobody has seen.
That single file is about 16 MB, and most of it is terrain. Some of what we do about that:
What a Map Like This Cannot Do
Fair is fair.
It is not live GIS. The data in the demo is simulated — that counter is a slider, not a database, and a real campaign needs a backend behind it with actual trips, actual identities, and actual anti-fraud before anyone claims a real number in public.
It is not a routing engine either. It will not tell you the fastest way from Huế to Đà Nẵng. It draws roads; it does not think about them.
The terrain is stylised. Real elevation, dramatised — heights are exaggerated because a geographically honest Vietnam viewed from orbit is quite flat and quite boring.
And it is a heavy page. Gorgeous, but heavy. Anything shipped to a broad mobile audience gets a lighter build, a lower tier and a 2D fallback, which is a real trade-off rather than a footnote.
Maps We Can Build for You
If your campaign has a where in it, it probably wants a map. Some shapes we like:
We build them in Three.js, with real elevation data, real OpenStreetMap geometry, and models made in Blender — the same pipeline we describe in our campaign proposal process. If you would rather see what else we do with WebGL, there is a whole studio's worth here and a catalogue of branded games.
Or skip the reading and send us a brief. If it has a country in it, we are already interested.
The Vietnam map is a concept prototype designed and built by Code Crush for a Toyota Vietnam campaign pitch. Mileage figures, rewards and progress in the demo are illustrative. Road and river geometry © OpenStreetMap contributors.
Tagged with



