SETUP 09: BLENDERBOT / AI CODING AGENT
Настроить BlenderBot / AI Coding Agent для генерации Blender Python кода через LLM
⚙️ Сетапы ⭐⭐ полная 10 блоков кода обновлено 2026-11-12
ID: SETUP-09 | Type: AI Coding Assistant for Blender | Difficulty: ⭐⭐ | Time: 20-30 min
🎯 ЦЕЛЬ
Настроить BlenderBot / AI Coding Agent для генерации Blender Python кода через LLM
📋 АРХИТЕКТУРА
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ LLM (GPT-4/ │────▶│ BlenderBot │────▶│ Blender │
│ Claude/Codex) │ │ (MCP Server) │ │ (bpy API) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
🛠️ УСТАНОВКА
Вариант 1: BlenderGPT (Open Source)
# GitHub: https://github.com/BlenderGPT/BlenderGPT
git clone https://github.com/BlenderGPT/BlenderGPT
cd BlenderGPT
pip install -r requirements.txt
# Настройка API ключей
cp .env.example .env
# Редактируй .env с твоими API ключами
Вариант 2: Blender-Copilot (VS Code Extension)
# Установка через VS Code Marketplace
# Поиск: "Blender Copilot" или "Blender Python"
# Или через pip
pip install blender-copilot
Вариант 3: Custom MCP Agent (Рекомендуемый)
# custom_blender_agent.py
import bpy
import bmesh
import mathutils
import json
from typing import Dict, Any, List
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("BlenderCodingAgent")
@mcp.tool()
async def generate_blender_script(
task: str,
context: str = "",
style: str = "clean" # "clean", "verbose", "minimal"
) -> str:
"""
Генерация Blender Python скрипта по описанию задачи.
Args:
task: Описание задачи (например: "Создай процедурный дом")
context: Дополнительный контекст (сцена, объекты, настройки)
style: Стиль кода
"""
system_prompt = f"""
Ты — эксперт по Blender Python API (bpy).
Стиль кода: {style}.
Правила:
1. Всегда используй bpy.data, bpy.ops, bpy.context, bmesh, mathutils
2. Проверяй существование объектов перед обращением
3. Используй context managers для режимов (EDIT/OBJECT)
4. Добавляй комментарии на русском/английском
5. Обрабатывай ошибки try/except
6. Возвращай готовый к выполнению код
Контекст: {context}
"""
# Здесь был бы вызов LLM API
# Возвращаем готовый скрипт
return generate_code_via_llm(task, system_prompt)
@mcp.tool()
async def fix_blender_script(
script: str,
error: str,
context: str = ""
) -> str:
"""Исправление Blender скрипта по ошибке"""
return fix_code_via_llm(script, error, context)
@mcp.tool()
async def explain_blender_api(
topic: str,
depth: str = "medium" # "basic", "medium", "deep"
) -> str:
"""Объяснение Blender API темы"""
return explain_api_via_llm(topic, depth)
if __name__ == "__main__":
mcp.run()
🔧 КОНФИГУРАЦИЯ MCP
OpenCode Config
{
"mcp": {
"blender-coding-agent": {
"type": "local",
"command": ["python", "-m", "custom_blender_agent"],
"enabled": true,
"environment": {
"BLENDER_MCP_SAFE_MODE": "0",
"OPENAI_API_KEY": "${OPENAI_API_KEY}",
"ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}"
}
}
}
}
Claude Desktop Config
{
"mcpServers": {
"blender-coding-agent": {
"command": "python",
"args": ["-m", "custom_blender_agent"],
"env": {
"OPENAI_API_KEY": "your-key",
"ANTHROPIC_API_KEY": "your-key"
}
}
}
}
🎯 ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ
Пример 1: Генерация процедурного здания
User: "Создай процедурный небоскреб 50 этажей с остеклением"
Agent генерирует:
- GN tree для небоскреба
- Параметры: этажи, оконные ряды, стиль
- Материалы: стекло, бетон, металл
- LODs для производительности
Пример 2: Исправление ошибки
User: "Ошибка: 'bpy.data.objects' has no attribute 'my_obj'"
Agent: Исправляет на bpy.data.objects.get("my_obj") с проверкой None
Пример 3: Объяснение API
User: "Объясни bpy.ops.mesh.boolean_modifier"
Agent: Дает подробное объяснение с примерами использования
🔧 РАСШИРЕНИЕ: CUSTOM TOOLS
Дополнительные MCP Tools
@mcp.tool()
async def analyze_blender_scene() -> dict:
"""Анализ текущей сцены для контекста"""
return {
"objects_count": len(bpy.data.objects),
"materials_count": len(bpy.data.materials),
"collections": [c.name for c in bpy.data.collections],
"current_frame": bpy.context.scene.frame_current,
"render_engine": bpy.context.scene.render.engine,
}
@mcp.tool()
async def suggest_optimization(scene_data: dict) -> list:
"""Предложения по оптимизации сцены"""
suggestions = []
# Анализ и предложения
return suggestions
@mcp.tool()
async def generate_boilerplate(template: str) -> str:
"""Генерация boilerplate кода"""
templates = {
"operator": OPERATOR_TEMPLATE,
"panel": PANEL_TEMPLATE,
"property_group": PROP_GROUP_TEMPLATE,
"addon": ADDON_TEMPLATE,
}
return templates.get(template, "")
🔗 СВЯЗИ
- Прочие в категории «Сетапы»: SETUP 01: BLENDER-MCP BASIC, SETUP 35: READY PLAYER ME AVATARS, SETUP 45: HUNYUAN3D 2.1 LOCAL, SETUP 02: GENESISCORE LOCAL (OLLAMA), SETUP 03: DREAM TEXTURES (STABLE DIFFUSION IN BLENDER)
- По темам: P26: MCP BASICS (BLENDER-MCP COMMANDS), SETUP 06: CUSTOM MCP TOOLS, SETUP 07: CI/CD INTEGRATION
- Теги: #blender, #mcp, #setup
Связанные материалы
Подобраны по тегам и категории.