Three functions, one compose, no code yetFour authors, Chunchao Guo, Jinpeng Li, Yang Li and Zilong Huang, a project page, the report, and a GitHub repository that as of this writing holds a README, a teaser image and a citation. No code, no weights, no demo. The system is three functions in sequence: P = Fplan(q), T = Fterrain(P), O = Fregion(P, T), and the world is Compose(T, O). P is a structured spec, T the global terrain, O the placed objects. Every stage is an agent with skills, and every handoff is a schema the next agent can read. | stage | who decides what | called | hands on | | Intent analysis | model Extracts the constraints already in the prompt. Adds nothing, completes nothing. | none | explicit constraint list | | Scene planning | model Resolves ambiguity and fills every unspecified field of a fixed schema. | search tool for unfamiliar concepts; GPT-Image-2 for an optional concept image | spec P: regions, terrain constraints, object constraints | | Terrain planning | model Layout, asset, material fields plus the numbers: world scale, base elevations, noise frequencies and amplitudes, operator weights, blend widths. | none | terrain spec | | Terrain assets | model Prompts for a color-coded layout map and per-category asset images; Blender node graphs for procedural materials. | GPT-Image-2, then Hunyuan3D image-to-3D | layout map, asset prototypes, materials | | Height field and scatter | harness Closed-form. The model wrote the parameters; code sums them. | procedural Blender code | terrain mesh with region masks | | Regional planning | model Picks which regions get objects, their counts, densities, relations, style. | none | regional spec | | Composition, lift, place | model + harness Model writes a regional prompt; the rest is pixels and rays (grid c3). | GPT-Image-2, SAM3, SAM3D | meshes with placement transforms | | Refinement | model Looks at renders, edits parameters, judges pose and scale. | BlenderMCP, Hunyuan3D | final T and O | | Reconstructed from sections 2.1 to 2.3 of the arXiv report. Blue rows are the language model writing text or parameters; brown rows are code with no learned component. |
| grid b2 · the terrain is a json file |
The model chooses the operator. Code draws the mountain.Most scene generators put a flat ground under the objects. WorldClaw starts from a picture: GPT-Image-2 paints a semantic layout map in which each color is a terrain category. Code extracts a mask per region, smooths the boundaries into soft weights, and builds the height field as a weighted sum. For every region the height is a base elevation, plus noise at a few spatial frequencies, plus geomorphic operators (peak, dune, terrace, erosion), each multiplied by a weight the planning agent chose. The same soft weights blend the materials, so the region partition drives geometry, appearance and scattering from one map. Materials take two paths: generated albedo, normal and roughness maps for complex local surfaces, and Blender material node graphs assembled programmatically for large tileable regions. Scatter handles rocks and vegetation clusters by sampling inside each mask at the planned density, then filtering by elevation, slope and surface normal. Anything with a function or an identity waits for the regional stage. Nowhere in this stage does a language model produce a pixel or a vertex. It produces a spec, and the report’s own limitation is that errors in those numbers, in scale or node connectivity, show up directly as wrong landforms and cost extra render-inspect-refine rounds. | grid c3 · objects are painted, then lifted |
A photograph of the terrain, edited, then reverse-projectedThis is the part worth copying. The intro names the MLLM-agent failure it is trying to avoid: asked to nudge one object, an agent overcorrects because it has no sense of scale. WorldClaw never lets the language model place anything. It renders the region’s terrain from a chosen camera, asks GPT-Image-2 to edit objects into that render, and then recovers 3D placement from the camera it used. | step | what happens | computed by | | 1 | Render region r from camera (Kt, Et). Keep the parameters. | blender | | 2 | Edit objects into that render per the regional spec and the concept image. The result is a 2D layout prior, not geometry. | gpt-image-2 | | 3 | Cut instances with text-prompted SAM3; overlapping sliding windows for recall; merge by label and overlap. | sam3 | | 4 | Crop and enlarge each instance by an affine Ai. Record the equivalent intrinsics K̂i = AiKt; extrinsics unchanged. A small object gets high-resolution treatment without losing its place. | geometry | | 5 | Reconstruct a mesh from the crop, with the reconstruction camera SAM3D estimates. Calibrate scale until the projected bounding-box area matches the crop’s, with an asymmetric tolerance: oversized meshes are punished harder than undersized. | sam3d + geometry | | 6 | Two rays. Through the object center in the object camera: hits the mesh at Po, depth Zo. Through the same pixel mapped back into the terrain camera: hits the terrain at Pt, depth Zt. Scale s = (Zt/Zo)(fo/f̂). Translation moves Po onto Pt. | geometry | | 7 | Search depth and scale along the terrain ray, holding the 2D projection fixed, until the contact ratio between the object’s bottom voxels and the terrain crosses a threshold. Otherwise keep the best candidate. | geometry | | Equations 9 to 13 of the report. Language model involvement in this table: the regional prompt for step 2. Everything after step 3 is deterministic. |
Read the right-hand column. The language model decides what goes where in words, the image model decides the arrangement in pixels, and the position in 3D is projective geometry with no learned component. That is the fix for overcorrection: the agent that cannot judge scale is never asked to. | grid d4 · the loop that fixes floating |
Render, inspect, edit, until a budget runs outBoth refinement agents run through BlenderMCP, an open-source bridge that lets a language model drive Blender. Terrain refinement re-renders from predefined viewpoints and edits region parameters, boundary blending, texture scales, asset densities and transforms, and if needed lighting and render settings. It stops when no substantial issue is detected or a predefined iteration budget is reached. The paper does not print the budget. Scene refinement keeps a task queue of diagnostic renders and reports. Objects go first: pose, mesh quality and scale are judged against the object’s category and its region; bad placements get a new transform. A weak SAM3D mesh is sent to Hunyuan3D conditioned on both the coarse mesh and the object crop, so the refined asset keeps its shape, gains PBR textures at 2048 by 2048 for large objects and 1024 by 1024 for small ones, and inherits the existing placement without repeating it. Then the terrain: floating, penetration and unstable support trigger an object-terrain co-deformation confined to the support region. The object is lowered or partly embedded; the terrain is locally displaced, flattened or smoothed. The global landform is untouched. | grid e5 · the comparison is six screenshots |
Same village prompt, five baselines, no scoresFigure 8 puts WorldClaw beside SynCity, Marble, MajutsuCity, WorldGen and GPT-5.6 Sol on a shared medieval-village theme, prompt wording adapted to each method’s input format, four walk views each. There is no metric, no user study, no timing, no cost. The judgments are prose. Here is what the prose says. | system | represents the world as | what the paper says it lacks | editable assets | | SynCity | block-wise 3D latents, scene level | weaker long-range organization; coarse local geometry; visible seams between blocks | no | | Marble | image or video lifting, scene level | rich views, no region-level terrain; quality degrades with distance; Gaussian primitives show up close | no | | MajutsuCity | LLM city planner, asset layout | regular ground; urban structures for a village prompt | yes | | WorldGen | explicit textured meshes | flat homogeneous terrain; limited variation across views; closest baseline on downstream use | yes | | GPT-5.6 Sol | coding agent with planning and domain skills | complete terrain-and-object layout in simple geometric forms; blockout-like, basic materials | yes | | WorldClaw | explicit terrain plus independent meshes | the authors’ own entry | yes | | Section 3.3. Every row is the authors describing their own figure. Numbers reported for any system: none. |
The GPT-5.6 Sol row is the sharpest line in the paper for an engineer. A coding agent with structured planning and domain skills built the whole terrain-and-object layout on its own; what it lacked was expressive landforms, surface detail and polish. That is the tool stack, not the planner. The distance between the Sol baseline and WorldClaw is GPT-Image-2, SAM3D and Hunyuan3D bolted onto the same kind of agent. What the survey sheet leaves offAgainst the report. No quantitative result anywhere. No ablation of the refinement loop, so there is no way to say how much the render-inspect cycle contributes. Four H20 GPUs are named; wall-clock time, GPU hours, iteration counts and token spend are not, and the limitations section says all of them grow with object count and refinement rounds. Comparison prompts were rewritten per method. The repository has no code. And the pipeline is locked to a closed stack by the authors’ own account: open language models could not write the terrain and material programs, open image models could not draw the layout maps. For the report. The failure modes are specific: scale estimation, numeric parameters, node connectivity, and Blender’s node-based workflows staying beyond current models, so artist-grade materials collapse to approximations. The output format is the most engine-friendly of the six, explicit terrain plus independent meshes with transforms. The placement math is stated in full and reproducible from the equations. And the report presents itself as an architecture, not a benchmark claim, which is the honest framing for what it is. | grid g7 · take to your own harness |
| 1. Split extract from complete. One agent restates the user’s constraints and adds nothing; a second fills a fixed schema. The user’s words survive the planner. | | 2. Let the model emit parameters, not artifacts. Weights, operators, densities, thresholds. Deterministic code turns them into the thing. Errors become numbers you can diff. | | 3. When you need spatial layout, ask for a picture and record the camera. An image model arranges better than a text model does, and a known camera makes the arrangement recoverable. | | 4. Put the verifier in the tool, not the prompt. A render loop with an iteration budget and a contact-ratio threshold ends the search on evidence, not on the model’s confidence. |
The title says Tencent. The stack says Anthropic, OpenAI, Meta and Blender, with one Tencent model doing the polish. Keep the report’s own sentence: validating the pipeline needs Claude Opus 4.8, GPT-Image-2 and Hunyuan3D. WorldClaw is a map of which model to trust with which decision. The terrain under it is not Tencent’s. |