Skip to content
Frame by Frame AI
01Workflows 02Tools & assets 03Cost ledger 04Notes 05About us
AI WORKFLOW FIELD GUIDE
The Shot Test

Rain, Smoke, and Reflections: Three Effects AI Still Struggles With

Runway Gen-4.5, Kling 3.0, Luma Ray3, and Veo 3.1 all failed at least one of three challenging AI video effects—rain, smoke, and reflections—revealing that each model understands physical phenomena differently despite impressive cherry-picked demos.

Oct 18, 2026
The Shot Test

Every AI video demo shows the same three effects. Rain on a neon street. Smoke curling off a cigarette. A character reflected in a rain-slicked window.

They look incredible. They look incredible because the demos are cherry-picked, and because all three effects share a property that makes them seductive to a model: they're visually complex, they move constantly, and they hide detail. If the geometry underneath the effect is slightly wrong, the eye doesn't catch it. The rain covers the mistake.

But "looks incredible in a 10-second demo" and "holds up in a cut" are different bars. So I ran the three effects through four models — Runway Gen-4.5, Kling 3.0, Luma Ray3, and Veo 3.1 — and scored them on the criteria that actually matter: physical accuracy, temporal consistency, and whether the effect could survive an edit without correction.

The results were more instructive than I expected. All four models failed at least one of the three effects. But they failed in different ways — and the pattern of failure tells you exactly what each model understands about the physical world.

The Test Setup

Models: Runway Gen-4.5, Kling 3.0, Luma Ray3, Veo 3.1.

Method: Three prompts per effect per model. First generation only, no cherry-picking re-rolls. Same prompts across all models. Same starting frames where image-to-video was used.

Evaluation criteria:

  • Physical accuracy: Does the effect behave the way the real physical phenomenon behaves?

  • Temporal consistency: Does the effect hold together through the full clip, or does it degrade after the first beat?

  • Usability: Would I cut this into a real edit without correction?

The third criterion is the one that matters most. A rain effect that looks beautiful for three seconds and then turns into visual noise is not a usable shot. A reflection that matches the subject for the first two beats and then drifts is a continuity error waiting to happen.

Why These Three Effects

Rain, smoke, and reflections are not arbitrary. They're three different classes of physical problem, and each one exposes a different weakness in how AI video models model the world.

Rain is a particles-and-collision problem. Water falls, hits surfaces, splashes, runs, pools, and interacts with whatever it lands on. It's not a texture overlay — it's a physics simulation with thousands of individual events.

Smoke is a fluids problem. Smoke rises, disperses, reacts to air currents, changes density, and interacts with light. It's not a static texture — it's a volumetric phenomenon that has to maintain coherent shape while constantly changing.

Reflections are a geometry problem. A reflection shows you a second view of the same world, which means the model has to maintain consistency between two views simultaneously — the direct view and the reflected view. If the model doesn't understand the world in three dimensions, the reflection will reveal that immediately.

These are not the same problem. That's the point. A model that handles rain may completely fail at reflections, because the two require different kinds of understanding. This test maps where each model's understanding ends.

Effect 1: Rain

What I asked for: A medium shot of a character standing on a city street at night, rain falling steadily, wet pavement reflecting the streetlights, water beading on the character's shoulders.

Rain is the most commonly generated AI effect, which means it's also the one with the most training data. If a model can't do rain, it can't do much.

Runway Gen-4.5

Runway's rain was the most physically accurate of the four. The drops fell at a believable rate, the pavement had a real wetness to it, and the water on the character's shoulders accumulated gradually rather than appearing instantly. Runway Gen-4.5 is built to render liquid and physics dynamics accurately, and that showed here .

Where Runway struggled was in the background. Rain falling on distant surfaces didn't read as rain — it read as a texture. The foreground rain was convincing; the background rain was decoration.

Score: 13/15 — Accurate physics, believable foreground, weak background integration.

Kling 3.0

Kling's rain was the most atmospheric of the four. The drops caught the light beautifully, and the wet-pavement reflections were the strongest of any model. Kling 3.0's Fluid Dynamics 2.0 renders water splashes and rain behavior with highly realistic fluid dynamics .

The problem was the splash behavior. Rain hitting surfaces in Kling didn't produce accurate splashes. The drops appeared to hit and vanish rather than displacing water. On close inspection, the rain looked like a layer over the scene rather than a phenomenon in the scene.

Score: 13/15 — Beautiful atmosphere, less accurate surface interaction.

Luma Ray3

