Text to 3D Scene: How One Prompt Becomes a Whole Location

Text-to-3D usually means one object at a time. Generating a whole scene — roads, buildings, terrain, light — is a different problem with different answers.

A town with streets, crosswalks, brick apartment blocks and cottages, built by an agent in Cuberta

Type "a red sports car" into a text-to-3D tool and you get a red sports car. Type "a small coastal town at sunset, with a harbour and a road up the hill" and most tools give you a lumpy blob that vaguely suggests buildings. The gap between those two results is not a matter of model quality. They are different problems.

Two different problems wearing the same name

Object generation is a reconstruction task. The model has seen a great many chairs and cars, it has a strong prior for what they look like from every angle, and its job is to produce one coherent shape with a texture wrapped around it. A few seconds of GPU time, one mesh, done.

Scene generation is a composition task. A town is not one shape; it is a few hundred shapes in a specific arrangement, plus the rules that make the arrangement read as a town — roads that meet at junctions rather than crossing through each other, buildings that face the street, pavements that follow the kerb, lamps at plausible intervals, a skybox and a sun angle that agree with the shadows. Almost none of that is geometry. It is decisions about geometry.

Ask a single generative model to do all of it in one pass and you are asking it to hold hundreds of interdependent decisions in one forward pass. That is why the output looks melted.

What a scene needs that an object does not

Layout before geometry

Every convincing environment starts as a plan, not a mesh. Where does the main road run? What blocks does it cut the ground into? Which of those blocks are residential and which are commercial? A tool that resolves the layout first and only then builds geometry into it will produce something walkable. A tool that generates geometry and hopes a layout emerges will not.

Consistency across hundreds of parts

Once you have four hundred objects, consistency stops being a nice-to-have. Every building needs the same floor height convention or the rooflines look drunk. Every kerb needs the same profile or the street reads as broken. Every material needs to come from the same small palette or the town looks like a sample library. Humans enforce this with kits and style guides. Software has to enforce it with constraints.

Scale that survives an engine import

A generated object can be any size; you scale it on import and move on. A generated location cannot. If the doors are 1.6 m and the pavements are 8 m wide, your character controller will feel wrong and no amount of scaling fixes it, because the error is in the ratios rather than the units. Scenes have to be built in real-world metres from the start.

Three ways people generate scenes from text

One mesh for the whole scene

The simplest approach: treat the location as one enormous object and hand it to an object generator. It is fast and it demos well from a distance. It falls apart the moment you walk into it — no separable objects, no reusable materials, no collision worth the name, and a triangle budget spent on things you cannot see. Useful for a backdrop. Not useful for a level.

Retrieval and placement

Pull assets from a library and place them procedurally. This is what most "AI city generator" tools do, and it is genuinely good at what it does: the individual pieces are clean, because a human modelled them, and placement rules keep the arrangement sane. The limit is the library. Ask for something the library does not contain and you get the nearest neighbour, which is how you end up with a Mediterranean fishing village made of American suburban houses.

An agent driving a real editor

The third approach gives an AI agent the same tools a level designer would use — draw a road network, subdivide blocks, place a building of these dimensions with this facade, scatter trees inside this polygon, set the sun to this angle — and lets it work in steps. It reads the scene back after each step and corrects itself, the same way a person alt-tabs between the viewport and their plan.

This is slower per scene than a single-pass generator, and it needs a real editor underneath rather than a web form. In exchange, everything it makes is an actual object you can select, move, delete and export, and the reasoning happens where you can watch it and interrupt it. Cuberta is built around this approach: the editor exposes location-level tools over the Model Context Protocol, and any MCP client — Claude Code among them — can drive them.

What to ask of a text-to-3D scene tool

  • Can I select one thing? If the output is a single mesh, it is a picture, not a location.
  • Is it in metres? Ask for a 4 m door and measure it.
  • Do the roads actually connect? Junctions are where generators fail first. Look at them before you look at the skyline.
  • Can I redirect it halfway? A tool that only accepts one prompt and returns one result is a slot machine.
  • What comes out at the end? GLB or FBX with textures included, or a proprietary format and a subscription.

A prompt that actually works

Whatever tool you use, prompts for scenes behave differently from prompts for objects. Objects reward adjectives. Scenes reward structure. Rather than piling on atmosphere, describe the place the way a planner would:

A coastal town of about 60 buildings. One main road runs along the shore, a second climbs the hill and meets it at a T-junction. Two-storey stone houses with tiled roofs along the shore road, larger detached houses up the hill. A harbour with a stone pier at the north end. Pavements on both sides of the main road, street lamps every 25 m. Late afternoon sun, low from the west.

Counts, materials, road topology, a light direction. Every sentence is checkable, which means that when something comes out wrong you can point at the sentence that was ignored instead of rewriting the whole prompt and hoping.

Where this is going

The interesting shift of the last year is not that models got better at meshes — they did, steadily and unremarkably. It is that generation stopped being one shot. An agent that can look at what it built, notice that two roads do not meet, and go fix that road, is doing something a single-pass generator structurally cannot. It turns "text to 3D scene" from a lottery into a conversation, and a conversation is something you can steer.

That is also the honest limitation. It takes minutes, not seconds. It needs a real editor open on your machine. And it still needs someone with taste to say "the hill is too steep" — which, if you have ever worked with a level designer, is exactly the part you wanted to keep.