Pyro Burst Source

The Ultimate Houdini node reference

Visit the Node Bible

To learn more, please log in or sign up for free to explore the Node Bible.
Write your awesome label here.

Pyro Burst Source

Write your awesome label here.
Write your awesome label here.
Write your awesome label here.
Write your awesome label here.
The pyro burst source sop can be used to generate particles which describe the shape of something that you'd like to make within your pyro simulation.  These particles also have attributes, and these attribute values can eventually be converted into voxel values by using the Volume Rasterize Attribute SOP.  The main idea is that you want to setup the shape with particles, convert it into VDB volumes, and then feed that into the pyro solver to get the pyro effect that you're after.
Drag to resize


    In practice, the pyro burst sop can be used in a wide variety of ways.  This SOP will give you particles that are shaped in a variety of ways.  The explosion gives you spike shapes.  Muzzle Flash gives you an elongated spikey shape.  Shockwave provides ground rings which expand outwards, and blast rings offer multiple rings which reach upwards over time. 

    It also features a nice collection of animation/retiming options, the ability to randomize various parameters, the option to add noise to the attribute values on the particles, and controls for changing the particle's attribute values over time and/or along the length of the shapes.

    The input of this node expects points.  If you feed points into this input, then it will use those point locations for determining where the pyro burst happens.  Attributes assigned to incoming points can also be used for controlling various parameters on this node.

    You'll notice that this node has a dropdown menu and a dice icon next to most parameters.  The dropdown gives you three options:  Set Uniform, Set Varying, Use Attribute, and Scale Attribute.  These options are asking you how you'd like to control the value for that parameter. 

    "Set Uniform" means that you want to just use the slider as it is by default on the node.

    "Set Varying" will add two additional settings - variation and seed.  The variation will add and/or subtract randomly from the base value by this amount.  The seed offers a different version of the values. 

    "Use Attribute" will allow the pyro burst shape to read an incoming attribute when determining the value of something.  The attribute it reads needs to be a point attribute.  It must belong to points that you plug into this node.  And the naming needs to line up with the internal name used for the parameter.  An easy way to see what internal name the parameter needs is by hovering over the text of the parameter name.  As an example, if you hover your cursor over "Initial Size," it tells you that the internal name is "size" in the section that says, "Parameter: size."  Alternatively, you can click the dice icon and read which attribute name is automatically generated by the randomization node.

    "Scale Attribute" works just like the "Use Attribute" except that it also gives you the option to multiply the incoming attribute values by a certain amount.  

    Last but not least, the dice icon will generate a node called "Attribute Adjust ____"  which is basically like a whole node designed for randomizing attribute values.  If the above dropdown parameters aren't enough to give you the randomization you're looking for, then the options found here ought to work instead.

Drag to resize

General Parameters:


--  When reading points along the input, you can specify which points you'd like to read from by specifying their group here.  For more on groups, be sure to check out the Group SOP.

Guide Display:

-- This gives you the option to change how you'd like to preview your burst shape.  By default, it will show you particles.  But you can also specify "proxy shape."  Depending on which "Burst Type" is selected, it will provide you proxy geometry along with an arrow pointing in the burst's facing direction so that you can get a better visual sense of the silhouette and behavior of the settings.

Additional Guides:

--  If you're also using a "pryo tail path" node, then this will overlay the direction of those paths.

Quick Setups & Initialize:

--  These parameters are useful for times when you want a preset or want to change the settings for every parameter along the node.  The Node Bible will not cover what each preset does, so it's best to explore this on your own and have fun.

Randomization By:

--  When the pyro burst sources goes to create the spikes based on incoming points, it determines what variation it uses by the point number.  If the point number changes on the incoming points, the spikes will change their shape.  If you don't want to rely on point number, you can specify a seed attribute instead.  That seed attribute can then be used to determine the shape of the spikes.  In practice, if you notice your spikes changing shape over time, it's probably because the point number is changing on the incoming points.  To get around that, use an attribute instead so that the shapes remain consistent.  

