logo
  • Environments
  • Enterprise
  • Pricing
DeveloperOct 14, 2026

Gemini 4: Vibe-Code a 3D Cinematic in Blender from One Prompt

EigentEigent
Vibe-Code a 3D Cinematic in Blender from One Prompt with Gemini 4 and Eigent
Automate Everything with
AI Workforce on Desktop
Download Eigent

From One Prompt to a Four-Shot Blender Cinematic

A twelve-second shot sequence sounds small. In Blender, it's a lot of work - staging, keyframes, camera moves, depth of field, and a sheet of paper that has to bend like paper, not like cloth. Most of that happens one click at a time in the viewport.

So we gave the whole job to an agent. With Gemini 4 in Eigent, one prompt turned the Cozy Kitchen scene into a four-shot cinematic. A draught lifts a recipe page off its stand, carries it across the kitchen, and drapes it over a strawberry tartlet. Gemini 4 never opened the Blender window. It wrote Blender Python, ran it headless, checked its own work, and fixed what it found.

The Full Workflow at a Glance

You bring the scene and the brief. Gemini 4 does the rest from the command line. Every stage leaves a file behind, so you can check the work at each step.

StageWhat happensWhat you get
ReadOpen the scene headless and load the task dataA test render of the page's start point
StageAdd a recipe stand, a curtain rod, and wind cluesA set where the draught has a visible source
BuildModel and texture the recipe pageRecipePage, a thin two-sided sheet with a painted recipe card
AnimateFit a path through the corridor and a drape over the tartletSmooth flight and a supported resting fold
ShootPlace four cameras and bind them to the cutsA four-shot edit with depth of field in shots 2 and 3
VerifyMeasure every rule in the brief and patch what failsA re-runnable check script in work/
Hand offRender stills and the storyboard, write the shot listsequence.blend, shotlist.csv, storyboard.png, and nine stills

Here's how to do it yourself, step by step - including one thing we'd set up differently next time.


What You'll End Up With

  • An editable Blender project - sequence.blend, 13 MB, with every image packed and no linked libraries. Open it and keep working.
  • A shot list - shotlist.csv, one row per shot, with frame range, camera, and action.
  • A storyboard - storyboard.png, nine labelled 640×480 panels in a 3×3 grid.
  • Nine stills - frames 1, 48, 73, 120, 145, 192, 217, 264, and 288.
  • A video and a preview page - sequence.mp4 and preview.html, from one short follow-up request.

Before You Start

  • Eigent installed on your machine.
  • Gemini 4 - through Eigent Cloud, or with your own Gemini API key.
  • Blender on the same machine. Gemini 4 drives it from the command line, so it never needs the window. We had Blender 5.2 LTS installed. The task also ships a Docker image that pins bpy 5.2.2, if you'd rather sandbox it.
  • The task package. Ours is the "recipe-page mishap" from our 3D coding environments:
FileWhat it gives the agent
PROMPT.mdThe brief - the only message you send
agent_environment/input/kitchen.blendThe prepared Cozy Kitchen scene
agent_environment/input/subjects.jsonWhich objects make up the strawberry tartlet
agent_environment/input/action.jsonThe page's start point and its flight corridor at frames 120, 168, and 192
agent_environment/input/presentation.jsonStill and storyboard settings
agent_environment/input/source_overview.pngA preview of the untouched scene
agent_environment/scripts/presentation.py (renders stills and the storyboard) and review.py

1Select Gemini 4

On Eigent Cloud - no API key needed:

  1. On the home screen, open the model picker under the input box.
  2. Under Eigent, choose Gemini 4 Argon.

With your own Gemini API key:

  1. Open Settings → Models.
  2. Find Gemini and open its settings.
  3. Paste your API key.
  4. Set the model type to gemini-4-argon.
  5. Click Save, then pick it under Gemini in the model picker.

The default thinking effort works. We ran it as a Single Agent with Full access, so it could run Blender and write files without stopping to ask.

2Set Up the Project Folder

Create a project in Eigent and point it at a folder that holds two things:

showcase-kitchen-draught/
  PROMPT.md
  agent_environment/
    input/      # kitchen.blend, subjects.json, action.json, presentation.json, source_overview.png
    scripts/    # presentation.py, review.py

Keep everything else out - especially any grader, reference runs, or notes about past results. More on why below.

3Paste the Prompt

Copy the brief below into the Cowork with input box and send it unchanged.

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.

The prompt was written for a Docker container, so its paths start with /app. Running on our Mac, Gemini 4 mapped them to the project folder by itself - agent_environment/input, work/, and output/.

