Gemini 4: haz vibe coding de una cinemática 3D en Blender con un solo prompt
De un solo prompt a una cinemática de Blender en cuatro planos
Una secuencia de doce segundos parece poca cosa. En Blender, es mucho trabajo: puesta en escena, fotogramas clave, movimientos de cámara, profundidad de campo y una hoja de papel que tiene que doblarse como papel, no como tela. Casi todo eso se hace clic a clic en el viewport.
Así que le dimos todo el trabajo a un agente. Con Gemini 4 en Eigent, un solo prompt convirtió la escena Cozy Kitchen en una cinemática de cuatro planos. Una corriente de aire levanta una hoja de receta de su atril, la lleva por la cocina y la deja caer sobre una tartaleta de fresa. Gemini 4 nunca abrió la ventana de Blender. Escribió Python para Blender, lo ejecutó en modo headless, revisó su propio trabajo y corrigió lo que encontró.
El flujo completo de un vistazo
Tú aportas la escena y el brief. Gemini 4 hace el resto desde la línea de comandos. Cada etapa deja un archivo, así que puedes revisar el trabajo en cualquier punto.
| Etapa | Qué ocurre | Qué obtienes |
|---|---|---|
| Leer | Abrir la escena en headless y cargar los datos de la tarea | Un render de prueba del punto de partida de la hoja |
| Escenificar | Añadir un atril para recetas, una barra de cortina y pistas de viento | Un decorado donde la corriente tiene un origen visible |
| Construir | Modelar y texturizar la hoja de receta | RecipePage, una hoja fina de dos caras con una ficha de receta pintada |
| Animar | Ajustar una trayectoria por el corredor y un pliegue sobre la tartaleta | Un vuelo suave y un pliegue de reposo bien apoyado |
| Rodar | Colocar cuatro cámaras y ligarlas a los cortes | Un montaje de cuatro planos con profundidad de campo en el 2 y el 3 |
| Verificar | Medir cada regla del brief y corregir lo que falle | Un script de comprobación reejecutable en work/ |
| Entregar | Renderizar los fotogramas y el storyboard, escribir la lista de planos | sequence.blend, shotlist.csv, storyboard.png y nueve fotogramas fijos |
Así puedes hacerlo tú, paso a paso, incluida una cosa que configuraríamos de otra forma la próxima vez.
Lo que tendrás al final
- Un proyecto de Blender editable:
sequence.blend, 13 MB, con todas las imágenes empaquetadas y sin bibliotecas enlazadas. Ábrelo y sigue trabajando. - Una lista de planos:
shotlist.csv, una fila por plano, con rango de fotogramas, cámara y acción. - Un storyboard:
storyboard.png, nueve viñetas rotuladas de 640×480 en una cuadrícula de 3×3. - Nueve fotogramas fijos: los fotogramas 1, 48, 73, 120, 145, 192, 217, 264 y 288.
- Un vídeo y una página de vista previa:
sequence.mp4ypreview.html, con una breve petición de seguimiento.
Antes de empezar
- Eigent instalado en tu equipo.
- Gemini 4, a través de Eigent Cloud o con tu propia clave de API de Gemini.
- Blender en el mismo equipo. Gemini 4 lo maneja desde la línea de comandos, así que nunca necesita la ventana. Nosotros teníamos instalado Blender 5.2 LTS. La tarea también incluye una imagen de Docker que fija
bpy5.2.2, por si prefieres aislarlo en un sandbox. - El paquete de la tarea. El nuestro es el «recipe-page mishap» de nuestros entornos de programación 3D:
| Archivo | Qué le aporta al agente |
|---|---|
PROMPT.md | El brief: el único mensaje que envías |
agent_environment/input/kitchen.blend | La escena Cozy Kitchen preparada |
agent_environment/input/subjects.json | Qué objetos forman la tartaleta de fresa |
agent_environment/input/action.json | El punto de partida de la hoja y su corredor de vuelo en los fotogramas 120, 168 y 192 |
agent_environment/input/presentation.json | Ajustes de fotogramas fijos y storyboard |
agent_environment/input/source_overview.png | Una vista previa de la escena sin tocar |
agent_environment/scripts/ | presentation.py (renderiza los fotogramas y el storyboard) y review.py |
Selecciona Gemini 4
En Eigent Cloud, sin clave de API:
- En la pantalla de inicio, abre el selector de modelo bajo el cuadro de entrada.
- En Eigent, elige Gemini 4 Argon.
Con tu propia clave de API de Gemini:
- Abre Settings → Models.
- Busca Gemini y abre su configuración.
- Pega tu API key.
- Establece el model type en
gemini-4-argon. - Haz clic en Save y luego elígelo en Gemini dentro del selector de modelo.
El nivel de razonamiento por defecto funciona. Lo ejecutamos como Single Agent con Full access, para que pudiera ejecutar Blender y escribir archivos sin pararse a preguntar.
Prepara la carpeta del proyecto
Crea un proyecto en Eigent y apúntalo a una carpeta que contenga dos cosas:
showcase-kitchen-draught/
PROMPT.md
agent_environment/
input/ # kitchen.blend, subjects.json, action.json, presentation.json, source_overview.png
scripts/ # presentation.py, review.py
Deja todo lo demás fuera, sobre todo cualquier evaluador, ejecuciones de referencia o notas sobre resultados anteriores. Más abajo explicamos por qué.
Pega el prompt
Copia el brief de abajo en el cuadro de entrada Cowork with y envíalo sin cambios.
Animate the recipe-page mishap
Create a twelve-second cinematic in /app/input/kitchen.blend: a draught lifts a recipe page, carries it across the work area and leaves it draped on the strawberry tartlet identified in /app/input/subjects.json. Preserve the warm illustrated kitchen. Show the calm setup, motivated lift, flight, contact and settling through four connected shots, with visible, consistent wind clues and readable page motion.
## Action and photography
- Scene Sequence runs at 24 fps, frames 1–288, with camera-bound cuts at 1, 73, 145 and 217. Preserve visible source surfaces, material identity and world transforms within 2 mm; keep existing set pieces visible. Add the page, wind clues and staging as needed.
- RecipePage is an editable thin two-sided sheet, 0.13–0.17 m long and 0.09–0.12 m wide, with 100–12,000 native vertices, finite UVs and readable recipe marks.
- Use /app/input/action.json for the start plane and flight corridor. At frame 1, the page is within 10 mm of the start plane and its centroid within 20 mm of the start point. Through frame 48 the centroid stays within 8 mm of its initial pose; by 120 it moves at least 0.10 m. At frames 120, 168 and 192 it follows the corridor within 35 mm.
- Page centroid motion is at most 16 mm per frame, with successive displacement changes at most 5 mm. After best rigid alignment with frame 1, shape deformation is at least 4 mm RMS at one flight frame and 2 mm RMS at rest. Show convincing paper flutter, stiffness and supported contact folds, without penetration or stretched print.
- Throughout frames 241–288, at least 15% of page surface samples are within 8 mm of the actual selected strawberry-tartlet surface. Centroid variation over 264–288 is at most 3 mm; surface motion from 276 to 288 is at most 4 mm.
- Use four distinct cameras. Shot 1 may be orthographic; shots 2–4 use 35–85 mm perspective lenses. Shots 2 and 3 use depth of field focused within 25 mm of the page centroid at each shot's start, midpoint and end.
- At frames 120, 168, 192 and 264, frame the page in front of the active camera within the central 80%, with projected height 8–65% of the image. Within shots, camera motion is at most 25 mm and 4° per frame, with translation changes at most 8 mm; cuts are exempt.
- Compose purposeful shots with coherent screen direction, controlled focus, anticipation and a clear final reveal. Avoid disconnected poses, arbitrary camera moves or unreadable action.
## Handoff
Save sequence.blend, shotlist.csv, storyboard.png and stills/frame_NNN.png for frames 1, 48, 73, 120, 145, 192, 217, 264 and 288 in /app/output. The CSV columns are shot,start,end,camera,action, matching the native four-shot edit. Use labelled 640×480 panels in a 3×3 storyboard. Stills and storyboard match the saved scene under /app/scripts/presentation.py CPU settings with luminance SSIM ≥0.93; use that helper or equivalent images.
Keep the native project editable and below 192 MiB, with finite nondegenerate geometry, all used material/world images packed and no linked libraries. It must replay with Python auto-execution disabled; native constraints and ordinary driver expressions are allowed. Keep /app/input unchanged; use /app/work for work files. Blender Python, headless rendering and command-line tools are available.
El prompt se escribió para un contenedor Docker, así que sus rutas empiezan por /app. Al ejecutarlo en nuestro Mac, Gemini 4 las asignó por sí mismo a la carpeta del proyecto: agent_environment/input, work/ y output/.
Algunas partes del brief hacen el trabajo pesado:
- Números en lugar de adjetivos. «Hazlo cinematográfico» es un estado de ánimo. «A menos de 35 mm del corredor en el fotograma 168» es un objetivo que el agente puede medir y cumplir.
- Momentos narrativos, no solo reglas. Planteamiento tranquilo, despegue motivado, vuelo, contacto, asentamiento. Los números mantienen el movimiento honesto; los momentos lo convierten en una historia.
- Conservar la cocina. Los objetos originales se mantienen a menos de 2 mm, con sus materiales intactos. El agente añade a la escena, no la reconstruye.
- Una entrega de verdad. Un
.blendempaquetado y editable que se reproduce con la ejecución automática de Python desactivada. Un archivo que puedes abrir mañana y seguir animando.
Deja trabajar a tu agente
Envía el prompt. Gemini 4 planifica la tarea y la resuelve con Python para Blender. Nuestra ejecución tardó unos 50 minutos, desde la primera lectura de archivo hasta la autoauditoría final. Esto es lo que construyó, por orden:
- Leyó la escena. Abrió
kitchen.blenden headless, cargó los datos de la tartaleta y del corredor, y renderizó una vista de prueba del punto de partida. - Preparó el decorado. Un pequeño atril de madera para recetas bajo el punto de partida y una barra de cortina sobre la ventana de la cocina.
- Añadió pistas de viento. Una faja de cortina, cintas de satén y una etiqueta en el atril, todas ondeando en la misma dirección, para que la corriente tenga un origen visible.
- Creó la hoja.
RecipePagemide 0,136 × 0,094 m con 1.218 vértices, de dos caras, con una ficha de receta pintada por él mismo: «Recipe No. 14, Strawberry Tartlet». Las notas del chef terminan con una línea que no pedimos: «Keep recipe cards away from open kitchen window draughts!» - Planificó el movimiento. Una trayectoria suave por los puntos de control del corredor y, después, un pliegue de reposo ajustado a la superficie real de la tartaleta.
- Colocó cuatro cámaras. 42 mm para el planteamiento tranquilo, 48 mm con profundidad de campo a f/5.6 para el despegue, un plano de seguimiento de 52 mm para el vuelo y un plano heroico de 58 mm para el aterrizaje. Los marcadores de la línea de tiempo ligan cada cámara a su corte en los fotogramas 1, 73, 145 y 217.
- Revisó su propio trabajo. Escribió un script de verificación para cada regla medible del brief, lo ejecutó y corrigió lo que encontró. La cara impresa de la hoja se inclinaba en dirección contraria a la cámara, así que invirtió el cabeceo. Añadió pliegues a la cortina, apartó la hoja en reposo de las tartaletas vecinas y elevó la última cámara para una revelación más limpia.
- Entregó. Renderizó los fotogramas y el storyboard con
presentation.py, escribióshotlist.csvy ejecutó una auditoría final: todos los objetos originales presentes, sin mover y con sus materiales originales.
Lee la lista de planos
Abre output/shotlist.csv: cuatro planos, uno por cámara.
| Plano | Fotogramas | Cámara | Acción |
|---|---|---|---|
| 1 | 1–72 | Cam_Shot1 | Planteamiento tranquilo en el atril de madera mientras las cintas de la ventana ondean con la corriente y levantan la hoja de receta |
| 2 | 73–144 | Cam_Shot2 | La corriente lleva la hoja, que aletea, desde el atril hasta el corredor de vuelo alto |
| 3 | 145–216 | Cam_Shot3 | La hoja cruza en picado la zona de trabajo de la cocina y planea hacia el expositor de pasteles de dos pisos |
| 4 | 217–288 | Cam_Shot4 | La hoja toca superficie y se asienta en un arco rígido y apoyado sobre la tartaleta de fresa |
Después abre storyboard.png. Nueve fotogramas cuentan toda la historia de un vistazo: la hoja en reposo, despegando, cruzando la cocina y posándose sobre la tartaleta.
Comprueba los números
El script de verificación de Gemini 4 se queda en work/, así que puedes volver a ejecutarlo sobre el proyecto guardado cuando quieras. Esto es lo que midió en nuestro sequence.blend final:
| Comprobación | Lo que pide el brief | Resultado |
|---|---|---|
| Punto de partida en el fotograma 1 | a menos de 20 mm | 1,03 mm |
| Reposo hasta el fotograma 48 | deriva máxima de 8 mm | 6,69 mm |
| Distancia recorrida al fotograma 120 | al menos 0,10 m | 0,152 m |
| Corredor de vuelo en los fotogramas 120, 168, 192 | a menos de 35 mm | 0,00 mm |
| Velocidad de la hoja | máximo 16 mm por fotograma | 9,35 mm |
| Aleteo durante el vuelo | al menos 4 mm RMS | 11,07 mm |
| Contacto con la tartaleta, fotogramas 241–288 | al menos el 15 % de la hoja | 22,9 % |
| Hoja atravesando la tartaleta | ninguna | 0 triángulos superpuestos |
| Asentamiento, fotogramas 264–288 | máximo 3 mm | 0,37 mm |
| Enfoque de la profundidad de campo, planos 2 y 3 | a menos de 25 mm de la hoja | 0,19 mm o menos |
| Giro de cámara más rápido | máximo 4° por fotograma | 0,71° |
Son las comprobaciones del propio agente frente al brief. El paquete de la tarea también incluye un evaluador independiente: 23 reglas medidas más un juez visual que puntúa la historia, el oficio y el acabado del papel. Si quieres una puntuación oficial, ejecuta tú mismo grader/grade.sh sobre el resultado cuando termine la ejecución, fuera de la carpeta del agente.
Míralo en acción
El brief pide un proyecto de Blender, no un vídeo. Así que enviamos un mensaje de seguimiento en el mismo proyecto, pidiendo a Gemini 4 que exportara la secuencia como MP4 con una vista previa en el navegador.
Devolvió sequence.mp4 (288 fotogramas, 640×480 en H.264, 3 MB) y preview.html. La página de vista previa reproduce la cinemática con un contador de fotogramas en directo, saltos con un clic a cada uno de los cuatro planos y el storyboard completo debajo.
Qué configuraríamos de otra forma
Nuestra carpeta de proyecto contenía más de lo que el agente necesitaba. Junto a PROMPT.md y agent_environment/, también estaban el README.md de la tarea, su grader/ y sus reference_runs/ de modelos anteriores.
Eso importa. El script de comprobación de Gemini 4 evalúa la impresión de la hoja frente a un límite de estiramiento del 5 %. Ese número no está en el prompt: está en el README, junto a notas sobre cómo fallaron ejecuciones anteriores. Los scripts de Gemini 4 nunca leyeron el evaluador ni las ejecuciones de referencia, pero es razonable suponer que el README influyó en sus objetivos.
Así que considera nuestra ejecución una demostración, no una puntuación de benchmark. Para una prueba justa, dale a tu agente exactamente dos cosas, PROMPT.md y agent_environment/, y guarda el evaluador donde no pueda verlo.
Hazlo tuyo
El mismo patrón sirve para cualquier escena de Blender:
- Convierte el gusto en números. Encuadre, velocidades, distancias de enfoque, contacto. Los objetivos medibles permiten que tu agente se compruebe a sí mismo antes de que pulses play.
- Dale un corredor. Unos pocos puntos de control en un archivo JSON dirigen la acción sin poner a mano ni un solo fotograma clave.
- Pide una entrega de verdad. Un
.blendempaquetado y editable, una lista de planos y un storyboard. Obtienes un proyecto con el que seguir trabajando, no solo un render. - Déjalo verificar. El mejor momento de nuestra ejecución fue cuando Gemini 4 notó que la cara impresa de su hoja miraba en dirección contraria a la cámara, y lo corrigió antes de que nosotros lo viéramos.
Doce segundos de animación solían suponer una tarde en el viewport. Ahora es un solo prompt, y un proyecto que puedes abrir, retocar y hacer tuyo.
Créditos: creado con Gemini 4 y Eigent. Escena: «Cozy Kitchen» (pantalla de inicio de Blender 3.5) de Nicole Morena, CC-BY-SA; la escena derivada y los renders mantienen la atribución y los términos ShareAlike. Brief y datos de la tarea: trabajo original de Eigent. Música: «Quirk n Twerk» de The Soundlings (YouTube Audio Library).



