~ 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 — smoke-cube User Persp
LOADING 3D VIEW
$0.02Cost
43sDuration
4Tool calls
5Turns
Blender 5.1.0MCP 1.22026-07-15
Tokens: 22602/1927Vision: Votes W-L-T: 2-0-8DONE ✓
B-BENCH — TRANSCRIPT OpenAI / GPT 5.6 Luna · r1 · 2026-07-15
RUN LOG — smoke-cube · OpenAI / GPT 5.6 Luna · r1 · ok
SYSTEM PROMPTthe control — every model on this task got these instructions
PROMPTblender-bench v6HARNESSraw-v1
SHOW FULL PROMPT · 1104 chars
You are participating in Blender-Bench, a public benchmark where AI models complete the same Blender task.

Your result will be compared head-to-head with another model. Anyone on the internet can vote, based only on the published visual outputs they can inspect: the interactive 3D scene and rendered presentation.

Complete the request as well as you can. The benchmark does not prescribe a workflow or visual style; use whichever Blender techniques you consider appropriate. Make the important requirements evident in the published result, save a complete scene, and present the work clearly in every requested output.

## Harness Instructions

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 smoke-cube: ## Task Complete the following Blender task: <task> Create a single cube at the world origin, scaled to 2 meters per side. </task>
11:44>>execute_blender_code({"code":"import bpy, math\nfrom mathutils import Vector\n# Clear scene\nbpy.ops.object.select_all(action='SELECT')\nbpy.ops.object.delete(use_global=False)\nfor datablocks in (bpy.data.meshes, bpy.data.curves, bpy.data.materials, bpy.data.cameras, bpy.data.lights):\n pass\n# Create exactly one mesh cube, 2m per side, centered at world origin\nbpy.ops.mesh.primitive_cube_add(size=2.0, location=(…)
11:45<<Error executing code: Communication error with Blender: Code execution error: bpy_struct: item.attr = val: enum "BLENDER_EEVEE_NEXT" not found in ('BLENDER_EEVEE', 'BLENDER_WORKBENCH', 'CYCLES')
11:51>>execute_blender_code({"code":"import bpy\nfrom mathutils import Vector\n# Clear scene\nbpy.ops.object.select_all(action='SELECT'); bpy.ops.object.delete(use_global=False)\n# Cube exactly 2m side, origin\nbpy.ops.mesh.primitive_cube_add(size=2.0, location=(0,0,0))\ncube=bpy.context.object; cube.name='Cube_2m'; cube.data.name='Cube_2m_Mesh'\nmat=bpy.data.materials.get('Cube Blue Material') or bpy.data.materials.new('Cub…)
11:51<<Error executing code: Communication error with Blender: Code execution error: Error: Cannot open file <repo>\harness\tmp\cube_2m_scene.blend@ for writing: No such file or directory
11:54>>get_scene_info({"user_prompt":"Create a single cube at the world origin, scaled to 2 meters per side."})
11:54<<{ "name": "Scene", "object_count": 5, "objects": [ { "name": "Cube_2m", "type": "MESH", "location": [ 0.0, 0.0, 0.0 ] }, { "name": "Presentation_Camera", "type": "CAMERA", "location": [ 5.2, -5.2, 4.1 ] }, { "name": "Key_Light", "type": "LIGHT", "location": [ …
11:58>>execute_blender_code({"code":"import bpy\nscene=bpy.context.scene\ncube=bpy.data.objects.get('Cube_2m')\n# Ensure exact transform and dimensions\ncube.location=(0,0,0); cube.scale=(1,1,1)\n# save to accessible current project path\nbpy.ops.wm.save_as_mainfile(filepath='cube_2m_scene.blend')\nprint('SAVED',bpy.data.filepath,'DIMS',tuple(cube.dimensions),'LOC',tuple(cube.location))","user_prompt":"Create a single cube a…)
11:58<<Code executed successfully: Info: Saved as "cube_2m_scene.blend" SAVED <repo>\harness\cube_2m_scene.blend DIMS (2.0, 2.0, 2.0) LOC (0.0, 0.0, 0.0)
11:59ai>DONE
11:59--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