---
title: "Explosion Plume with tyFlow"
canonical: "https://documentation.chaos.com/space/PHX4MAX/124628063/Explosion%20Plume%20with%20tyFlow"
format: markdown
---
The instructions on this page guide you through the process of creating explosion plume using Chaos Phoenix 4, V-Ray Next and tyFlow v0.16089 (Beta). Overview This Advanced Level tutorial guides you through Phoenix simulation settings and the final shot setup. It's recommended that you have at least basic knowleage in lighting, materials, and the Phoenix simulation. Understanding of tyFlow is beneficial but not required. In this tutorial we show how Phoenix works together with tyFlow. We generate particles using tyFlow. When bombs hit the ground, bounced particles are procedurally created. tyFlow's particles contain velocity data and Phoenix can use this data as a source for fire and smoke to produce realistic explosion plumes. The structure of this tutorial is very similar to another tutorial -  Artillery Explosion . However, in this article, we put more attention on the pyro shader and add more details to the fire components. The explosion and rising dust are set to different RGB colors. Together with the color gradient in the volumetric shading, we get colorful and rich result in the final shading. We take advantage of the  Time Base  -  Particle Age , a powerful feature of the  Fire/Smoke Source . It allows you to animate the emission of fluid based on the age of each individual particle. This simulation requires  tyFlow v0.16089 (Beta) ,  Phoenix 4.10  Official Release and  V-Ray Next  Official Release for  3ds Max 2015  at least. You can download official Phoenix and V-Ray from  https://download.chaos.com . If you notice a major difference between the results shown here and the behavior of your setup, please reach us using the  Support Form . This download package does not contain the HDRI maps used in the scene. However, you can download the HDRI maps (quarry_02, made by Sergej Majboroda) from the  HDRIHeaven website . To download project files:  Want to follow along but don’t have a license?:    Here is a list of  tyFlow particle groups . It summarizes all the different particles and the geometry instances they are using. Every group is color-coded, so you can easily recognize it in the viewport. Which particles are emitted from which helper geometries determines the characteristic of an explosion. It could be a landmine explosion, missile or a traditional bomb. For example, if  v_dust  emits from Cone_V_Dust, the dust rises with 45 degrees and forms a V-shape. If the  v_dust  emits from the  Cylinder-ground-fire , then the particles stream is more straight-up. You can customize your explosion with different combinations. Here we give you one example per possibility. You can use the scene as a template. Particles Emit From Wireframe Color Geometry Instance Bomb Plane_bomb_emitter White Bomb major explo Sphere_core001 Orange - V_dust Cone_V_Dust Green - Falling_fire Sphere_core002 Purple - Ground_fire  Cylinder-ground-fire Blue - tyFlow-major, tyFlow-V_dust, tyFlow-ground_fire and tyFlow-falling_fire use the tyFlow-Bombs node as their source flow. Therefore, if you want to change the frequency or the numbers of bombs, you have to adjust that in the tyFlow-Bombs node. If you want tyFlow particles as an emission source for Phoenix, you need to check the  Enable Particle Interface  option in your tyFlow - this way Phoenix interprets it as a proper particle system. Note that when the interface is enabled, Phoenix uses the whole particle system. If you want to use only a specific event - you can use the  Export Groups  in the Particle Groups operator to define which particles the interface to export.  Take the  tyFlow-major_explo  as an example. For  Event_003  we have added the  Particle Groups  operator, set the  Export Groups  as group  C . Same idea applies to  Event_002 , as its  Export Groups  is set to  B . Then in the tyFlow-major_explo  Interfaces rollout , click on the  C  button for the Export Groups. By doing so, we limit only the Event_003 particles to be used for the Phoenix Fire/Smoke source. Anatomy of the Artillery Explosion Here are sample renders of the final simulation, so you can have a better idea of the result each particle group produces. Phoenix Simulation Go to Modify Panel → Create → Geometry → PhoenixFD →  FireSmokeSim . The exact position of the Phoenix Simulator in the scene is XYZ:  [ -8.5, 0.25, 0.0 ] . Open the Grid rollout and set the following values: Cell Size :  0.087 m ; Size  XYZ:  [ 132, 157, 86 ]  - we keep the Simulator size small enough to cover only a single explosion on the left. For the final simulation, the Size is increased to cover all of the explosions; Container Walls → Wall Z: Jammed (-)  - the bottom of the simulator is jammed (closed) so that the smoke does not leave the bounds of the simulation as it travels down; Adaptive Grid :  Smoke  - the Adaptive Grid algorithm allows the bounding box of the simulation to dynamically expand on-demand. With a  Threshold  of  0.002 , the Simulator expands when the Cells near the corners of the simulation bounding box reach a Smoke value of 0.002 or greater; Enable Expand and Don't Shrink  - this way the Adaptive grid does not contract back when there is very thin smoke at the borders of the grid; Enable Max Expansion :  X: (104, 69) ,  Y: (214, 0) ,  Z: (0, 339)  - to save memory and simulation time by limiting the Maximum Size of the simulation grid. Select the  Phoenix Simulator → Output  rollout and enable the output of  Temperature ,  Smoke ,  RGB ,  Velocity  and  Fuel Grid Channel .  If you'd like to perform a Resimulation using Wavelet Turbulence for increasing the simulation detail, enable the Wavelet Grid Channel output. Any channel that you intend to use after the simulation is complete needs to be cached to disk. For example: Velocity is required at render time for Motion Blur; Temperature is usually used at render time to generate Fire; Wavelet is used for Wavelet turbulence when performing a  Resimulation . List of Fire/Smoke Sources and their settings   We are going to create four different  Fire/Smoke Sources . As an overview, we list them here first. Among those sources, only  major_explo  emits fuel and explodes, as the name implies. The other sources are: Ground_fire  emits the fire on the ground; falling_fire  creates the fire trail, coming out of the big explosion; V_dust  is created when the bomb hits the ground and rises up in a V-shape.  Let's create the sources. Fire / Smoke Source Emit Mode Inject Power Noise Temperature Smoke Fuel RGB Motion Velocity Prt Size Major Explo Volume Inject Frame 17 – 22 1 → 0 0 2200 0.9 1 10, 10, 10 1 0.15m V_Dust Volume Inject Frame 17 – 24 1.5 → 1 0.4 - 0.2 - 223, 199, 184 1 0.15m Falling Fire Surface Force Animated over the entire timeline 3 1800 0.03 - 49, 49, 49 1 0.4m Ground Fire Surface Force Animated over the entire timeline   3 1600→1545 0.2 - 49, 49, 49 1 0.3m Adding V-dust Fire/Smoke Sources Create a  Phoenix Fire/Smoke Source  in the scene: Modify Panel → Create → Helpers → PhoenixFD → PHXSource. Rename it to  PHXSource_V_dust . Press   the  Add  button to choose which geometry to emit and select the  tyFlow-V_dust  entry in the Scene Explorer. For  PHXSource_V_dust : Set the  Emit Mode  to  Volume Inject  and  Smoke  to  0.2 . Disable the  Temperature  option. Enable the  RGB  option and set it to light gray color   ( RGB: 223, 199, 184 );  Motion Vel . to  1.0 ;  Prt Shape  to  Sphere, custom ;  Custom Prt Size  to  0.15 m . From  frame   17  to  24 , animate the value of  Inject Power  from  1.5  to  1.0 . We animate the Inject Power, beginning with frame 17 as the first bomb hits the ground at frame 17. If your particle system changes, you need to adjust the timing accordingly. In this scene the ratio of high temperature and smoke amount is key for the final appearance of the explosion. We deliberately keep the amount of smoke low, so that during rendering the light from the explosion core scatters through the thin smoke and produces convincing-looking result. Leave the Time Base to its default value (Absolute), we change that later. Go to  Graph Editors/Track View → Curve Editor  and   check the curve of  PHXSource_V_dust 's Inject Power. Set the first key frame to  Tangents to Slow  and the second key frame to  Tangents to Fast . Set the Phoenix Simulator → Simulation rollout →  Start Frame  to  16  so that it matches the first frame when tyFlow's bomb hits the ground. The Timeline checkbox needs to be disabled for the numerical field to become editable. By default, the Timeline checkbox specifies the Start Frame as the first frame on the Timeline. Here is a Preview Animation of the simulation up to this step.   Adding Major Explosion Fire/Smoke Source Add a  Phoenix Fire/Smoke Source : Modify Panel → Create → Helpers → PhoenixFD → PHXSource. Rename it to  PHXSource-major_explo . Press the  Add  button to choose which geometry to emit from and select the  tyFlow-major_explo  entry in the Scene Explorer. For  PHXSource-major_explo : Set the  Emit Mode  to  Volume Inject ,  Temperature to 2200  and  Smoke  to  0.9 . Enable the  Fuel  option, and set it to a value of  1.0 . Enable the  RGB  option and set it to a dark gray color  (RGB: 10, 10, 10) ;  Prt Shape  to  Sphere, custom ;  Custom Prt Size  to  0.15 m . From  frame 17  to  22  animate the value of  Inject Power  from  1.0  to  0.0 . You can go to  Graph Editors/Track View → Curve Editor  and check the curve of PHXSource-major_explo's  Inject Power . Set the first key frame to  Tangents to Slow  and the second key frame to  Tangents to Fast  as shown. To allow Phoenix to burn the fuel from  Major_Explo source,  select the Simulator and go to the  Fuel  rollout. Check the  Enable Burning  option and leave all settings as default for now. If you want your explosion to emit less smoke and have more fiery look, you can increase the Smoke Threshold amount here. If you want the explosion to swell faster, you can increase the Propagation value. All of these affect the character of the explosion. We'll tweak those parameters a bit later. Here is a preview animation of the simulation after the last step. Now we see the explosion and the burning fuel, but the smoke looks too thin. Let's see how to enhance it.   The default render setting of the Smoke color is  Constant Color  for the entire smoke volume. Let's change it and get more variation. Select the  Phoenix Simulator → Rendering  rollout and press the  Volumetric Options  button. In the  Volumetric Render Settings  window set the  Smoke Color  to be Based on  RGB . Set the  Smoke Opacity  to be based on  Smoke  and then adjust the curve as in the screenshot. Make sure to enable the RGB channel in the  Simulator's Output rollout  before you simulate, otherwise you get only black smoke when switching to Based on RGB in this step. When you adjust the curve, make sure to reset the left corner point from  XY: [ 0.1, 0.0 ]  to  XY: [ 0.0, 0.0 ] . Otherwise you get smoke with a clamped appearance in the rendering. Instead of manually creating the smoke curve yourself, you can load the render preset file from the provided  example scene files here . Note that this action replaces all your rendering and preview settings. Go to  Rendering Rollout  →  Render Presets  →  Load from file  and open up the  Smoke_Opacity_curve.tpr  file. Here's a preview of the simulation with the render settings changed. Now we have thicker smoke appearance and the color variation of the smoke looks more convincing. However,  V_dust  appears too uniform. Let's tackle that.   Adding Smoke Noise to the V_dust Let's give the  V_dust  some randomness. Set  PHXSource_V_dust 's  Noise  to  0.4 . Run the simulation again. Let's see a preview animation. Notice that  V_dust  now looks more organic. However, although many bombs hit the ground, we can only see one fiery explosion in the preview. In the next step, we are going to take care of that.   Time Base In the previous steps we animated the Outgoing Velocity for each Fire/Smoke Source. The keyframe starts at frame 17 because that is when the first missile hits the ground. However, we have 13 more missiles in the scene. They explode at frames 17, 19, 22, 24, 27, 32, 34, 38, 41, 44, 47, 49, 51 and 54 respectively. Though we can manually set keyframes every time when a bomb explodes, if the particle animation changes, we have to move the keyframes accordingly and that can be very tedious. Instead we can do something else... Thanks to the  Time Base  option in the  Fire/Smoke Source , we can do it in a smarter way. Set the  Time Base  to  Particle Age  instead of  Absolute . We simply shift-move the keyframes to begin at frame 0. The Fire/Smoke Source reads the particle age information from tyFlow, so we can have sources emitting fluid with animated strength procedurally. Time Base Particle Age is used when emitting from particle systems. It allows you to animate the parameters using the age of the particle instead of the timeline frame time. It is a very powerful feature of the procedural  pyro  effect. This is one of the most important steps for this tutorial. Make sure to change the Time Base to Particle Age, and shift-move the keyframes for every source so they begin at frame 0. In Particle Age Time Base mode, the frames on the timeline denote the age of the particles, so any Source animation at frame 0 is applied to each individual particle at the time of its birth, and then the following animation unfolds throughout the lifetime of the particle. This way particles born at different frames each go though their own emit animation starting from their birth. Here we show only one example for the  V_dust  Fire/Smoke Source. Be sure to do the same for the Major_explo Fire/Smoke Source too. Shift-move all the keyframes of the two Fire/Smoke Sources to the first frame. This table shows the positions of the new keyframes. Go to the  Phoenix Simulator  →  Simulation rollout  and  enable  the  Start Frame Timeline . Fire / Smoke Source Old keyframes position New Keyframes position V_dust Frame 17, 24 Frame 0, 7 Major_explo Frame 17, 22 Frame 0, 5 With the new position of the keyframes and the Time Base set to Particle Age, run the simulation again. Now we start to see multiple explosions in the scene. To improve the fluid simulation, let's switch the conservation method to  PCG Symmetric  in the next step.   PCG Solver Select the Phoenix Simulator and change the  Conservation Method  to  PCG Symmetric , with a  Quality  of  40 . The PCG Symmetric option is the best method to use for smoke or explosions in general, preserving both detail and symmetry. The high Conservation Quality allows the dust to swirl better.  For in-depth information, check the Conservation documentation . With the new Conservation Method, run the simulation again. As you can see, our fluid simulation's movement is more realistic now.   Adding Ground_fire Fire/Smoke Source Add a  Phoenix Fire/Smoke Source : Modify Panel → Create → Helpers → PhoenixFD → PHXSource. Rename it to  PHXSource-ground-fire . Press the  Add  button to choose which geometry to emit from and select the  tyFlow-ground_fire  entry in the Scene Explorer. Set the  Emit Mode  to  Surface Force  and  Smoke  to  0.2 . Enable the  RGB  option and set it to dark gray color   (RGB: 49, 49, 49);  Motion Vel . to  1.0 ;  Time Base  to  Particle Age .  Prt Shape  to  Sphere, custom ;  Custom Prt Size  to  0.3 m . From  frame 0  to  70  animate the value of  Outgoing Velocity . Also, from  frame 0  to  90 , animate the value of  Temperature  from  1600  to  1545 . Details of the animation curve are shown in the next step. Go to  Graph Editors/Track View → Curve Editor  and set keys to the curve of PHXSource-major_explo's  Outgoing Velocity  and  Temperature . We set keyframes to Outgoing Velocity and Temperature, so both change over time. Each frame and value are shown in the screenshots. All keyframes are set to  Tangents to Linear . The idea here is to allow the ground fire to gradually grow and die out, instead of popping out suddenly. You can draw your custom curve as you like. Run the simulation again. Here is a preview animation of the simulation after the last step. Although we have added the ground_fire source to the sim, we still can't see any ground fire in the preview and this is the next thing we will take care of.   Adding Smoke Noise to the Ground Fire Let's give  V_dust  some randomness.  Set  PHXSource_V_dust 's  Noise  to  3.0 . The Noise parameter can introduce variation in the Outgoing Velocity across the surface or the volume of the emitting geometry or particle. The variation also changes over time. This is a shortcut, instead of using an animated noise texture in the Mask slot. Run the simulation again. Let's see a preview animation of this simulation run. Now we start to see ground fire in the preview. The fire grows gradually once the bombs hit the ground.   Adding Falling_fire Fire/Smoke Sources Create a  Phoenix Fire/Smoke Source  in the scene: Modify Panel → Create → Helpers → PhoenixFD → PHXSource. Rename it to  PHXSource_falling_fire . Press   the  Add  button to choose which geometry to emit from, and select the  tyFlow-falling_fire  entry in the Scene Explorer. For  PHXSource_falling_fire : Set the  Emit Mode  to  Surface Force  and  Smoke  to  0.03 . Set the  Temperature  to  1800 . Enable the  RGB  option and set it to dark gray color   (RGB: 49, 49, 49);  Motion Vel . to  1.0 ;  Time Base  to  Particle Age .  Prt Shape  to  Sphere, custom ;  Custom Prt Size  to  0.4 m . From  frame 0  to  90  animate the value of  Surface Force . Details of the animation curve are explained in the next step. Go to  Graph Editors/Track View → Curve Editor  and set keys to the curve of PHXSource_falling_fire's  Outgoing Velocity . We set keyframes to Outgoing velocity, so it can change over time. Each frame and value are shown in the screenshots. All keyframes are set to  Tangents to Linear .   Again, the idea here is to allow the falling fire to  gradually grow and die out, instead of popping out suddenly. You can draw your custom curve as you like. Run the simulation again. Here is a Preview Animation of the simulation up to this step.   As the viewport preview is just an approximation of the final rendering, let's run test renders for frame 50 and frame 90. We choose two representative frames (frame 50 and 90) for test rendering. However, you can render out other frames as you like. We want our explosion to be more fiery and volatile. So, increase the  Smoke Threshold  in the Simulator's Fuel rollout to  0.1 . Smoke Threshold controls how much of the burning Fuel produces Smoke. Higher values cause less of the burning fuel to produce Smoke. Run the simulation again. Here is a Preview Animation of the simulation up to this step.   Test render for  frame 50  and  frame 90 . Now the results became brighter with thinner smoke. We want the bomb to be even more explosive. Let's increase  Propagation  to  14.0 , so the fluid expands faster when the fuel burns. Propagation controls the speed of expansion of the fire and smoke, generated by the burning fuel.  Run the simulation again. Here is a Preview Animation of the simulation up to this step.   Test render for  frame 50  and  frame 90 . You can see the explosion expands faster. The default black body volumetric shading looks a bit dull, so let's make it more interesting in the following steps. Volumetric Shading Settings Go to the  Fire / Smoke Simulator  →  Rendering  rollout, click on  Volumetric Options . Adjust the color gradient and the curve as shown in the image. The color gradient is set to black-red-orange-yellow representing fire color at different temperatures, from coolest to hottest. Note that the region green highlighted in blueish-green shows the temperature data range for the current timeline frame. When you scrub the timeline, this area changes as the grid content changes. In this case we have fire temperatures ranging from 0 to around 2500 Kelvins. When you set the color ramp and curve, make sure they are within the range of the green area because this is the data that will actually be rendered for this frame. We used an S-shaped curve. Why did we set it like this? From left to the right, the curve begins with the highest value of Y, then goes down at the highest temperature. By doing so, we can make sure we retain most of the details at a higher temperature, avoiding color washout. Alternatively, load a Rendering Preset from the  Smoke_Opacity_curve_and_Fire_color_gradient.tpr  file, provided with the sample scene. Test render for  frame 50  and  frame 90 . With the new color gradient and curve, the fire and smoke become more vivid and violent in terms of color and shading. However, we need more details in the explosion. To alleviate the washout problem in the shading, let's reduce the  Light Power on Self  and  Light Power on Scene  to  0.2 . Render out  frame 50  and  90  again. Now we see more details in the explosion. However, we would also like to see more details in the white smoke in the beginning (frame 50). Lower the  External Scatter Multiplier  to  0.2 . Render out  frame 50  and  90  again. As you can see, more details in the white smoke appear. For additional realism to the simulation, we use a Phoenix Plain Force to simulate the effect of wind. Go to the  Helpers  tab  → Phoenix  and add a  Phoenix Plain Force . The Plain Force is a simple directional force. Rotate it so that it points in the  positive X direction  and set the  Strength  to  1.5 m . Set the  Drag  to  0.01 . Enable   the  Apply Force Behind Icon  option. The exact  Position  of the Plain Force in the scene is XYZ:  [ -30, 0, 14 ] . When enabling the  Apply Force Behind Icon  option, the force is applied behind the helper icon. Otherwise, the fluid behind the icon is not affected by the Plain Force. With the Plain Force in the scene, simulate again. Now the explosion shifts slightly to the right as the wind blows.   Final Simulation Since the whole explosion covers a large region, we have to expand the Simulator grid. In order to get a more detailed result we also increase the grid resolution by lowering the  Cell Size  for the final simulation. Move the  Phoenix Simulator  to  XYZ: [ 0.365, 0.25, 0.0 ] . Open the Grid rollout and set the following values: Cell Size :  0.07 m ; Size  XYZ:  [ 640, 320, 108 ] ; Adaptive Grid :  Smoke  -  Threshold  of  0.02 ; Adjust the  Max Expansion  to:  X:   (436, 509) ,  Y:   (415, 360) ,  Z: (0, 586) . Here is a Preview Animation of the final simulation.   V-Ray Frame Buffer The final image is rendered using the V-Ray Frame Buffer with the  Color Corrections  set to: Exposure : Exposure : 2.69; Highlight Burn : 0.69; Contrast : 0.25. White Balance : Temperature:  7362. Bloom/Glare Effect  is enabled from the  Lens Effects  panel: Size : 16.98; Bloom:  0.29; Intensity:  1.51. And here is the final rendered result. There are several parameters affecting the rendering speed of Phoenix volumetric data. You can find some useful tips for rendering optimization in this article:  Volumetric Rendering In-Depth .