A few parts of this brief do the heavy lifting:

  • Numbers instead of adjectives. "Make it cinematic" is a mood. "Within 35 mm of the corridor at frame 168" is a target the agent can measure - and hit.
  • Story beats, not just rules. Calm setup, motivated lift, flight, contact, settling. The numbers keep the motion honest - the beats keep it a story.
  • Preserve the kitchen. Source objects stay within 2 mm, with their materials intact. The agent adds to the scene - it doesn't rebuild it.
  • A real handoff. A packed, editable .blend that replays with Python auto-execution off. That's a file you can open tomorrow and keep animating.

4Let Your Agent Work

Send the prompt. Gemini 4 plans the task, then works through it in Blender Python. Our run took about 50 minutes, from the first file read to the final self-audit. Here's what it built, in order:

  1. Read the scene. It opened kitchen.blend headless, loaded the tartlet and corridor data, and rendered a test view of the start point.
  2. Staged the set. A small wooden recipe stand under the start point, and a curtain rod across the kitchen window.
  3. Added wind clues. A curtain sash, satin ribbons, and a tag on the stand - all billowing the same way, so the draught has a visible source.
  4. Made the page. RecipePage is 0.136 × 0.094 m with 1,218 vertices, two-sided, with a recipe card it painted itself - "Recipe No. 14, Strawberry Tartlet". The chef's notes end with a line we didn't ask for: "Keep recipe cards away from open kitchen window draughts!"
  5. Planned the motion. A smooth path through the corridor checkpoints, then a resting drape fitted to the tartlet's actual surface.
  6. Placed four cameras. 42 mm for the calm setup, 48 mm with f/5.6 depth of field for the lift, a 52 mm tracking shot for the flight, and a 58 mm hero shot for the landing. Timeline markers bind each camera to its cut at frames 1, 73, 145, and 217.
  7. Checked its own work. It wrote a verification script for every measurable rule in the brief, ran it, and patched what it found. The printed side of the page was tilting away from camera, so it flipped the pitch. It added pleats to the curtain, nudged the resting page away from the neighbouring tartlets, and raised the final camera for a cleaner reveal.
  8. Handed off. It rendered the stills and storyboard with presentation.py, wrote shotlist.csv, and ran a final audit - every source object present, unmoved, and with its original materials.

5Read the Shot List

Open output/shotlist.csv - four shots, one per camera:

ShotFramesCameraAction
11–72Cam_Shot1Calm setup on the wooden recipe stand as window ribbons billow in the incoming draught and lift the recipe page
273–144Cam_Shot2Draught carries the fluttering recipe page upward from the stand into the high flight corridor
3145–216Cam_Shot3Page swoops across the kitchen work area and glides toward the two-tiered pastry stand
4217–288Cam_Shot4Page touches down and settles in a stiff supported arch draped over the strawberry tartlet

Then open storyboard.png. Nine frames tell the whole story at a glance - the page at rest, lifting off, crossing the kitchen, and settling over the tartlet.

6Check the Numbers

Gemini 4's verification script stays in work/, so you can re-run it on the saved project any time. Here's what it measured on our final sequence.blend:

CheckBrief asks forResult
Start point at frame 1within 20 mm1.03 mm
Calm hold through frame 48at most 8 mm drift6.69 mm
Distance travelled by frame 120at least 0.10 m0.152 m
Flight corridor at frames 120, 168, 192within 35 mm0.00 mm
Page speedat most 16 mm per frame9.35 mm
Flutter during flightat least 4 mm RMS11.07 mm
Contact with the tartlet, frames 241–288at least 15% of the page22.9%
Page passing through the tartletnone0 overlapping triangles
Settling, frames 264–288at most 3 mm0.37 mm
Depth-of-field focus, shots 2 and 3within 25 mm of the page0.19 mm or less
Fastest camera turnat most 4° per frame0.71°

These are the agent's own checks against the brief. The task package also includes a separate grader - 23 measured rules plus a visual judge that scores story, craft, and paper finish. If you want an official score, run grader/grade.sh on the output yourself once the run is done - from outside the agent's folder.

7Watch It Play

The brief asks for a Blender project, not a video. So we sent one follow-up message in the same project, asking Gemini 4 to export the sequence as an MP4 with a browser preview.

It came back with sequence.mp4 - 288 frames, 640×480 H.264, 3 MB - and preview.html. The preview page plays the cinematic with a live frame readout, one-click jumps to each of the four shots, and the full storyboard underneath.


What We'd Set Up Differently

