Inspiration

Game teams need more than a terrain generator. World Machine, World Creator, and Gaia all stop at terrain. I wanted the whole world, not just the heightmap: terrain, climate, biomes, rivers, resources, cultures, settlements, states, routes, all one authored world. And I wanted to direct it with an AI agent, not click through a hundred menus.

What it does

Agentic Atlas turns a place name into a playable game world. The map is a spatial index over gameplay data. Terrain, climate, biomes, rivers, resources, cultures, beliefs, settlements, states, routes, and points of interest all live in one world. It is agent-native: it exposes an MCP tool surface, so any AI agent can pair with a live browser world, import real terrain, add simulation operators, generate the world systems, edit the geopolitics, and see the result in a live embedded viewport. The terrain and biomes sync straight into Unreal Engine, end to end.

How we built it

I built the Build Week work in one resumable Codex CLI thread with GPT-5.6. I gave it the product contract and the acceptance criteria. Codex read the repo, wrote each slice, added regression tests, ran typecheck and Biome, and commited the result itself. Every agent action has one Zod definition, shared by the browser API, the JSON-RPC relay, and the MCP tools, so nothing drifts. Workers own the durable world state in TypedArrays, and deck.gl and WebGL drive the map and the GPU terrain preview. GPT-5.6 reasoned the hard boundary work: GPU and worker parity, agent-safe JSON Schema, multi-session relay routing, the composite tools, real-world search and import, and the live widget.

Challenges we ran into

An agent opens a fresh MCP session on almost every call, so I route every call by a short pairing code. Each tool reaches the exact browser world it is paired to, and never falls back to someone else's. The agent tool dialect also needed schema adaptation without losing the full registry, so I built a curated 44-tool surface with composite tools and kept the complete MCP registry underneath. And the viewport had to be the real map, not a mock, so it is a live read-only deck.gl view embedded right in the agent.

Accomplishments that we're proud of

A place name becomes real terrain. Search finds the place, Atlas derives a safe capture frame, and keyless elevation tiles become live terrain. One run imported roughly 548 to 4,790 metres. The operators run live on the GPU, hydraulic erosion, fluvial valleys, sand, snow, relief, with the workers baking the durable state. A world graph re-derives rivers, climate, and biomes when the terrain changes, so nothing goes stale. The viewport in the agent is the real deck.gl map, not a picture. And the same world syncs into Unreal as landscape height and biome weights, verified in an editor.

What we learned

One contract everywhere is what made this work. A single Zod definition across the browser, the relay, and the MCP tools kept every agent action consistent and testable. And routing by pairing code instead of by session is the thing that lets a stateless agent reliably drive a live, stateful world.

What's next for Agentic Atlas

More operators and more world systems handed to the agent, deeper Unreal sync for rivers, splats, and foliage, and more layers like economy, history, and factions as first-class agent tools.

Built With

Share this project:

Updates