Apply to my task
arXiv:2610.30717 ★ 77 Oct 22, 2026

PhyEvolve: a three-role pipeline that fills in a scene's physics before the prompt ever reaches the video generator

Key result

Discovered: video generators confuse "I can't see it" with "it isn't happening." The camera pulls away from a kettle, comes back, and the water still hasn't boiled. PhyEvolve lets you shoot clips where processes keep running off-screen: the pizza bakes while the camera is on the customer. The trick: visibility and physics are tracked separately, and "the camera pulled away" stops nothing. Three roles in an ordinary chat rewrite the prompt and add a chain of states. The generator isn't fine-tuned. Without the physics step, success on "invisible" processes drops from 45.7% to 29.0%.

01

TL;DR

PhyEvolve is a three-step treatment for video-generator prompts. First, the model breaks down the scene and separates physical events ("a hand turns off the faucet") from visibility changes ("the camera pulls back", "a curtain hides the object"). Then, for every process, it writes out causes, conditions, and "before → after" states. Finally, it assembles a new, complete prompt from all of that and checks it against the records. The generator isn't fine-tuned at all: you just swap the prompt for a better one.

The key finding: video generators are bad at understanding that a process keeps going while it's out of sight. The camera leaves a boiling kettle, comes back, and somehow no water has boiled off. Or the faucet gets shut off, yet the hose keeps spraying. The reason: a short prompt doesn't spell out mechanisms and consequences, and the model confuses "I can't see it" with "it isn't happening." When the authors removed the physics step, success on "invisible" processes dropped the most (from 45.7% to 29.0%). Without the Director role, only camera and action control accuracy took a hit.

The method has three stages. The Director labels events and forbids "observation" from affecting physics. The Physical Evolver writes mechanism records and a chain of states. The Composer writes the final prompt, checks it against the records, and fixes only the flagged sentences. You can reproduce all of this in a regular chat.

Want this for your own case? Apply this study to your task: AI adapts its method to what you are working on and writes the prompt.

02

Method Blueprint

STEP 1. DIRECTOR: scene + events → table "event | type | what it can change"
        (physical action / environment change / visibility change / scene constraint)
        → self-check

STEP 2. PHYSICAL EVOLVER: 
        2a. mechanisms: (evidence, activation condition, mechanism, expected response)
        2b. transition chain: before → conditions → process → after → depends on #…
        → separate check of the records

STEP 3. COMPOSER: full replacement prompt → check against records
        → fix ONLY flagged sentences → repeat (up to 3 times)
        → no new mechanisms allowed

→ the final prompt goes to the video generator instead of the original

You can do it all in one prompt or in three messages in a row.

03

Example

Task: You're making a Domino's-style ad for a pizza place in Veo or Kling. The pizza goes into the oven, the camera pans to the face of a waiting customer, then comes back to the oven. The generator will most likely show the same raw pizza: while the camera was on the customer, "nothing happened."

Prompt:

You work as a three-role pipeline. My task is to improve a prompt for a video generator.

Original prompt:
"A chef in a red apron slides a raw pepperoni pizza into a wood-fired oven and closes the oven door. The camera smoothly pans to the face of a young guy at a table: he checks his watch and smiles. The camera returns to the oven, the chef opens the door and pulls out the pizza."

<Director>
List the events in the prompt. For each, give its type: physical action / environment change / visibility change / scene constraint. For each, state what it CAN change: physical conditions, object state, visibility. Rule: the event "the camera pans" changes visibility only and does not start, stop, or reset any physical process. Check that your labeling matches the text.
</Director>

<PhysicalEvolver>
1. For each physical process, write the mechanism: (evidence from the text, activation condition, mechanism, expected response).
2. Build a transition chain: state before → active conditions → process → state after → mechanism numbers → which earlier transitions it depends on. Track visibility separately from physical state. Processes whose conditions stay active keep going off-screen too. If the text doesn't imply that something changes, mark it "undetermined."
3. Check the records: are the mechanisms grounded in the text, and is state continuity preserved?
</PhysicalEvolver>

<Composer>
Assemble a new, self-contained prompt for the video generator. Keep all objects, actions, event order, and pacing. Add the physical states and changes needed to connect the events. Then check the draft against the records: find sentences where a required state is missing, a causal link is broken, or the original request is altered. Rewrite only those sentences and leave the rest alone. Don't invent new physical mechanisms. Repeat the check up to three times. In your answer, show: the Director's table, the Physicist's records, the final prompt.
</Composer>

Result: The model returns three blocks. First, an event table where "camera pans" is marked "visibility only." Second, mechanism records (heating, cheese melting, browning) and a state chain in which the pizza keeps baking while the camera is on the customer. Third, a full prompt where, when the camera returns, the pizza is already done: golden crust, melted cheese. You paste that into the generator instead of the original.

04

