// *** position *** maxX = 300; maxZ = 100; maxY = 100; tMult = .25; xMult = .25; zMult = .25; seedRandom(index,true); x = random(-maxX,maxX); z = random(-maxZ,maxZ); y = maxY*noise([x*xMult,z*zMult,time*tMult]); value + [x,y,z] // *** z rotation *** maxX = 300; maxZ = 100; maxY = 100; tMult = .25; xMult = .25; zMult = .25; deltaX = 10; rMult = .15; seedRandom(index,true); x = random(-maxX,maxX); z = random(-maxZ,maxZ); y1 = maxY*noise([(x-deltaX)*xMult,z*zMult,time*tMult]); y2 = maxY*noise([(x+deltaX)*xMult,z*zMult,time*tMult]); rMult*radiansToDegrees(Math.atan2(y2-y1,2*deltaX))