This work is based on paper writter by Craig W. Reynolds about steering behaviors http://www.red3d.com/cwr/ And based on implementations of Daniel Shiffman https://www.youtube.com/user/shiffman on his books: The nature of code http://natureofcode.com/