Why It Works

The weakness. A short prompt describes the scene and the actions but leaves mechanisms, conditions, and consequences "off-screen." The generator follows what's written. If an off-screen process isn't mentioned, it doesn't evolve. On top of that, "not visible" easily blurs into "not happening."

The strength. A language model is good at breaking familiar physical processes down into causes and stages. Make it write them out explicitly and it won't skip them. It's also good at checking text against existing records: "this sentence forgot a state."

How the method uses this. The analysis is split into stages, and each stage's output is recorded as structure. Every next state builds on the previous one, so "the pizza got baked" carries through the shots where it isn't visible. The final prompt can be checked against the records rather than eyeballed. Edits are surgical: accepted sentences stay untouched, so nothing good gets broken.

Control knobs: - Check-repeat limit (up to 3 in the paper) — lower it for simple scenes to save time. - Director's event types — add your own types (sound, lighting, character reaction) if the scene is more complex. - The "undetermined" line — keep it so the model doesn't invent things that aren't in the text. Drop it if you want more creative detail. - Composer's ban on new mechanisms — loosen it if you want freewheeling direction rather than precision. - Showing intermediate records — keep it to see where the model got the physics wrong. Ask for the final prompt only to get results faster.

05

Prompt Template

The paper contains no verbatim prompts. The template is built from the method description: roles, record fields, and check rules are preserved.

You work as a three-role pipeline. Improve a prompt for a video generator.

Original prompt:
"{original_prompt}"

First frame (if any): {first_frame_description}

<Director>
1. List entities and their initial states from the text{and_frame} only. Don't reconstruct the past or predict outcomes.
2. Find the sentences with events. For each, give its type: physical action / environment change / visibility change / scene constraint.
3. For each event, state what it CAN change: physical conditions, object state, visibility.
4. Rule: an event that only hides or reveals an object ({observation_examples}) changes visibility but does not start, stop, or reset physics. If the text explicitly states a physical effect of the event, keep it.
5. Check: does the labeling match the text, the event types, and the causal roles?
</Director>

<PhysicalEvolver>
1. Mechanisms. For each mechanism record: (evidence — support from the text; condition — activation condition; mechanism — physical mechanism; response — expected response).
2. Transitions. For each transition record: state before; active conditions; process of change; state after; mechanism numbers; which earlier transitions it depends on. The "after" state becomes the "before" of the next transition.
3. Track physical state and visibility SEPARATELY. If an event changes only visibility, processes with active conditions continue off-screen, and when the object comes back into view, describe its already-changed state.
4. If the text doesn't determine a change, mark it "undetermined."
5. In a separate pass, check: grounding of mechanisms in the text, conditions and responses, state continuity, transition dependencies, consistency with the Director's constraints. Fix the records that fail.
</PhysicalEvolver>

<Composer>
1. Assemble a self-contained replacement prompt. Keep objects, actions, event order, scene constraints, and pacing. Add the physical conditions and state changes that connect the events.
2. Check the draft against the Director's and Physicist's records. Flag sentences that: skip a required state, violate a causal constraint, or alter the original request.
3. Rewrite only the flagged sentences. Leave accepted ones alone. You may spell out mechanisms already recorded in the transitions, but you may not introduce new ones.
4. Repeat the check no more than {repeat_count} times. If the check still fails, return the latest version.
</Composer>

Show: the Director's table, the Physicist's records, the final prompt.

What to fill in: - {original_prompt} — your usual short video prompt. - {first_frame_description} — if you're generating from an image, describe it in words. If not, delete the line. - {observation_examples} — what hides or reveals the object in your scene: the camera, a curtain, lights going off, smoke. - {repeat_count} — 2–3.

🚀 Quick start — paste into a chat:

Here's the PhyEvolve template. Adapt it to my task: {describe the video scene}.
Ask me questions to fill in the fields.

[paste the template above]

The model will ask what events happen in the scene, what gets hidden from the camera, and which processes should keep running off-screen. That's what the Director needs to separate visibility from physics correctly. It will take the structure from the template and assemble a ready-made prompt for your scene.

06

Limitations

⚠️ Video only: The method was tested on a video generator and physical scenes: water, fire, mechanics, materials. No gains were shown for images, text, or general tasks. You'd have to port it yourself.

⚠️ Tested on one generator: All numbers come from a single video "engine" (Minimax-H3). The effect wasn't tested on Veo, Kling, or Sora. It could be smaller or larger.

⚠️ Faithfulness to the request is still a weak spot: Physics improves, but the generator still often fails to do exactly what was asked (on the hard scene set, semantic accuracy stayed low). The method doesn't guarantee "it came out exactly as ordered."

⚠️ No check against the video: All the improvement happens before generation. The finished video never goes back into the pipeline. If the generator ignored a good prompt, the method won't catch it.

