Using values
Recipes for values each particle carries: count bounces and change on the third, give each particle its own weight, colour particles in a shader by a value, and check a value at a frame.
A value is something each particle carries that you name: a count, a strength, a flag. Values explains each part; these are recipes that use them.
Change on the third bounce
Count each particle's bounces, and send it on when there are three.
In the flow editor's Values panel, add bounces, a Whole Number
starting at 0.
Build the flow below. The Collide in Bouncing sends each hit to Hit, which adds 1 and sends it straight back, until there are three.
The test is above 2.5: Above means more than, so 3 passes and 2 doesn't. Swap the red Colour for anything: a Delete, a Spawn of sparks, a Speed up.
Each particle its own weight
Some float like feathers, some drop like stones: a random number each, weighing Gravity.
Add weight, a Number starting at 1.
In the event, a Set Value: Value
weight, From Random, between 0.2 and 1. It's set as each is born.
In Gravity's Influence, name weight.
Each particle is pulled by its own share: 0.2 a fifth as hard.
Any force or look weighs the same way: Turbulence by a value for some that flutter more, Scale by one so size follows something else.
Colour by a value in a shader
Leave Export on for the value, and it's saved with each frame as an attribute of its name.
In the particles' material, add an Attribute node with the value's name (type Instancer for shapes, Geometry for spheres).
Into a Map Range (from its lowest to highest), then a Color Ramp, into Base Color.
With bounces, the balls darken as they bounce; with a value set from
Distance to an object, they glow as they near it. In Geometry Nodes,
read it with Named Attribute.
Check what a value does
The sidebar's Values at This Frame panel, folded away at first, shows
each exported value's Lowest, Mean and Highest across the
particles at the frame you're on. Step through frames and watch: that
bounces climbs, that a remap lands between 0 and 1, that weight spreads
between 0.2 and 1.
What goes wrong
- Nobody is sent on. The value never reaches the test: Set Value is in another event, or Starts At is already past it.
- An Influence does nothing. The value is 0 for every particle: nothing sets it, and it starts at 0.
- The shader shows black. The Attribute node's name or type: names are exact, Instancer for shapes.
- The value isn't in Values at This Frame. Its Export is off, or the bake is older than the value: bake again.