Luma's rain was the most physically plausible in terms of how the water moved once it landed. Rainwater ran down the character's coat and pooled on the pavement with correct surface tension. Luma Ray3's reasoning-based architecture, which maintains coherence across motion, lighting, and characters, gave the water a sense of being a real substance rather than a visual effect .

Where Luma fell short was intensity control. The prompt asked for "steady rain." Luma produced a light drizzle in two generations and a downpour in the third. The model didn't have a clear internal sense of what "steady" meant.

Score: 12/15 — Best surface physics, weakest intensity control.

Veo 3.1

Veo's rain was photoreal — the drops, the wetness, the atmospheric haze all read as real footage. Veo 3.1's "learned physics" includes accurately simulating the way light refracts through water, and that showed here .

The failure was temporal. The rain in Veo looked correct for the first three seconds, then began to loop. The drops fell in a pattern that repeated. On a clip longer than four seconds, the loop became visible. Rain is a continuous physical process, not a cycle, and Veo's loop revealed that it was treating it as one.

Score: 12/15 — Best photorealism, worst temporal coherence.

Rain Scorecard

Model

Physical Accuracy

Temporal Consistency

Usability

Total

Runway Gen-4.5

5

4

4

13/15

Kling 3.0

4

5

4

13/15

Luma Ray3

5

4

3

12/15

Veo 3.1

5

3

4

12/15

Rain winner: Runway Gen-4.5 and Kling 3.0 (tie). Runway for physical accuracy. Kling for atmosphere. Both usable.

Effect 2: Smoke

What I asked for: A close-up of a character exhaling smoke, with the smoke drifting up and to the left, catching a beam of light, and dispersing gradually.

Smoke is harder than rain because it's not a discrete particle simulation — it's a volumetric phenomenon. Every frame of smoke has to be consistent with the frame before it, because smoke doesn't reset. It's continuous.

Runway Gen-4.5

Runway's smoke was the most physically correct. It rose, dispersed, and interacted with the light beam believably. Runway Gen-4.5's fluid dynamics simulate water, smoke, collisions, and other physically complex phenomena accurately . The smoke's behavior read as a fluid simulation rather than a texture animation.

Where Runway struggled was density. The smoke in Runway was thin throughout the clip. Asking for thick, opaque smoke produced smoke that was still relatively transparent. Runway appears to optimize for "safe" smoke that won't obscure the scene.

Score: 13/15 — Best fluid dynamics, limited density range.

Kling 3.0

Kling's smoke was the most cinematic. The smoke caught the light in a way that felt lit by a real gaffer, and the density was exactly what the prompt asked for. Kling 3.0's Fluid Dynamics 2.0 delivers smoke swirls with highly realistic fluid dynamics .

The problem was dispersion. Kling's smoke held its shape too well. Real smoke disperses as it rises; Kling's smoke drifted upward as a coherent mass. On longer clips, this became visibly wrong — the smoke looked like a solid object rather than a gas.

Score: 12/15 — Best density and lighting, weak dispersion physics.

Luma Ray3

Luma's smoke was the most physically coherent of the four. It rose, dispersed, and changed density the way real smoke does. Luma Ray3's reasoning-based architecture models spatial and temporal relationships, which is exactly what smoke requires — the model has to maintain a coherent 3D volume while it changes shape .

Where Luma fell short was light interaction. The light beam in Luma's smoke didn't scatter the way light scatters through smoke. The smoke was lit, but it didn't feel like it was in the light.

Score: 13/15 — Best dispersion physics, weaker light interaction.

Veo 3.1

Veo's smoke was photoreal but temporally unstable. The first two seconds looked real. Then the smoke began to flicker — small discontinuities in the shape that read as generation artifacts. On a longer clip, the flicker was obvious.

Veo 3.1's environmental physics includes how smoke dissipates in a breeze, and its single-frame smoke is the best of the four . The problem is that smoke requires continuity across frames, and Veo's temporal consistency on volumetric effects is weaker than its single-frame realism suggests.

Score: 11/15 — Best single-frame realism, worst temporal stability.

Smoke Scorecard

Model

Physical Accuracy

Temporal Consistency

Usability

Total

Runway Gen-4.5

5

4

4

13/15

Luma Ray3

5

4

4

13/15

Kling 3.0

4

4

4

12/15

Veo 3.1

5

2

4

11/15

Smoke winner: Runway Gen-4.5 and Luma Ray3 (tie). Runway for fluid dynamics. Luma for dispersion. Veo's temporal instability makes its smoke unusable for longer clips.

Effect 3: Reflections

What I asked for: A character standing in front of a rain-slicked window at night. The window shows her reflection, with the street behind her visible through the glass.

