~ same prompt, different LLM — every model gets the same brief in Blender, you judge the render ~
OpenAI / GPT 6 Astra / thinking:max has entered the arena NEW!
Render Window — hero
hero render
camera + framing set up by the AI contestant
3D Viewport — cabin-pond User Persp
LOADING 3D VIEW
$0.09Cost
303sDuration
16Tool calls
17Turns
Blender MCP 2026-07-14
Tokens: 201278/11385Vision: Votes W-L-T: 1-7-0DONE ✓
B-BENCH — TRANSCRIPT Z.AI / GLM 5.2 · r1 · 2026-07-14
RUN LOG — cabin-pond · Z.AI / GLM 5.2 · r1 · ok
SYSTEM PROMPTthe control — every model on this task got these instructions
SHOW FULL PROMPT · 456 chars
You are operating Blender through the provided tools. The scene starts empty. Build what the user's prompt asks for in the current scene. Work step by step and verify your own work. Before you finish, set up a camera and lighting to frame a single, well-composed presentation image of your result — position and aim the camera, and add or adjust lights so the subject reads clearly. When you are finished, reply with the single word DONE and no tool calls.
--TASK cabin-pond: A warm wooden cabin beside a pond, with a stone chimney, a small dock, and a few trees.
18:19ai>I'll build a warm wooden cabin scene beside a pond with a stone chimney, small dock, and trees. Let me start by checking the current scene and then build everything step by step.
18:19>>get_scene_info({"user_prompt":"A warm wooden cabin beside a pond, with a stone chimney, a small dock, and a few trees."})
18:19<<{ "name": "Scene", "object_count": 0, "objects": [], "materials_count": 2 }
18:32ai>Let me build this scene step by step. I'll start with the ground and pond.
18:32>>execute_blender_code({"code":"\nimport bpy\nimport bmesh\nimport math\nfrom mathutils import Vector\n\n# Clear scene\nbpy.ops.object.select_all(action='SELECT')\nbpy.ops.object.delete(use_global=False)\n\n# -- Ground --\nbpy.ops.mesh.primitive_plane_add(size=40, location=(0, 0, 0))\nground = bpy.context.active_object\nground.name = \"Ground\"\nground_mat = bpy.data.materials.new(name=\"GroundMat\")\nground_mat.use_nod…)
18:32<<Code executed successfully: Ground and Pond created
18:58ai>Now let me build the cabin structure with walls, roof, and a chimney.
18:58>>execute_blender_code({"code":"\nimport bpy\nimport math\nfrom mathutils import Vector\n\n# ---- Materials ----\n# Wood (logs)\nwood_mat = bpy.data.materials.new(name=\"WoodMat\")\nwood_mat.use_nodes = True\nbsdf = wood_mat.node_tree.nodes[\"Principled BSDF\"]\nbsdf.inputs[\"Base Color\"].default_value = (0.35, 0.18, 0.08, 1.0) # warm brown\nbsdf.inputs[\"Roughness\"].default_value = 0.8\n\n# Roof material\nroof_mat =…)
18:58<<Code executed successfully: Cabin walls built
19:25>>execute_blender_code({"code":"\nimport bpy\nimport math\nfrom mathutils import Vector\n\n# ---- DOOR ----\nbpy.ops.mesh.primitive_cube_add(size=1, location=(5, 2 + 1.5, 0.2 + 1.1))\ndoor = bpy.context.active_object\ndoor.name = \"Door\"\ndoor.scale = (0.6, 0.06, 1.1)\nbpy.ops.object.transform_apply(location=False, rotation=False, scale=True)\ndark_mat = bpy.data.materials.get(\"DarkMat\")\ndoor.data.materials.append(d…)
19:25<<Error executing code: Communication error with Blender: Code execution error: name 'num_logs' is not defined
20:02>>execute_blender_code({"code":"\nimport bpy\nimport bmesh\nimport math\nfrom mathutils import Vector\n\n# ---- DOOR ----\nbpy.ops.mesh.primitive_cube_add(size=1, location=(5, 3.5, 0.2 + 1.1))\ndoor = bpy.context.active_object\ndoor.name = \"Door\"\ndoor.scale = (0.6, 0.06, 1.1)\nbpy.ops.object.transform_apply(location=False, rotation=False, scale=True)\ndark_mat = bpy.data.materials.get(\"DarkMat\")\ndoor.data.material…)
20:02<<Code executed successfully: Roof, door, and windows built
20:14ai>Now let me add the stone chimney:
20:14>>execute_blender_code({"code":"\nimport bpy\nimport math\nimport random\n\nstone_mat = bpy.data.materials.get(\"StoneMat\")\n\n# ---- CHIMNEY ----\n# Stone chimney on the left side of the cabin\nchimney_x = 5 - 1.5\nchimney_y = 2 # centered along the side\nchimney_base_z = 0.2 # starts at ground level on the outside wall\nchimney_top_z = 0.2 + 12 * 0.22 + 1.3 + 0.6 # above the roof peak\n\n# Build chimney from stack…)
20:14<<Code executed successfully: Chimney built
20:26ai>Now let me build the small dock:
20:26>>execute_blender_code({"code":"\nimport bpy\nimport math\n\nwood_mat = bpy.data.materials.get(\"WoodMat\")\n\n# ---- DOCK ----\n# Dock extends from the cabin side toward the pond\ndock_y_start = -1.0 # edge near ground\ndock_y_end = -5.5 # extends into pond\ndock_x = -3.0 # x position\ndock_width = 1.5\ndock_height = 0.15\n\n# Dock platform\nbpy.ops.mesh.primitive_cube_add(size=1, \n location=(dock_x, (do…)
20:27<<Code executed successfully: Dock built
20:43ai>Now let me add some trees around the scene:
20:43>>execute_blender_code({"code":"\nimport bpy\nimport math\nimport random\n\n# Tree trunk material\ntrunk_mat = bpy.data.materials.new(name=\"TrunkMat\")\ntrunk_mat.use_nodes = True\nbsdf = trunk_mat.node_tree.nodes[\"Principled BSDF\"]\nbsdf.inputs[\"Base Color\"].default_value = (0.25, 0.15, 0.08, 1.0)\nbsdf.inputs[\"Roughness\"].default_value = 0.9\n\n# Tree foliage material\nfoliage_mat = bpy.data.materials.new(name=…)
20:44<<Code executed successfully: Trees placed
21:03ai>Now let me add warm lighting (interior glow), exterior lighting, and set up the camera:
21:03>>execute_blender_code({"code":"\nimport bpy\nimport math\n\n# ---- LIGHTING ----\n\n# Warm interior light (point light inside the cabin)\nbpy.ops.object.light_add(type='POINT', location=(5, 2, 1.8))\ninterior_light = bpy.context.active_object\ninterior_light.name = \"InteriorLight\"\ninterior_light.data.energy = 200\ninterior_light.data.color = (1.0, 0.7, 0.3)\ninterior_light.data.shadow_soft_size = 0.3\n\n# Warm glow …)
21:03<<Error executing code: Communication error with Blender: Code execution error: 'SceneEEVEE' object has no attribute 'use_bloom'
21:21>>execute_blender_code({"code":"\nimport bpy\nimport math\nimport mathutils\n\n# ---- LIGHTING ----\n\n# Warm interior light (point light inside the cabin)\nbpy.ops.object.light_add(type='POINT', location=(5, 2, 1.8))\ninterior_light = bpy.context.active_object\ninterior_light.name = \"InteriorLight\"\ninterior_light.data.energy = 200\ninterior_light.data.color = (1.0, 0.7, 0.3)\ninterior_light.data.shadow_soft_size = 0…)
21:21<<Code executed successfully: Lighting and camera set up
21:41ai>Now let me add some extra details — warm light emitting from windows, a few rocks around the pond, and verify the scene:
21:41>>execute_blender_code({"code":"\nimport bpy\nimport math\nimport random\n\n# ---- EMISSIVE WINDOW PANES ----\n# Create warm glowing window material\nwin_mat = bpy.data.materials.new(name=\"WindowGlowMat\")\nwin_mat.use_nodes = True\nnodes = win_mat.node_tree.nodes\nlinks = win_mat.node_tree.links\nnodes.clear()\noutput = nodes.new(\"ShaderNodeOutputMaterial\")\nemission = nodes.new(\"ShaderNodeEmission\")\nemission.inp…)
21:41<<Code executed successfully: Emissive windows, rocks added
21:47>>execute_blender_code({"code":"\nimport bpy\n\n# Quick scene overview\nscene = bpy.context.scene\nprint(f\"Render Engine: {scene.render.engine}\")\nprint(f\"Resolution: {scene.render.resolution_x} x {scene.render.resolution_y}\")\nprint(f\"Camera: {scene.camera.name if scene.camera else 'None'}\")\nprint(f\"Total objects: {len(bpy.data.objects)}\")\nprint(\"\\nObjects:\")\nfor obj in sorted(bpy.data.objects, key=lambda…)
21:47<<Code executed successfully: Render Engine: BLENDER_EEVEE Resolution: 1920 x 1080 Camera: MainCamera.001 Total objects: 194 Objects: CabinFloor (MESH) at (5.0, 2.0, 0.1) ChimneyCap_0 (MESH) at (3.5, 1.9, 3.8) ChimneyCap_1 (MESH) at (3.5, 2.2, 3.8) ChimneyGlow (LIGHT) at (3.5, 2.0, 4.5) ChimneyGlow.001 (LIGHT) at (3.5, 2.0, 4.5) Cylinder (MESH) at (5.0, 0.5, 0.3) Cylinder.001 (MESH) a…
22:06ai>I notice duplicate lights and camera from the first failed attempt. Let me clean up and also fix the chimney position to be outside the cabin wall:
22:06>>execute_blender_code({"code":"\nimport bpy\nimport mathutils\n\n# Remove duplicate lights and camera\ndupes_to_remove = []\nfor obj in bpy.data.objects:\n if obj.name.endswith(\".001\"):\n dupes_to_remove.append(obj)\n\nfor obj in dupes_to_remove:\n bpy.data.objects.remove(obj, do_unlink=True)\n\n# Remove the old Door.001 duplicate if exists\nfor obj in list(bpy.data.objects):\n if obj.name == \"Door.0…)
22:06<<Code executed successfully: Cleaned up duplicates, fixed chimney position
22:24>>execute_blender_code({"code":"\nimport bpy\nimport math\nimport mathutils\n\n# Fix window glow positions to be on the front wall (y=3.5)\nfor obj in bpy.data.objects:\n if obj.name.startswith(\"GlowWindow_\"):\n obj.location.y = 3.53\n\n# Door glow position\nfor obj in bpy.data.objects:\n if obj.name == \"DoorGlow\":\n obj.location.y = 3.53\n\n# Let's also reposition the camera for a better angle\n…)
22:24<<Code executed successfully: Total objects: 181 Active camera: MainCamera Lights: 5 ChimneyGlow: type=POINT, energy=30.0 FillLight: type=AREA, energy=150.0 InteriorLight: type=POINT, energy=200.0 MoonLight: type=SUN, energy=1.5 RimLight: type=SUN, energy=0.800000011920929
22:34>>execute_blender_code({"code":"\nimport bpy\n\n# Add the window glow lights back (they were removed as duplicates)\n# Check if they exist\nfor name in [\"WindowGlow1\", \"WindowGlow2\"]:\n obj = bpy.data.objects.get(name)\n if obj is None:\n print(f\"{name} is missing, will re-add\")\n\n# Re-add window glow lights\nimport math\nbpy.ops.object.light_add(type='POINT', location=(3.7, 3.8, 1.7))\nwl1 = bpy.con…)
22:34<<Code executed successfully: WindowGlow1 is missing, will re-add WindowGlow2 is missing, will re-add Window glow lights added back Final object count: 183 Lights: 7 Cameras: 1 Meshes: 175
22:44>>execute_blender_code({"code":"\nimport bpy\n\n# Final render - take a screenshot\nbpy.context.scene.render.filepath = \"/tmp/cabin_pond_scene.png\"\nbpy.context.scene.render.image_settings.file_format = 'PNG'\nbpy.ops.render.render(write_still=True)\nprint(\"Render complete!\")\n","user_prompt":"A warm wooden cabin beside a pond, with a stone chimney, a small dock, and a few trees."})
22:49<<Code executed successfully: Render complete!
23:04ai>The scene is complete. Here's what I built: **Warm Wooden Cabin:** - Log-cabin style walls made from stacked cylindrical logs (warm brown wood) - Gable roof with two slanted panels and triangular gable ends - A door and two windows on the front (facing away from the pond) - Glowing window panes (emissive warm light) suggesting a fire inside **Stone Chimney:** - Built from 32 individual stone blo…
23:04--status: ok · DONE declared
>
FULL CALL INSPECTOR
OPEN RAW JSONL ↗
0 SHOWN
LOADING COMPLETE TRANSCRIPT…
Votes cast on this bench: 000482 · 157 runs · 25 contestants
Best viewed with Netscape Navigator 4.07 at 800×600 · real runs, live ratings