⚠️ Physics errors in the records break the result: The planner model can get a mechanism wrong, and the error flows into the prompt. Read the Physicist's records, especially for unusual scenes.

⚠️ In the paper this is an automated pipeline: The authors run it as a program on several GPUs. In a chat you reproduce the logic by hand, without the paper's exact settings.

⚠️ Some areas lag behind: On optics, the competing method NEWTON came out stronger.

07

How They Tested It

The authors from Canva Research tested the method on four physics benchmark sets: "invisible" evolution (StEvo-Bench) and physical common sense (PhyGenBench, PhyWorldBench, VideoPhy-2). The video generator was held fixed; only the prompt changed. They compared against direct generation and two agentic competitors (NEWTON, Co-Director). The planner was the open model Qwen3-VL-32B.

Averaged over the four benchmarks, PhyEvolve beat direct generation by 14.9 points and the best competitor by 7.9. The most striking result: on "invisible" processes, success rose from 17.7% to 45.7%.

Then the authors switched off the roles one at a time. Without the Physicist, success dropped to 29.0%, the biggest loss. Without the Director, the main metric barely moved (45.3%), but camera and action control slipped. Without the Composer, losses were small (about 1–3 points), although in one illustration a glass ended up visible behind the curtain.

The surprise: the heavy lifting is done by the explicit physics step, not by "clever" prompt assembly. Practical takeaway: if you don't have time for all three steps, don't skip the second one. The authors also swapped the planner. A 9B-parameter model gave nearly the same result as a 30B one (77.3% vs. 79.6%), so the method doesn't need a top-tier model. In a human preference study, PhyEvolve videos were preferred in more than 60% of comparisons.

08

Original from the Paper

The provided text contains no verbatim prompts. Here's the paper's formalization of the pipeline and the records:

D = Director(P, I0),
(M, T) = Evolver(P, D),
P* = Composer(P, D, M, T),
V = G(P*, I0)

Mechanism record:  m_i = (e_i, c_i, φ_i, r_i)
  e = supporting evidence, c = activation condition,
  φ = physical mechanism, r = expected response

State transition:  s_k --(M_k, c_k)--> s_{k+1},   o_k = O(s_k, v_k)
  s = physical state, v = visibility condition, o = what is observable

Context: This is how the authors describe the data handoff between roles and the structure of the records. State and visibility are tracked separately, which is why a process keeps going while the object is hidden.

09

Adaptations and Extrapolations

💡 Adaptation for storyboards and scripts: The "visibility ≠ event" rule works for text too. Have the model label what's happening "off-screen" in the story: while the hero is in another scene, everyone else's processes keep running.

Here's a TV series script: {script}. 
Step 1: list the events and mark which ones change the world and which change only what the viewer sees.
Step 2: for every storyline that drops out of frame, record the state "before → what keeps going → state after."
Step 3: check whether the scenes stay consistent when we return to that storyline. Fix only the inconsistent spots.

🔧 Technique: edit only flagged spots → don't break what works. The Composer's idea is handy in everyday editing too: "First flag the sentences that violate criterion X. Rewrite only those. Leave everything else alone and don't paraphrase it." That keeps edits surgical, and the good parts stay untouched.

10

Resources

  • Paper: "PhyEvolve: Multi-Agent State-Evolution Planning for Physics-Aware Video Generation"
  • Authors: Yang-Hao Zhou, Lixing Tan, Zhiqi Li, Guang Yang, Xiao Yang (Canva Research)
  • Benchmarks: StEvo-Bench, PhyGenBench, PhyWorldBench, VideoPhy-2
  • Competitors: NEWTON, Co-Director
  • Generator: Minimax-H3; planner: Qwen3-VL-32B-Instruct

Research digest

Key result

Discovered: video generators confuse "I can't see it" with "it isn't happening." The camera pulls away from a kettle, comes back, and the water still hasn't boiled. PhyEvolve lets you shoot clips where processes keep running off-screen: the pizza bakes while the camera is on the customer. The trick: visibility and physics are tracked separately, and "the camera pulled away" stops nothing. Three roles in an ordinary chat rewrite the prompt and add a chain of states. The generator isn't fine-tuned. Without the physics step, success on "invisible" processes drops from 45.7% to 29.0%.

Principle

Three roles work as a pipeline. The Director labels events: physical action, environment change, visibility change, scene constraint. The Physicist writes the cause, activation condition, and "before → after" states for each process. The Composer assembles a new prompt, checks it against the records, and fixes only the flagged sentences. The check runs up to 3 times, and adding new mechanisms is not allowed. The event "the camera pans" changes only visibility and leaves physics alone. It's like the light in a fridge. Close the door, the light goes off, but the food keeps going bad anyway.

Why it works