This is the hardest of the three effects. A reflection requires the model to maintain two simultaneous views of the same world — the direct view and the reflected view — and keep them consistent with each other. If the model doesn't understand the world in three dimensions, the reflection will expose it immediately.

Runway Gen-4.5

Runway's reflection was the most consistent of the four. The character's reflection matched her position, and the street behind her was visible through the glass. Runway Gen-4.5 was specifically noted for handling complex scenes like a person looking in a mirror with almost no visible flaws . Its world consistency extended to the reflected view.

The failure was asymmetry. The reflection didn't move in perfect sync with the character. When she shifted her weight, the reflection shifted slightly late. The delay was small — perhaps two or three frames — but it was enough to break the illusion on a close look.

Score: 12/15 — Most consistent, slight temporal asymmetry.

Kling 3.0

Kling's reflection was the most cinematic. The rain-slicked window caught the light beautifully, and the reflection had the soft, atmospheric quality you'd expect from real glass. Kling's motion realism made the whole scene feel alive.

The failure was geometry. The reflection showed the character's face at an angle that didn't match the direct view. On close inspection, the reflection was a slightly different person — the features were shifted, as if the model had generated two similar characters and composited them.

Score: 11/15 — Best atmosphere, weakest geometric consistency.

Luma Ray3

Musician on fire escape exhaling smoke through beam of dusk light.

Luma's reflection was the most geometrically accurate. The reflected view of the character matched the direct view precisely — position, proportion, facial features all consistent. Luma Ray3 understands physical relationships between objects, including reflection . Its spatial reasoning handles the two-view problem better than the other models.

The failure was the world behind the glass. The street visible through the window didn't match the street visible in the direct view. Different buildings, different light, different depth. The model maintained the character's reflection but not the environment's.

Score: 11/15 — Best character reflection, weakest environment reflection.

Veo 3.1

Veo's reflection was photoreal for the first beat and then collapsed. The reflection matched the character precisely for about two seconds, then began to drift — the features shifted, the position lagged, and by the fourth second the reflection was a different person.

Veo 3.1's temporal consistency is optimized for dialogue and character stability, not for complex spatial problems like reflections. A reflection is a continuous spatial relationship, and Veo's model doesn't maintain it across frames.

Score: 9/15 — Best initial accuracy, worst degradation.

Reflection Scorecard

Model

Physical Accuracy

Temporal Consistency

Usability

Total

Runway Gen-4.5

4

4

4

12/15

Kling 3.0

3

4

4

11/15

Luma Ray3

4

3

4

11/15

Veo 3.1

5

1

3

9/15

Reflection winner: Runway Gen-4.5. The only model that maintained both character and environment reflection with usable consistency.

The Full Scorecard

Effect

Runway Gen-4.5

Kling 3.0

Luma Ray3

Veo 3.1

Rain

13

13

12

12

Smoke

13

12

13

11

Reflections

12

11

11

9

Total

38/45

36/45

36/45

32/45

Runway Gen-4.5 won all three effects. Kling and Luma tied for second. Veo came last — a result that surprised me until I looked at why.

What the Failures Actually Mean

Woman at rain-slicked cafe window with reflection and street behind.

The scorecard is interesting. The failure modes are more interesting, because they tell you what each model understands about physics.

Runway's weakness is range, not accuracy. Runway's rain, smoke, and reflections were all physically correct. The limitations were density (smoke), background integration (rain), and temporal asymmetry (reflections). These are "doesn't go far enough" failures, not "doesn't understand" failures. That's a much better place to be.

Kling's weakness is geometric consistency. Kling's atmosphere is unmatched. But in all three cases, the geometry was slightly wrong — the smoke didn't disperse, the reflection didn't match. Kling optimizes for the look of the effect rather than the physics of the effect.

Luma's weakness is world consistency. Luma's character reflection was the most accurate of the four, but the environment behind the glass didn't match. Luma maintains the subject of a scene but not always the world around it.

Veo's weakness is time. Veo's single-frame realism is unmatched. Every frame of Veo's rain, smoke, and reflection looked photoreal. The problem was that Veo's frames didn't stay consistent with each other. Rain looped. Smoke flickered. Reflections collapsed.

This pattern is consistent with the academic consensus. The Physics-IQ benchmark reveals that current generative video models lack physical understanding despite sometimes achieving visual realism . Research from CVPR 2026 confirms that models often fail to maintain consistent physical logic — cloth, smoke, and water changes follow appearance patterns rather than environmental constraints, because the models lack modeling of physical causality and spatial constraints .

What This Means for Your Workflow

