How to animate particle object material emission strength randomly

I want to have a particle system (emission) where the particles will randomly change the emission strength throughout their lifetimes. I know how to change it using a particle info node, and have used that node to change color depending on age, lifetime, etc. but I want each particle to randomly get brighter and darker throughout it’s lifetime, maybe changing several times before it dies. Is this possible? I thought about using multiple particle systems, but that really would do what I want.

(edit) Ii also uses the object info node > random for the particle object, and while it does randomize the emission strength, it doesn’t change once the particle is emitted.

Still no replies, so maybe I should clarify what I want. I can generate particles of varying random colors and materials, emission strength and so forth. However, once each particle has been emitted, its material will not change randomly. I can change it using the particle info node to change over its lifetime, age, or position, but those aren’t random. So if a particle (using objects as particles) is created say in red with an emission strength of 5, it will always be the same until it dies. I want the material to change randomly AFTER it’s been emitted. I can’t seem to find this solution. I don’t know Python, even though I’m sure that would work.

Trying to explain again. I have a particle system. I have an object (sphere) as the particle(s). I want the particle to change to random colors AFTER it has been emitted. I know how to emit particles with random colors, and how to change colors over time using the “Particle Info” node (use age, index, lifetime, etc.) I also know how to use the object info node “Random” connector to have random colors. However, none of these will allow the particles to randomly change colors AFTER emission. The particle info node will change all particles according to index, age, lifetime or location, chosen from a color ramp. But not just change randomly at each frame of the animation.

You can do it by dividing age by lifetime, and then feeding that into a couple of color ramps with a varied spectrum of black to white and mixing those randomly and then feeding that into emission strenght or a hue/sat for color.

Something along these lines:


I’ll try it and then reply. Thanks.

Well it works, sort of. The only problem is that in addition to the colors in the color ramp, I always get some black particles also. I don’t have black as one of the colors in the color ramp, so I don’t know why it’s there. Otherwise, it seems to work pretty well. I wish Blender had a node for purely random number generator, and also something to tie into the frame number of the animation.

The reason you get frames with black is that the emission value is going to 0 on some frames. You can boost up the minimum emission value a couple of ways.

  1. On the b/w color ramps don’t ever go to pure black, just a dark gray.
  2. on the last math, multiply node (far right), add another math node between that and the emission strength, change the type to add, and then add small value (.1 - .8) so that the emission value never reaches 0

You can create pure random generators a few ways, I’ll post a couple…

to get rid of the black:


Here are nodes to create a random number between 0 and 1. The multiply node set to a large value (123456.0) acts as a seed and changing it will produce a new set of random numbers. You could turn this into a node group and use that value as in input seed , and then reuse it to product several random numbers.

Looks like this:


This setup tends to produce better and more random values and doesn’t rely on lifetime.


Thanks again. I will try these two methods and see how they work. I will post after I try.

It would be nice to have a “random” output on the math node though. It would make it easier to be able to generate a random number. But I would also like to see a node that references animation frame (such as “animation>index”) and then trigger values, etc. based on frame of the animation. It could have a “skip” factor (i.e. do something every nth frame, etc.). Maybe the developers can look into these ideas.

Well, again, it sort of works, in that the particles emerge in random colors, but they soon all turn to red, and stay red.

If you want to explain the exact effect you want, and then post a simplified blend I can show you how to get what you’re after.

Well I appreciate your help a lot! But I don’t know how else to explain it. All of these methods depend, in part) on particle info (age, lifetime, etc.). But a particle never changes color RANDOMLY at any give frame of the animation. Some methods will change the emission strength, or the hue, etc. but only from a color ramp. I am now looking into drivers to make the changes.

This will give you a random value every frame, every object, and particles too regardless of lifetime.
0) Cursor, snap to center

  1. In your file add an empty make sure it’s named ‘Empty’ (and not Empty.003…) Empty is selected, and is at z = 0 location.
  2. Go to your first frame (frame 1) and hit i to insert keyframe, choose ‘Location’
  3. Go to the last frame in your file
  4. Move the empty up to z=1 (g z 1)
  5. i to insert a keyframe, ‘Location’

Download this blend:
random.blend on dropbox

File, append, go to random.blend , materials, ‘randmat’
Assign ‘randmat’ material to one or more of your objects/particles.