blender
Blender
Two ways in, and they are not interchangeable.
Interactive, through the MCP server, talking to an add-on inside a running Blender. The user can see everything you do. Their viewport, their unsaved edits, their file.
Headless, blender -b file.blend --python script.py -- args. Its own process, no UI, nothing shared. This is where renders and long sweeps belong.
The rule that decides which: does this touch state the user is looking at? Use the live MCP for inspection and user-authorized edits to the open scene. Use headless Blender on an explicit copy for long renders or batch processing; never replace the user's open file with a headless result without reconciling live edits. Choose the route by the owned document and task, not merely by whether it writes a file.
1. The single rule that outranks everything
Look at the render. Every time. Open the actual image file.
Not the coordinates. Not the assertion. The image.
Every serious failure in this domain has the same shape: a measurement passes, a confident report goes out, and the defect is plainly visible on screen. The measurement was aimed by an assumption about where the answer would be. It returned a number, and the number was measuring something else.