MAKING A NICE EXPLOSION

Starting off

The first thing you need is an ordinary sphere. Once you have that, use some Translate modules to make 4 spheres on a plane (say the XY plane) at positions (0,1), (0, -1), (-1,0), and (1, 0). You might want to use a few Scale modules as well to make the spheres of slightly varying sizes (for example, you might use 0.9, 1.05, 1.09, and 0.95 for scale values). Once you have this set, use a compute module to specify the translations and the scales and make them change according to time. Since you want the spheres to move apart as time goes on, add some factor of time to their position for the Translate modules and make the scale factors get slightly larger over time as well. Now you have something like an explosion, but it's only one one plane. So use a collect and some rotates to copy these spheres onto other planes so that a spherical area is filled by about 12 spheres or so. (Adding more spheres will probably just make it look better in the end.)

Choosing Colors

At this point you should be able to sequence the explosion and see a bunch of spheres moving apart from each other nicely while increasing slightly in size. But of course, it won't look to spectacular yet because there is still coloring and opacity to take care of as well as perturbation. And easy way to take care of the coloring is to Mark positions and to use them to calculate the distance from the origin. Based on this, choose a color. Make the explosion more yellow on the inside and more orange on the periphery. You can add some randomness to this color choice to make the explosion dynamic.

Varying Opacity

Next, you need to deal with opacity. This is rather obvious... as time progresses, the opacity should decrease because the explosion should become wispier and wispier and eventually disappear altogether. There are two ways to handle this. A very simple way which works well is to vary the opacity of the initial sphere from which the entire explosion is built. Alternatively, you can Mark... Unmark "Opacities" and make the opacity of each point different as time progresses. This should produce a nicer effect.

Adding Randomness to Positions

After all this, you will have spheres that have varying color and opacity, but the randomness and "noise" of an explosion still hasn't been added. This is the most difficult part of the explosion to make. Looking at the "storyboard" above, we can see that the first frame is quite orderly and that this order diminishes as time progresses. A good way to make this happen is to Mark "positions" and add randomness to it. The key problem is deciding how much randomness to add. As mentioned previously, the amount of randomness increases with time. So, assuming the original positions are in a vector called A, and a "randomness vector" is called B, you will want to have the new positions as a vector C = A*(1 - x) + B*(x) where x is a function of time. Some experimentation is necessary to come up with the function x that looks most convincing, but keeping a percentage of the original vector is the key to making the sphere disintegrate in a methodical and realistic fashion.

Ideas For Enhancements