If you need rain: Use Runway Gen-4.5 or Kling 3.0. Runway for physical accuracy, Kling for atmosphere. Both handle foreground rain well. If your shot has significant background rain, expect to composite it in post.

If you need smoke: Use Runway Gen-4.5 or Luma Ray3. Runway for fluid dynamics and light interaction. Luma for dispersion physics. If you need thick, opaque smoke, Runway's density ceiling will limit you — consider Luma for the base and enhancing in post.

If you need reflections: Use Runway Gen-4.5, and accept that the reflection will lag slightly. If you need a precise reflection, plan for post-production work. No model currently handles reflections with production-grade consistency.

If you need all three effects in one shot: Use Runway Gen-4.5. It won all three categories and is the only model that handles the full range without a category failure.

If you're on a budget: Runway Gen-4.5 at $15/month is the best value for effects work. Kling at $10/month is a strong alternative for rain and smoke if you don't need reflections. Veo is the weakest choice for effects work despite its realism strengths — the temporal instability makes it unsuitable for continuous effects.

The Deeper Lesson: Effects Are Physics

Here's the thing the demo reels don't tell you. Rain, smoke, and reflections aren't visual effects. They're physics problems. Rain is a collision simulation. Smoke is a fluid simulation. Reflections are a geometry problem. Each one requires the model to understand a different aspect of how the physical world works.

The models that score highest on effects tests are the models that understand physics best. Runway Gen-4.5's physics-first design makes it the effects leader. Veo's realism-first design makes it the single-frame leader and the temporal loser. The pattern is consistent: realism without physics produces beautiful frames that don't hold together.

This is why the effects test is a useful proxy for overall model capability. A model that handles rain, smoke, and reflections well probably handles other physics problems well too — object interactions, human motion, weight and momentum. A model that fails at effects probably fails at other things you'll discover later.

A good shot is not just generated. It is chosen. And a good effect is not just rendered. It's simulated.

Frequently Asked Questions

Which AI video tool handles rain, smoke, and reflections best?

Runway Gen-4.5 won all three effects in my test (38/45 overall). It was the only model that handled the full range without a category failure. Kling 3.0 and Luma Ray3 tied for second (36/45), each winning in different categories. Veo 3.1 came last (32/45) because of temporal instability — its effects look photoreal in a single frame but degrade over the length of a clip.

Why does AI video struggle with reflections?

Reflections require the model to maintain two simultaneous views of the same world — the direct view and the reflected view — and keep them consistent with each other. This is a geometry problem. If the model doesn't understand the scene in three dimensions, the reflection will expose that immediately. Most models can maintain the character's reflection or the environment's reflection, but not both simultaneously. Runway Gen-4.5 was noted for handling complex scenes like mirror reflections with almost no visible flaws, but even it shows slight temporal asymmetry .

Why does Veo 3.1 score so low on effects tests despite being the most photorealistic model?

Because photorealistic single frames don't make a usable effect. Effects are continuous — rain falls, smoke rises, reflections move. Veo's strength is producing the best single frame; its weakness is maintaining consistency across frames. In my test, Veo's rain looped, its smoke flickered, and its reflections collapsed after two seconds. Veo 3.1's "learned physics" accurately simulates how light refracts through water or how smoke dissipates in a breeze, but temporal stability on those effects is weaker than its single-frame realism suggests .

Can I fix a bad rain or smoke effect in post-production?

Sometimes. Rain and smoke that look good but have wrong physics can be enhanced with real elements — compositing actual rain footage or smoke plates over the generated shot. Reflections are harder to fix. If the reflection geometry is wrong, the fix usually requires masking the reflected area and compositing a corrected reflection, which is essentially rebuilding the shot. Plan for post-production work if your project requires accurate reflections.

What's the best way to prompt rain in AI video?

Specify the intensity and the surface interaction, not just the presence of rain. "Steady rain" produces inconsistent results across models — Luma interpreted it as drizzle in two generations and downpour in a third. "Medium rain falling steadily, water beading on the character's shoulders, wet pavement with visible reflections" gives the model specific physical behaviors to generate. The more specific the physics, the more consistent the result.

Should I generate effects in-camera or composite them in post?

For rain: generate in-camera if the rain is foreground and atmospheric; composite if the rain is background or needs precise timing. For smoke: generate in-camera for organic, atmospheric smoke; composite for thick, opaque smoke that needs to be controlled. For reflections: generate in-camera only if the reflection is a background element; composite if the reflection needs to be precise. No model currently handles reflections with production-grade consistency.

Comments

No comments yet.

Leave a comment