A noise function is used to control the Y position of a string of particles. Arithmetic operators are used to control the amplitude, frequency and offset of the function. 1. Create an emitter with as desired parameters...... 2. Create Custom Attributes as follows a. tornodoRadius b. tornodoTwist c. tornodoRadiusMult now let code: creation Expression particleShape1.tornadoRadius=rand (.75,1.25); particleShape1.toranadoTwist=rand (1,3); particleShape1.position=<<1000,0,0>>; **** Runtime Expression vector $pos=particleShape1.position; float $radius=particleShape1.tornadoRadius*particleShape 1.tornadoRadiusMult; float $speed=time*particleShape1.toranadoTwist; float $noise=noise((time*.3)+(particleShape1.particleId* .01)); particleShape1.position=<<($radius*(sin($speed+par ticleShape1.particleId)))+$noise ,$pos.y+.1, ($radius*(cos($speed+particleShape1.particleId)))+ $noise>>; **** and third create a ramp on tornodoRadiusMult custom attribute this ramp will be used to control its hollowness from top or bottom..... adding source file.........check it out...! enjoying.......!