VibeVideoBench:Evaluating Multimodal Agents on Code-Driven Video Generation
Abstract
Diffusion video models produce striking clips, but they cannot reliably render an exact formula, a correct chart, a ruleconsistent game or narration synchronized to on-screen events. A different route is emerging: multimodal agents that write code to render every frame and synthesize every sound. We introduce VibeVideoBench, a benchmark for evaluating agents on code-driven video generation. Its 239 self-contained tasks in English and Chinese span 12 categories, from data stories and music-driven pieces to classroom lessons and paper explainers; each asks an agent, running in its native harness inside a sandbox, to deliver a finished MP4 with sound within one hour. Evaluation is hierarchical and evidence-based: program checks of the delivery spec, about 13k task-specific rubric checks traced to the requirements they enforce, and five quality dimensions anchored per task, judged by three VLM judge panels and validated with blind human preferences. Across nine frontier agent systems and 2,151 scored rollouts, the benchmark is far from solved: GPT-6 Astra and Claude Opus 5.5 lead clearly, yet even the best system fails a core requirement on about a quarter of tasks. Whether a video arrives at all matters as much as its quality, and three quarters of the lost videos are final renders started too late, run too slowly or never started. The judges agree with each other and with human preferences on system rankings, but only moderately on individual videos.
Figures & tables
| Benchmark | Output | Pixels from | General agents | Open domain | Audio judged | Input assets | Task-spec. rubric |
| VBench [ 21 ] | T2V clip | diffusion | ✗ | ✓ | ✗ | ✗ | ✗ |
| EvalCrafter [ 30 ] | T2V clip | diffusion | ✗ | ✓ | ✗ | ✗ | ✗ |
| VideoArgus [ 46 ] | T2V clip | diffusion | ✗ | ✓ | ✗ | ✗ | ✓ |
| ArtifactsBench [ 47 ] | web page | LLM code | ✗ | ✓ | ✗ | ✗ | ✓ |
| TheoremExplain [ 27 ] | Manim video | pipeline | ✗ | ✗ | ✗ | ||
| Paper2Video [ 50 ] | talk video | pipeline | ✗ | ✗ | ✓ |
| J1–J2 | J1–J3 | J2–J3 | ||
| System Spearman (overall) | 0.933 | 0.950 | 0.950 | |
| Check-level agreement / Cohen’s | 94.6 / 0.56 | 91.3 / 0.52 | 91.7 / 0.44 | |
| Video-level Pearson (overall) | 0.45 | 0.51 | 0.51 | |
| Same-task pair ordering accuracy | 69.3 | 69.7 | 65.7 | |
| J1 | J2 | J3 | Mean | |
| Human vs. judge, system | 0.98 | 0.80 | 0.90 | 0.98 |
Appendix figures & tables26 assets
Supplementary material from the paper’s appendix.
Appendix
| Stage | Description | Count |
| Stream (i): web prompts | ||
| Collected | prompts written for code-based video tools (452 social posts, 25 Remotion gallery, 7 other) | 484 |
| Kept after strict review | every prompt read in full; nine removal codes | 152 (31%) |
| Stream (ii): dense captions of real videos | ||
| Scanned | caption records (HD-VILA, Molmo2, LLaVA-Video, ActivityNet sources) | 508,993 |
| Lexical recall | 26 content directions | 6,711 |
| Category | Tasks | Most frequent subcategories (tasks; multi-label) |
| C01 Brand & marketing | 9 | Contextual selling point & call to action (7), Brand & product showcase (3), Musical structure & AV choreography (2), Visual metaphor (1) |
| C02 Product & feature demos | 6 | Software & device tutorials (4), Making, assembly & modification (1), Musical structure & AV choreography (1), System simulation & causal modelling (1) |
| C03 Events & personal expression | 7 | Event invitation (4), Personal expression & tributes (3), Statistical charts & comparison (1), Musical structure & AV choreography (1) |
| C04 Concept & pipeline explainers | 57 | Mechanism & causal chain (26), Engineering & machines (14), Physics & astronomy (13), Mathematical derivation & counting (12) |
| C05 Data & fact stories | 24 | History & society (12), Statistical charts & comparison (11), History & chronology (11), Geography & earth science (8) |
| C06 Visual art & form | 26 | Spatial tour & scene experience (9), Character performance & choreography (5), Visual metaphor (5), Abstract form & scale (3) |
| ID | Presentation form | Cat. | ID | Presentation form | Cat. | ||
| S09 | Mechanism & causal chain | 51 | 6 | S27 | Abstract form & scale | 6 | 3 |
| S29 | Musical structure & AV choreography | 28 | 7 | S28 | Visual metaphor | 6 | 2 |
| S07 | Making, assembly & modification | 25 | 3 | S38 | Worked examples & problem solving | 6 | 2 |
| S08 | Mathematical derivation & counting | 23 | 4 | S34 | Conceptual frameworks & decision paths | 5 | 1 |
| S14 | Statistical charts & comparison | 18 | 5 | S01 | Software & device tutorials | 4 | 1 |
| S10 | System architecture & information flow | 17 | 3 | S25 | Time-span, identity & emotional change | 4 | 2 |
| Language | 209 English / 30 Chinese [core 199 / 6; lessons 24 Chinese; papers 10 English] |
| Prompt length | core English prompts: median 1,638 words, IQR 967–2,179, range 503–5,581; lesson and paper prompts are short (median 262 words/characters) and carry their content in the supplied note or PDF |
| Resolution / fps | 1920 1080: 227; other: 12; 30 fps: 228, 60 fps: 11; exact frame count: 54 |
| Target duration | midpoint median 118 s, IQR 55–270 s, range 8–894 s; lessons 180–480 s; 38 tasks exceed 5 minutes; 11.1 hours per pass |
| Audio policy | 1 required channel: 168 (70%) [core 134 (65%)]; speech required: 117 (49%); every lesson and paper requires narration |
| Input assets | 201 tasks [core 167, all 34 lessons and papers]; 2.69 GB |
| Rubric | 12,985 L2 checks [core 10,813; lessons and papers 2,172]; mean 54.3, median 54, range 13–110 |
| ID / tag | Title | Pass | Fail | Observation scope |
| V05 core, visual | Initial small form | Mario is small at departure and does not possess large-form abilities without cause during the initial stage. | Starts in the large form and skips the first growth, or has already grown before acquiring the mushroom. | From departure until before the first mushroom contact |
| V12 core, visual | Large form breaks a brick from below | After becoming large, Mario hits BRICK1 or BRICK2 from below and causes at least one to shatter. | Breaking the brick early in small form, without contact, or hitting only the question block. | After the transformation until the first brick breaks |
| V30 core, visual | Complete jumps | Required jumps have traceable takeoff, airborne movement and landing/contact. | Pose changes impersonate displacement; teleporting to the landing point. | All required jumps |
| V41 core, visual | Order of key events | Q1 mushroom brick G1 stomp shell kicked into G2 hit by G3 lift over pit flagpole and castle. | Reordering events, or montage that hides the actual sequence. | Whole video |
| V50 core, audio-visual | Jump SFX synchronization | A jump cue corresponding to the action is present at each required takeoff. | No cue, or the effect occurs during an unrelated action. | Every required takeoff and the audio track |
| System | Lab | Harness (unattended mode) | Effort |
| GPT-6 Astra | OpenAI | Codex CLI 0.162 ( exec --dangerously-bypass-approvals-and-sandbox ) | max |
| GPT-5.6 Sol | OpenAI | Codex CLI (same) | max (xhigh on 35 early runs) |
| Claude Opus 5.5 | Anthropic | Claude Code 2.1.301 ( -p --dangerously-skip-permissions ) | max |
| Claude Sonnet 5.5 | Anthropic | Claude Code 2.1.301 (same) | max |
| Gemini 4 Argon | Antigravity CLI ( --print --dangerously-skip-permissions ) | high (xhigh rejected) | |
| Gemini 3.8 Flash | Antigravity CLI (same) | high |
| Panel | L3 (deliv.) | L2 pass | Unknown | Leniency | Spread nv 0 | Spread deliv. | 1 | 2 | 3 | 4 | 5 | unk. |
| J1 | 3.61 | 90.9% | 0.9% | 0.41 | 1.47 | 0.89 | 0.8 | 6.0 | 28.6 | 57.4 | 6.0 | 1.3 |
| J2 | 4.01 | 95.7% | 0.4% | 0.19 | 1.19 | 0.46 | 0.2 | 2.5 | 9.2 | 69.9 | 17.3 | 0.8 |
| J3 | 4.03 | 88.2% | 6.3% | 0.22 | 1.39 | 0.65 | 2.1 | 2.2 | 16.3 | 46.8 | 31.4 | 1.2 |
| System | J1 (Gemini 4 Argon) | J2 (Gemini 3.8 Flash) | J3 vision (GPT-5.6 Sol) |
| GPT-6 Astra | [0.11, 0.23] | [ 0.29, 0.17] | [ 0.02, 0.13] |
| Claude Opus 5.5 | [0.15, 0.27] | [ 0.17, 0.04] | [ 0.18, 0.03] |
| DeepSeek-V4.1-Flash | [ 0.10, 0.05] | [ 0.02, 0.13] | [ 0.09, 0.04] |
| Claude Sonnet 5.5 | [0.11, 0.25] | [ 0.15, 0.01] | [ 0.17, 0.03] |
| Kimi K3 | [ 0.04, 0.08] | [ 0.04, 0.10] | [ 0.12, 0.03] |
| GPT-5.6 Sol | [ 0.40, 0.24] | [0.05, 0.20] | [0.12, 0.27] |
| # | System | L2 pass (%) | Task success (%) | L3 dims (delivered only) | Overall | Unk. | |||||||
| deliv. | nv 0 | all core | strict | VQ | VA | CL | TM | AQ | deliv. | nv 0 | (%) | ||
| J1: Gemini 4 Argon (full video + audio) | |||||||||||||
| 1 | GPT-6 Astra | 98.4 | 98.2 | 76.6 | 83.7 | 4.00 | 4.06 | 4.07 | 3.87 | 3.80 | 3.963 | 3.946 | 0.6 |
| 2 | Claude Opus 5.5 | 98.4 | 98.4 | 76.6 | 83.7 | 3.92 | 4.01 | 4.04 | 3.92 | 3.68 | 3.915 | 3.915 | 0.7 |
| 3 | Claude Sonnet 5.5 | 95.2 | 92.5 | 67.8 | 73.6 | 3.79 | 3.92 | 3.97 | 3.83 | 3.62 | 3.826 | 3.712 | 0.7 |
| 4 | DeepSeek-V4.1-Flash | 91.6 | 90.5 | 49.0 | 54.4 | 3.64 | 3.82 | 3.78 | 3.50 | 3.60 | 3.667 | 3.620 | 0.9 |
| System | Mean | 95% CI | Comparison | W/L/T | |
| GPT-6 Astra | 4.109 | [4.052, 4.156] | Astra Opus | 0.911 | 127/89/23 |
| Claude Opus 5.5 | 4.074 | [4.037, 4.109] | Opus DeepSeek | 1.000 | 133/74/32 |
| DeepSeek-V4.1-Flash | 3.907 | [3.826, 3.978] | DeepSeek Sonnet | 0.697 | 89/121/29 |
| Claude Sonnet 5.5 | 3.878 | [3.769, 3.977] | Sonnet Kimi | 1.000 | 152/68/19 |
| Kimi K3 | 3.441 | [3.267, 3.593] | Kimi GPT-5.6 Sol | 0.860 | 143/86/10 |
| GPT-5.6 Sol | 3.328 | [3.174, 3.479] | GPT-5.6 Sol Argon | 0.980 | 82/142/15 |
| Category | GPT-6 Astra | Opus 5.5 | Sonnet 5.5 | Gem. 4 Argon | DeepSeek | Kimi K3 | GLM-5.3-Flash | GPT-5.6 Sol | Gem. 3.8 Flash | Mean |
| Overall, no video (1–5) | ||||||||||
| Brand & marketing (9) | 4.18 | 4.18 | 3.94 | 2.69 | 4.11 | 3.60 | 2.96 | 3.14 | 2.19 | 3.44 |
| Product & feature demos (6) | 4.20 | 4.24 | 3.51 | 2.73 | 3.50 | 4.04 | 4.00 | 4.02 | 3.31 | 3.73 |
| Events & personal expression (7) | 4.03 | 3.93 | 3.82 | 3.15 | 3.78 | 3.22 | 2.92 | 3.60 | 3.59 | 3.56 |
| Concept & pipeline explainers (57) | 4.19 | 4.15 | 3.94 | 3.13 | 4.03 | 3.46 | 2.53 | 3.17 | 2.92 | 3.50 |
| Data & fact stories (24) | 4.14 | 4.01 | 3.85 | 3.04 | 4.03 | 3.62 | 2.52 | 3.52 | 2.88 | 3.51 |
| Pass rate (%) | Unknown rate (%) | |||||
| System | Visual | Audio | Audio-visual | Visual | Audio | Audio-visual |
| GPT-6 Astra | 96.4 | 99.4 | 98.6 | 2.5 | 1.7 | 1.9 |
| Claude Opus 5.5 | 96.6 | 98.9 | 98.9 | 2.5 | 1.2 | 1.0 |
| Claude Sonnet 5.5 | 92.3 | 96.6 | 97.9 | 3.0 | 2.7 | 1.5 |
| Gemini 4 Argon | 95.7 | 98.8 | 98.2 | 3.1 | 2.9 | 1.2 |
| DeepSeek-V4.1-Flash | 91.5 | 97.1 | 96.8 | 3.1 | 1.7 | 1.6 |
| System | Playable | Resolution | FPS | Duration | Frame count † | Audio ‡ | Project | All pass | |
| GPT-6 Astra | 99.5 | 98.5 | 96.6 | 98.0 | 98.1 | 100.0 | 96.1 | 190/205 | 92.7 |
| Claude Opus 5.5 | 100.0 | 100.0 | 99.5 | 100.0 | 100.0 | 100.0 | 100.0 | 204/205 | 99.5 |
| Claude Sonnet 5.5 | 96.6 | 96.6 | 96.6 | 94.1 | 92.6 | 98.0 | 95.1 | 192/205 | 93.7 |
| Gemini 4 Argon | 75.6 | 75.6 | 75.6 | 75.6 | 79.6 | 74.5 | 75.6 | 155/205 | 75.6 |
| DeepSeek-V4.1-Flash | 98.5 | 98.5 | 97.6 | 97.1 | 96.3 | 99.0 | 96.6 | 192/205 | 93.7 |
| Kimi K3 | 87.8 | 87.8 | 87.8 | 84.9 | 87.0 | 86.7 | 87.3 | 172/205 | 83.9 |
| System | Self-ended | Timed out | Error | Video | Playable | Check pass | Median s | Calls | Tool calls | Out. tok (k) | Reas. |
| GPT-6 Astra | 229 | 10 | 0 | 238 | 238 | 220 | 2,464 | 51 | 49 | 60.9 | 49% |
| Claude Opus 5.5 | 238 | 1 | 0 | 239 | 239 | 228 | 2,283 | 51 | 49 | 130.7 | 56% |
| DeepSeek-V4.1-Flash | 217 | 22 | 0 | 239 | 236 | 220 | 3,070 | 117 | 130 | 166.8 | 59% |
| Claude Sonnet 5.5 | 218 | 20 | 1 | 235 | 232 | 215 | 3,065 | 56 | 63 | 254.7 | 75% |
| Kimi K3 | 180 | 58 | 1 | 218 | 213 | 192 | 2,874 | 63 | 80 | 75.6 | 51% |
| GPT-5.6 Sol | 147 | 90 | 2 | 224 | 213 | 187 | 3,370 | 109 | 101 | 129.7 | 57% |
| Primary renderer (% of runs) | Also used (% of runs) | |||||||
| System | cairo | PIL/numpy | Browser 2D | three.js | Blender | Other | ffmpeg | Synth. audio |
| GPT-6 Astra | 25 | 16 | 23 | 29 | 7 | 0 | 100 | 93 |
| Claude Opus 5.5 | 54 | 5 | 15 | 20 | 4 | 2 | 100 | 96 |
| DeepSeek-V4.1-Flash | 24 | 12 | 36 | 24 | 4 | 0 | 100 | 95 |
| Claude Sonnet 5.5 | 46 | 10 | 22 | 19 | 2 | 1 | 100 | 89 |
| Kimi K3 | 3 | 45 | 26 | 23 | 3 | 0 | 97 | 85 |
| Self-inspection statistics | Mean delivered score of playable runs by # images viewed | ||||||||||||
| System | 1 view | Median | Mean | p90 | Extract/run | ffprobe/run | Runs ffprobe | Last 25% | 0 | 1–4 | 5–14 | 15–39 | 40+ |
| GPT-6 Astra | 229/239 | 3 | 3.4 | 6 | 3.1 | 2.1 | 202 | 22% | 4.27 | 4.13 | 4.08 | – | – |
| Claude Opus 5.5 | 238/239 | 7 | 7.9 | 12 | 4.6 | 3.9 | 237 | 11% | (3.47) | 3.97 | 4.09 | 4.24 | (3.80) |
| DeepSeek-V4.1-Flash | 239/239 | 35 | 36.0 | 56 | 6.9 | 8.0 | 238 | 10% | – | (4.27) | 3.53 | 3.91 | 4.07 |
| Claude Sonnet 5.5 | 229/239 | 10 | 14.3 | 28 | 4.7 | 4.7 | 232 | 24% | 3.27 | 3.77 | 3.94 | 4.20 | 4.24 |
| Kimi K3 | 239/239 | 17 | 18.8 | 31 | 1.9 | 2.7 | 214 | 38% | – | 3.29 | 3.84 | 3.90 | 4.05 |
| Cause or failure mode (runs) | GPT-6 Astra | Opus 5.5 | DeepSeek | Sonnet 5.5 | Kimi K3 | GPT-5.6 Sol | Gem. 4 Argon | Gem. 3.8 Flash | GLM-5.3-Flash | Total |
| Time management | 1 | 0 | 2 | 7 | 25 | 25 | 31 | 22 | 56 | 169 |
| Final render started late or ran too slowly | 1 | 0 | 2 | 5 | 14 | 18 | 20 | 19 | 25 | 104 |
| Final render never started | 0 | 0 | 0 | 2 | 11 | 7 | 11 | 3 | 31 | 65 |
| Stalled or cut-off render | 0 | 0 | 0 | 0 | 0 | 0 | 21 | 24 | 0 | 45 |
| ffmpeg pipe deadlock (stderr never drained) | 0 | 0 | 0 | 0 | 0 | 0 | 19 | 14 | 0 | 33 |
| Turn ended, background render cut off | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 10 | 0 | 12 |
| System | Mean | Median | p90 | Max | Total (239) | Calls/task | Cache hit (%) | $/playable video | Overall | Overall per $ |
| GPT-6 Astra | 8.19 | 7.88 | 11.88 | 15.61 | 1,957 | 46 | 97 | 8.22 | 4.109 | 0.50 |
| Claude Opus 5.5 | 15.38 | 10.19 | 31.22 | 47.08 | 3,676 | 51 | 65 | 15.38 | 4.074 | 0.26 |
| DeepSeek-V4.1-Flash | 0.47 | 0.45 | 0.67 | 1.30 | 113 | 117 | 97 | 0.48 | 3.911 | 8.25 |
| Claude Sonnet 5.5 | 8.26 | 7.09 | 13.07 | 34.99 | 1,974 | 63 | 81 | 8.51 | 3.880 | 0.47 |
| Kimi K3 | 3.53 | 3.53 | 4.94 | 7.25 | 843 | 61 | 97 | 3.96 | 3.440 | 0.98 |
| GPT-5.6 Sol | 11.84 | 11.49 | 19.59 | 28.39 | 2,831 | 106 | 81 | 13.29 | 3.317 | 0.28 |
| System | Win rate [Wilson 95%] | BT-Elo [95% CI] | Rank CI | Overall, delivered (rank) |
| GPT-6 Astra | 0.783 [0.644, 0.877] | 1242 [1134, 1387] | 1–3 | 4.126 (1) |
| Claude Opus 5.5 | 0.741 [0.616, 0.837] | 1203 [1111, 1327] | 1–3 | 4.074 (2) |
| Claude Sonnet 5.5 | 0.676 [0.508, 0.809] | 1121 [1016, 1257] | 1–5 | 3.999 (3) |
| Gemini 4 Argon | 0.607 [0.476, 0.724] | 1081 [1001, 1176] | 2–6 | 3.989 (4) |
| DeepSeek-V4.1-Flash | 0.511 [0.370, 0.650] | 1022 [900, 1154] | 3–7 | 3.961 (5) |
| Kimi K3 | 0.449 [0.319, 0.587] | 997 [873, 1107] | 4–7 | 3.864 (6) |
| Metric | Spearman | Kendall |
| Overall, delivered only | 0.98 | 0.94 |
| L2 pass rate (delivered) | 0.92 | 0.78 |
| L2 strict success | 0.92 | 0.78 |
| Overall, no video | 0.77 | 0.61 |
| Playable-delivery rate | 0.66 | 0.47 |
Video Generation Evaluation
Video generation evaluation measures visual quality, prompt adherence, temporal consistency, physical plausibility, and task-specific behavior in synthesized videos.
See all 191 papers