← Volver a la academia
Blender
3D

Describe un objeto y créalo en Blender con IA

Blender trae Python adentro. Eso permite que un modelo de lenguaje escriba el código que construye la geometría, y que tú solo describas lo que necesitas en español. El acabado —materiales, luces, render— sigue siendo tuyo.

✔ Modelo 100% gratuito ⏱ ~25 minutos 🐍 Python (bpy) + Groq
Antes de empezar: Blender ya tiene su propio servidor MCP oficial. Blender publica un complemento en blender.org/lab/mcp-server que expone la escena a cualquier cliente MCP. Si usas un cliente compatible, esa es la ruta recomendada — más completa y mantenida por el propio equipo de Blender. La guía de abajo es la alternativa sin depender de un cliente MCP: corre directo desde el editor de scripting y te sirve para entender qué pasa por dentro.
1

Consigue una API key gratuita

Crea una cuenta en console.groq.com (gratis, sin tarjeta) y genera una key en la sección API Keys. Groq sirve modelos open source como Llama con un cupo gratuito amplio, que es justo lo que necesitamos para generar código.

💡 Puedes usar cualquier proveedor compatible con la API de OpenAI cambiando solo la URL. Groq es la opción que nosotros usamos por el cupo gratis.
2

Abre el editor de scripting de Blender

En Blender, cambia a la pestaña Scripting (arriba, junto a Layout / Modeling / Sculpting). Ahí tienes una consola de Python que corre dentro de la escena abierta. Dale a New para crear un script vacío.

3

Pídele al modelo que escriba el código de la malla

La clave está en el prompt del sistema: hay que exigirle que devuelva solo código Python de bpy, sin explicaciones ni bloques markdown, o el script no correrá.

Pegar en el editor de Scripting
import bpy, json, urllib.request

API_KEY = "gsk_TU_KEY"
DESCRIPCION = "una silla moderna de madera, patas delgadas"

SISTEMA = (
    "Eres un experto en la API de Python de Blender (bpy). "
    "Devuelve UNICAMENTE codigo Python ejecutable que construya la geometria "
    "descrita usando bpy.ops.mesh y transformaciones. "
    "Sin explicaciones, sin markdown, sin comentarios."
)

cuerpo = json.dumps({
    "model": "llama-3.3-70b-versatile",
    "messages": [
        {"role": "system", "content": SISTEMA},
        {"role": "user", "content": DESCRIPCION},
    ],
    "temperature": 0.2,
}).encode()

req = urllib.request.Request(
    "https://api.groq.com/openai/v1/chat/completions",
    data=cuerpo,
    headers={
        "Authorization": "Bearer " + API_KEY,
        "Content-Type": "application/json",
    },
)

with urllib.request.urlopen(req) as r:
    codigo = json.load(r)["choices"][0]["message"]["content"]

# Limpieza por si el modelo igual devolvio ```python
codigo = codigo.replace("```python", "").replace("```", "").strip()

print("--- codigo recibido ---")
print(codigo)

exec(codigo)

Dale a Run Script (el ▶ del editor). El objeto aparece en la escena en unos segundos.

4

Protégete de código que no quieres ejecutar

exec() corre lo que sea que llegue. Mientras experimentas en tu máquina está bien, pero antes de dejarlo en manos de otra persona conviene revisar el código antes de ejecutarlo:

Versión con confirmación
PROHIBIDO = ["import os", "import sys", "subprocess", "open(", "__import__"]

if any(p in codigo for p in PROHIBIDO):
    print("Codigo rechazado: intenta tocar el sistema, no solo la escena.")
else:
    exec(codigo)
⚠️ Esta lista es un filtro básico, no una caja fuerte. No es una precaución exagerada: la documentación oficial del MCP de Blender advierte lo mismo — el servidor ejecuta el código que genera el modelo sin protecciones, y recomienda usar una máquina virtual o un equipo sin información sensible. Aplica igual acá.
5

Qué esperar (y qué no)

¿Quieres esto adaptado a tu pipeline 3D?

Lo conectamos a tus convenciones de escena, nombres y unidades de trabajo.

Ver las demás integraciones