How to control smoke simulation?

Alright, I understand question in the topic is broad but hear me out. It might be trivial but I’ve never done smoke simulations and after looking at YouTube my mind is about as blank as it was before I wasted half a day looking through videos…

So I have this scene:

  1. Smoke bomb that rapidly expands from it’s point of origin at the beginning of simulation, quickly fills the space and then slows down and settles with smoke screen that hangs in there for a while
  2. There’s an object being thrown through that smoke screen
  3. Smoke screen reacts to air turbulence created by the object flying through at high velocity, punches hole and drags some of the smoke on it’s way out.

How would one approach this? Explain like I’m five, please…

Here’s visual example of what I’m talking about, very shitty mockup made with meatballs… (also for some reason they appear and vanish while rendering but work just fine in viewport… some EEVEE magic). Yeah, it’s terrible but you get the idea of problem at hand.

I assume from the tutorials you have now an understanding of the basic setup for a smoke sim? Domain, Flows and Effectors?

What should work is the this:

  • Create a flow object for the initial emission (explosion). You need to keyframe the Surface Emission parameter, setting it only to nonzero for a couple of frames at the beginning, to make it ‘quickly fill the space and then slows down and settles’ as you say. Enable ‘Initial Velocity’ and set the ‘Normal’ value to nonzero, Otherwise the smoke will only rise and not fill up the space in horizontal direction.
  • Create an Effector object with subtype ‘Collision’ for the projectile. Animate it such that it passes through the smoke.

You will have to tweak parameters of course and also it likely will take experimenting to find the right geometry of the emitter mesh, such that the smoke filling up from the explosion looks right.

Also on the smoke domain you may want to reduce the values for Gas->Buoyancy Density and Heat, as the default will make the smoke rise rather quickly (maybe you even want it to be zero).

I made a blend file for you with the setup as a starting point:

smoke-projectile.blend (468.9 KB)

Feel free to ask follow-up questions, if something is unclear.

This is actually super helpful, for the life of me I couldn’t even achieve this effect. It’s not quite what I’m looking for but it’s way better than any of dozens of simulations I’ve set up. Oh I was setting it up completely differently. As in, I would have emitter at the bottom and wait for smoke to fill the space (I would animate Vorticity value of the Domain for few frames) and then use object to punch through. It seem to kinda work if there’s not a lot of smoke and effector is passing through domain (only at 0 density and heat tho, otherwise “tunnel” inside smoke immediately collapses. I suppose part of problem with my setup was that domain was completely filled with smoke so there was no space for it to be dispersed/displaced to?

Since starting this post I’ve found more accurate example of what I’m trying to create as someone suggested this in YouTube comment (which by the way is marvelous short film made by a single guy :open_mouth: Astartes):

Yes, of course you won’t see smoke being dragged by the projectile, if there is smoke everywhere. I assume you will see the hole being punched through, but not much else.

I believe it is a bit tricky to make smoke emit explosion-style. The behavior of initial velocity is a bit weird. It seems the flow object can only add smoke to existing fluid and change its velocity, but cannot add more fluid (as would happen in a real explostion). Thus you will never get smoke expanding the same in all directions originating from a closed mesh flow object.

No, I know I wouldn’t have smoke dragged out with filled domain but I couldn’t get tunnel/hole either, it was just swirling smoke in the domain and that was the end of it.

As for expanding smoke explosion-style, I tried to use either 2 cones emitting particles or exploding icosphere but results were rather miserable. I wish I knew how to utilize guides effectively for purposes of smoke sim because it seem like it might be solution to the problem at hand but I just can’t get it to work.

Honestly, I’m not sure that it’s possible to create a realistic explosion with current sim (without a lot of trickery). At least you cannot get a physically correct one, due to the lack of expansion/inflows of fluid. The best approach might actually be using particles or exploding meshes as emitter.