I wrote the Elixir Behavior Tree library. This talk explores what a behavior tree is, how it is used in AI and robotics, and how it differs from decision trees and state machines. I describe how it relies on the Zipper Tree, emphasizing the technique of encoding logic into declarative data structures, and I will contrast my design decisions and implementation in Elixir against other mutable, non-functional languages that behavior trees are usually written in. I will pull it all together with a cool demo, iterating on a behavior tree AI that plays Battleship.
I am a polyglot and functional programing enthusiast, with a background in screenwriting, and a hobby of making web games. I have lived and worked in Denver, LA, Bristol (UK), and Seattle.