Our project folder held more than the agent needed. Alongside PROMPT.md and agent_environment/, it also had the task's README.md, its grader/, and its reference_runs/ from earlier models.

That matters. Gemini 4's check script tests the page's print against a 5% stretch limit. That number isn't in the prompt - it's in the README, next to notes on how earlier runs failed. Gemini 4's scripts never read the grader or the reference runs, but it's fair to assume the README shaped its targets.

So treat our run as a showcase, not a benchmark score. For a fair test, give your agent exactly two things - PROMPT.md and agent_environment/ - and keep the grader somewhere it can't see.

Make It Your Own

The same pattern works for any Blender scene:

  • Turn taste into numbers. Framing, speeds, focus distances, contact. Measurable targets let your agent check itself before you ever press play.
  • Give it a corridor. A few checkpoints in a JSON file steer the action without hand-keying a single frame.
  • Ask for a real handoff. A packed, editable .blend, a shot list, and a storyboard. You get a project you can keep working on - not just a render.
  • Let it verify. The best moment in our run was Gemini 4 noticing the printed side of its page faced away from camera - and fixing it before we ever saw it.

Twelve seconds of animation used to mean an afternoon in the viewport. Now it's one prompt - and a project you can open, tweak, and make yours.


Credits: built with Gemini 4 and Eigent. Scene: "Cozy Kitchen" (Blender 3.5 splash) by Nicole Morena, CC-BY-SA - the derived scene and renders keep the attribution and ShareAlike terms. Brief and task data: original Eigent work. Music: "Quirk n Twerk" by The Soundlings (YouTube Audio Library).

Other use cases

Gemini 4: Turn Video Tutorials into Production RL Engineering Skills

Gemini 4: Turn Video Tutorials into Production RL Engineering Skills

Watch the listed YouTube talks and turn their methods and insights into 2–4 reusable, file-based agent skills, using only these videos as primary sources. For each talk, build a timestamped outline, record the key insights, results, and warnings, and label every claim OBSERVED, INFERRED, or UPDATED. Give each skill a SKILL.md with a key insights section and a tool-agnostic path, plus an evidence.md. Validate every skill, then publish a light-mode HTML report served from 127.0.0.1 with the talks embedded, clickable timestamps, a comparison of the talks, a coverage matrix that shows gaps, and a clear list of limitations.

Build a CAD Model from Video: Gemini 3.7 Flash vs. 3.6 Flash

Build a CAD Model from Video: Gemini 3.7 Flash vs. 3.6 Flash

Analyze the transformers character in the uploaded reference video and generate a production-ready, highly detailed 3D CAD/mesh model exported as a .glb file. Analyze the character identity and style, joints and articulation, and surface details. Create ultra-high-precision hard-surface mechanical geometry with distinct body and armor pieces separated around logical joint pivot points. Use metallic PBR materials, including anodized metals, brushed steel, dark titanium, high-gloss painted armor, and emissive channels for the eyes, chest core, and joint glow effects. Pack the diffuse, normal, roughness, metallic, and emissive textures directly into the GLB. Ensure clean topology, manifold geometry, and real-time optimization without losing mechanical sharpness.

Automated VAT Return from Receipts and Invoices

Automated VAT Return from Receipts and Invoices

Please process all receipts and invoices in the "VAT" folder, including photos, scanned PDFs, and digital invoices. The final output should include only two files: (1) vat_return.xlsx — the Excel file should include one row per receipt or invoice, list all extracted fields, show whether each item is eligible for VAT recovery, show the recoverable VAT amount for each eligible item, include the exclusion reason for non-recoverable items, clearly flag items that require manual review, and include a summary sheet showing the total recoverable VAT amount. (2) vat_return.html — create a self-contained HTML file that can be opened directly and shared with the accounting team. The HTML file should show all VAT recovery items, the recoverable VAT amount for each item, excluded items and the reasons for exclusion, items requiring manual review, and the total recoverable VAT amount. Do not guess any uncertain information.

Automate everything with AI workforce on desktop
Download Eigent

Try Eigent today

Download the open-source desktop app. Your AI workforce, running on your machine.

Download Eigent
Eigent

Get the latest updates, tutorials, and releases on AI workforce automation.

Thank you for subscribing!

ProductEigentEnvironmentsPricingEnterprise
ExploreSolutionsUse CasesSkillsPluginsBlogs
DevelopersDocsGitHubCAMEL-AIOpen Source FundPartner
DownloadFor open source
CompanyAbout UsBrandCareersSupportTerms of UsePrivacy PolicySecurity & TrustCookie PolicyRefund & Trial Policy

All rights reserved © 2026 EIGENT UK LTD