A short prompt describes actions and leaves the consequences off-screen. The generator does exactly what's written. If an off-screen process isn't mentioned, it doesn't evolve. A language model is good at breaking familiar processes down into causes and stages. It's even better at checking text against existing records: "a state got forgotten here." The method uses both strengths. Every new state builds on the previous one, so "the pizza got baked" carries through shots where it isn't visible. Edits are surgical, so accepted sentences don't get broken. The roles aren't equally important. Without the physics step, "invisible" processes sag (45.7% → 29.0%). Without the Director, only camera and action control accuracy drops.

When to apply

Video generation → scenes where a process runs off-screen: baking, boiling, fire, water, mechanics. Especially when the camera leaves an object and comes back, or a curtain, smoke, or lights going off hide it. NOT for images and text: no gains were shown there. The method was tested on one generator (Minimax-H3); the effect on Veo, Kling, and Sora is unknown. The method doesn't guarantee exact adherence to the request either.

Mini recipe

1. Take your short prompt: the one you usually send to the video generator. 2. Bring in the Director: have it list the events, name each one's type, and say what it can change. Forbid "observation" from affecting physics. 3. Bring in the Physicist: for each process you need evidence from the text, an activation condition, a mechanism, and a response. Then a "before → after" chain. Track visibility separately. If the text doesn't imply a change, have it write "undetermined." 4. Bring in the Composer: have it assemble the full prompt and check it against the records. Fix only flagged sentences, no more than 2-3 rounds, no inventing new mechanisms. 5. Read the Physicist's records: the model can get a mechanism wrong, and the error flows into the prompt. This matters most in unusual scenes. 6. Paste the final prompt into the generator instead of the original. You can do it all in one message or three in a row. For simple scenes, 1-2 check rounds are enough. If the scene is more complex, add your own event types: sound, lighting, character reaction.

Examples

[BAD]: `A chef slides a raw pizza into a wood-fired oven and closes the door. The camera pans to a customer at a table. The camera returns to the oven, the chef pulls out the pizza` [GOOD]: `You work as a three-role pipeline. Improve a prompt for a video generator. Original prompt: "A chef slides a raw pizza into a wood-fired oven and closes the door. The camera pans to a customer at a table. The camera returns to the oven, the chef pulls out the pizza." List the events and the type of each: physical action / environment change / visibility change / scene constraint. State what each CAN change. Rule: "the camera pans" changes only visibility and doesn't stop physics. For each process record: evidence from the text, activation condition, mechanism, response. Build a "before → conditions → process → after" chain. Track visibility separately. If the text doesn't imply a change, write "undetermined." Assemble a self-contained prompt. Keep the objects, order, and pacing. Check against the records, rewrite only flagged sentences, add no new mechanisms. No more than 3 rounds. Show the Director's table, the Physicist's records, and the final prompt.` Result: when the camera returns, the final prompt already has a finished pizza with a golden crust and melted cheese. While the camera was on the customer, the pizza kept baking.

In plain words

Today's video generators have a toddler's problem: zero object permanence. If something leaves the frame, the model assumes the universe hit pause. If you don't spell out the physics of hidden processes, video generators just blow it: to them, out of frame means frozen in time. PhyEvolve fixes this nonsense without expensive fine-tuning by making the model plan the physics of processes the camera temporarily can't see.

It's like playing peekaboo with a one-year-old: cover your face and, boom, you no longer exist. The model sees a raw pizza go into the oven, then the camera pans to a customer munching away, comes back, and the oven still holds the same raw dough. Time just stopped for the model, because nobody wrote a script for what happens behind the closed door. Instead of an ad, you get a cinematic circus.

The fix is elegant: instead of retraining heavy networks, the authors added a three-step prompt planner. First, PhyEvolve separates physical events ("a hand turns off the faucet") from camera moves ("zoom out"). Then a separate agent writes out the hidden life of objects: causes, conditions, and "before → after" states. At the end, it assembles a new, detailed prompt where physics doesn't die even when the camera is looking the other way.

They tested it on basic scenes like cooking, but the mechanics are completely universal. This approach rescues any complex generation in Kling or Veo: action, ads, fluid dynamics. Anywhere the action unfolds out of focus, from ice melting in a glass to a fuse smoldering behind the hero, without external physics tracking the generator will hand you wooden mush.

Bottom line: short prompts for complex video are a dead end. The model won't fill in the hidden dynamics for you. Either you manually spell out the state of every hidden kettle and pizza, or you hand prompt assembly to an architecture like PhyEvolve. Otherwise you'll burn a pile of attempts and money on endless regenerations of raw dough.

AI lab assistant

Apply this study to your task

Describe what you're working on. AI takes the method and the measured results from this paper and adapts them to your case, or writes a ready prompt built on them.

Based on PhyEvolve: a three-role pipeline that fills in a scene's physics before the prompt ever reaches the video generator arXiv:2610.30717

Sign in to apply this study New accounts get 50 free credits.