Drag to resize

Burst Shape:

urst Type:
--  Explosion =  Spikey shapes that fan outward from a specified direction
--  Muzzle Flash =  Spikey shapes that extend towards a specified direction with different controls intended for more a more specific direction.
--  Shockwave =  Gives you a ring of particles that extend outwards
--  Blast Rings = Generates multiple rings of particles which spawn upwards (or whichever direction you'd like) over time.

Shape Offset:
-- The Shape Offset can be used as a seed to the pyro burst shape. If you don't like the shape that you're getting, try changing the offset and selecting a version that you like better instead.

Initial Size:

--  This determines the overall scale of the burst shape.


--  Determines which direction on the burst shape will be facing.  This parameter can be useful if you're trying to get a burst shape to face in the normal direction of the terrain (as an example).

Spread Angle:

--  This only applies to "explosion" and "muzzle flash." spikes will randomly spread outwards from the direction (as described above) by this many degrees.  The muzzle flash has this parameter visible, but it may not do anything.


--  This only applies to "explosion" and "muzzle flash."  The roundness will change the overall shape of the silhouette.  A high roundness makes a very spherical shape with the spears, and less roundness creates more defined shapes in certain directions.

Flash Length:

--  Only applies to "Muzzle Flash."  This will extend the spikes outwards in the specified direction.

Spread Start Angle:

--  Only applies to "Shockwave."  This causes the ring to curve up in the specified direction.

Spread Angle:

--  This adds thickness to the shockwave ring

Azimuth Start Angle:

--  (Applies to Shockwave and Blast Rings) In effect, this will rotate the shockwave ring.

Azimuth Angle:

--  (Applies to Shockwave and Blast Rings) How far (in degrees) to sweep around this ring

Add Shape noise:

--  These settings will use a noise to distort the circular shockwave shape.

ings Per Blast:
--  How many rings to generate over the lifespan of the animation

Distribution Length:

--  Spaces out the rings as they move in the specified direction

Change Distribution Along Height:

--  This will enable a ramp which allows you to control how many rings are generated along each area of the distribution length.

Number of Trailings:

--  (Applies to Muzzle Flash and Blast) How many spikes to generate

Trailing Separation:

--  This determines how many points are used to represent each spike.  Lower separation means more particles.  Higher separation means less particles.

Trailing Length:

--  The trailing length gives you control over where particles are cut off.  A lower trailing length will give you short, stubby looking spikes.  A longer length reaches back to the position where where the spikes originally came from.

Trailing Thickness:

--  This controls how chunky and/or skinny the spikes are. 

Point Separation:

--  This controls the number of points in blast rings or shockwaves

Trailing Depth:

--  Determines how much faster the outside portion of the ring expands compared to the inner ring

Drag to resize

Burst Animation:

Start Frame:

--  This determines when the burst will start its animation.  Note that the pyro burst source will spawn a burst on frame 1 at the origin if there are no incoming points detected at frame 1.  This is important to recognize if, lets say, you're trying to do a missile simulation which does not feature any sourced points on frame 1.

Frame Duration:

-- This determines how long each burst animation will last.

Outward Expansion:

--  (For Muzzle & Explosion) This will scale up the burst uniformly as the animation progresses.

Directional Expansion:

--  (For Muzzle & Explosion)  This will scale up the burst based on its shape.  Smaller spikes which are closer to the sourced position will scale up more slowly than spikes which are originally larger and further outwards.

Expansion Over Duration Ramp:

--  This controls how much the burst will scale up or down over the duration specified above in the frame duration parameter.

Directional Translation:

--  (For Muzzle & Shockwave)  This will transform the entire muzzle flash away from the source location as the animation progresses.

Interior & Exterior Expansion:

--  (For Shockwave)  The shockwave ring has an expansion speed for the outside and inside rings.  This controls how quickly the inside ring shoots outwards from the source.  The Exterior Expansion controls how quickly the outside of the shockwave ring expands outwards.

Outwards Expansion:

--  (For Blast Rings)  This works uniformly for the blast rings as how far the rings will generally blast outwards over thee duration of the animation.

Drag to resize

Burst Components:

The Burst Components section is used to control the attribute values on points generated by the pyro burst source.

Default Value:

--  The default value is the starting value of each attribute.  The default value of 1 is good for most situations.

Scale Over Duration:

-- This allows you to scale down the attribute value over the duration of the burst.  If you check this on, then a ramp will appear, and that ramp describes how the attribute value changes over time.  

Scale Along Trailing:

--  This gives you the option to scale down the attribute value along the length of each spike.  In the case of shockwave rings, this does so between the interior and exterior areas of each ring.

Number of Sources:

--  These tabs represent different attributes that you can create.  As you add attributes, more particles will be spawned which contain those attribute values.  The various attributes are also color-coded.


--  This selects which attribute you'd like to create.  As of writing, there is no option for creating "flame" or "fuel."  If you ever want to change the name of something after the pyro burst source, it's easy to do with a point wrangle and saying @name = "foo"; for those particular particles.  There is a dice icon next to this field, however, I've found that it's better to add variety by using the noise parameters below or by using an attribute randomize after the pyro burst source sop.  Adding variety here only makes sense if you want to have multiple bursts which feature different starting values.  This can also be achieved with the "Source Value Scale" parameter that's described below.

Prefix Attribute Name:

--  This parameter is only useful if you're also using the Pyro Trail Path SOP.  It creates a prefix called "burst_" so that you can tell separate density values made by the pyro burst source from the density values made by the pyro trail path sop.

Source Value Scale:

--  This scales the overall values of the burst.  Clicking the +/- button will allow to to randomly add or subtract by a certain amount for each burst.

Enable Noise:

--  Reveals parameters for adjusting noise.  The noise travels along with the animation of the spikes.

Start Frame:

--  This burst override will offset the starting frame of this group of particles.  In practice, this is useful if you want something to come after or before other sources.  As an example, if you want density to show up first, and then burn to show up 3 frames after, you can make those adjustments here.

Expansion Scale:

--  Makes this group of particles expand further than the default behavior set in the burst animation tab.

Seed Offset:

--  Changes the seed of the burst shape for this group of particles.  In practice, this is very useful for making the source feel for chaotic at each frame.

Drag to resize

Output Attributes:

This section defines other attributes which aren't specified in the Burst Components section including pscale, velocity, and a few other misc. attributes which may come in handy.

Source Attribute:

--  This basically says, "For each point generated by the pyro burst source, create an attribute called ____ (by default "source_name") which lists out each burst component that as recorded on that point.  In the geo spreadsheet, you'll see that this attribute is a string value.  In practice, the intention is to give you an attribute that can be used to separate out points.  So, if you just want to isolate particles which stored "temperature" then you could use this attribute to do so.  In practice, I don't find this very useful because it's much easier to just make a delete or a blast which says @temperature>0 in the group field for isolating those points.

Particle Scale:

-- This is your pscale!

Velocity & Velocity Noise:

--  Acts as an intensity multiplier for velocity.  You can also use a velocity noise, however, in practice, I prefer using a point velocity sop after the pyro burst source to break up those vector directions.

Copy Input Attributes:

--  This allows you to keep any attributes present along the input points.

Normalized Age:

--  This stores a value between 1 and 0.  1 means that a burst has reached the end of its animation.  0 is at the beginning.  

Trailing Position:

--  This stores a normalized value (between 0 and 1) which records how far along a spear or ring that a point is.  1 means that a point is located at the inner portion of a blast ring or base of a spike.  0 is at the end of a blast ring or spike.

Rest Position:

--  This stores the original position that a point was spawned at.

Randomization Attribute:

--  This creates a burstid attribute.  The burstid is an integer attribute that is unique to each burst that was spawned by a point.