Es posible ejecutar código Python directamente dentro de Blender. Para desarrolladores con interés en el diseño 3D, esta integración resulta ideal. A través de la API oficial de Python para Blender, provista por el módulo bpy, es posible automatizar operaciones e interacciones que normalmente se realizan mediante clics en la interfaz gráfica.
En esta entrada, veremos una introducción al scripting en Blender.
Introducción al scripting en Blender con Python
Índice de contenido
Esta integración permite aprovechar la lógica algorítmica y secuencial de Python para escribir scripts y herramientas personalizadas. De hecho, la mayoría de los complementos (add-ons) instalados en Blender ejecutan código Python en segundo plano.
Configuración de la interfaz de Blender para desarrollo
Antes de comenzar a escribir código, es aconsejable activar las ayudas visuales de la interfaz para identificar la correspondencia de las propiedades en Python:
- Ir al menú de preferencias (Edit > Preferences).
- Seleccionar la pestaña Interface.
- Activar las casillas User Tooltips y Python Tooltips.
Al pasar el cursor sobre cualquier elemento o propiedad de la interfaz (como los modificadores o las transformaciones de un objeto), Blender desplegará una etiqueta informativa con la ruta exacta de la propiedad dentro del módulo bpy. Al hacer clic derecho sobre cualquier parámetro, se puede seleccionar la opción Copy Full Data Path para copiar la instrucción directamente al portapapeles.

Consola interactiva y la estructura del módulo bpy
Para comenzar a escribir código, se debe cambiar al espacio de trabajo Scripting. La consola interactiva de Python integrada permite probar comandos en tiempo real con soporte de autocompletado mediante la tecla Tab.
El ecosistema de bpy se organiza principalmente en torno a dos submódulos esenciales:
1. El submódulo bpy.data (Lectura y modificación de propiedades)
Se utiliza para acceder, buscar, renombrar y modificar de forma directa los elementos y recursos de la escena (objetos, materiales, cámaras, luces, mallas, etc.). Permite alterar atributos como la posición, la escala o el nombre sin necesidad de simular interacciones del usuario.
Por ejemplo, para consultar la ubicación del objeto predeterminado «Cube» en la escena:
import bpy
# Acceso a la propiedad de ubicación del objeto
location = bpy.data.objects['Cube'].location
print(location)Para modificar la posición del objeto en el espacio 3D, se asigna un nuevo vector con sus tres coordenadas ($X, Y, Z$):
from mathutils import Vector
# Desplazar el objeto una unidad en el eje X
bpy.data.objects['Cube'].location = Vector((1.0, 0.0, 0.0))2. El submódulo bpy.ops (Operaciones y acciones del usuario)
Está diseñado para ejecutar herramientas y comandos contextuales, simulando las acciones directas del usuario en el entorno gráfico (como duplicar, transformar mediante atajos o eliminar elementos).
A diferencia de bpy.data, muchas funciones de bpy.ops dependen del contexto y de la selección activa. Por ejemplo, para eliminar un objeto mediante un operador, este debe estar previamente seleccionado:
# Eliminar el objeto actualmente seleccionado en la escena
bpy.ops.object.delete()
Intentar invocar un método de acción como delete() desde el bloque bpy.data generará un error de atributo, ya que la manipulación de la estructura de datos y la ejecución de operadores responden a arquitecturas distintas dentro de la API de Blender.