Some basic features, like the lifecycle.
Particles can climb on any surface, with their movement direction aligned to the Y-axis, and they can stop at the boundaries.
It can show the particle movement paths.
It can constrain the direction.
It can emit based on different objects and positions.
It can climb on any object.
Climb a tree and become a particle tree.
You can add an Solidify modifier to achieve the effect of climbing through the air.
Note
This is the standard version, and there will be an advanced version coming up next. If you have any good suggestions, just let me know, and if they work, I'll include them in the advanced version.