my_position = Lerp(my_position, target_position, speed);

if speed is 1, then it will be instant. (return target_position)

if speed is 0, then we won't move (returns my_position)

if speed is 0.1, then it will take (roughly) 10 frames to move there

the reason you get a smooth movement is because you are moving a fraction of the distance each frame, but because that distance is getting less each frame it appears to slow down as we reach our destination.

note: may never reach the exact mathematical position since we are moving a fraction of the distance each frame (unless speed is 1)

for that wobbly **** that Cactus does, you're gonna want to look into something called a sine wave