This is my first dabbling into autonomous agents. An autonomous agent, or “vehicle” in Valentino Braitenberg‘s terminology, is an agent capable of selecting an action, and consequently steering itself towards achieving it.
The particle system I created has three types of particles: target particles (visually represented as pink squares), seeker particles that pursue a target particle (represented as the large colorful ellipses), and avoider-seeker particles that are simultaneously moving towards a target and avoiding another (they are the small, ghostly hollow ellipses in the screenshots/videos). The particles follow an inheritance hierarchy: both the Seeker and Target classes inherit from a base Particle class. The AvoiderSeeker class is the grandchild of the Seeker class as there is an unused class in between, the Avoider class.
The third particle type clearly exhibits the most complex behavior as its steering behavior is subject to two, potentially-contradicting innate forces: one towards a particle, and the other towards another particle. The sought-after/avoided particles are not necessarily the square pink ones, therefore our avoider-seeker particle go after a seeker particle that is in turn moving towards other particles. This results in moments of analysis-paralysis for said avoider-seeker particles that are visible in the above video.
Another distinctive characteristic of an autonomous agent is that it has a limited knowledge of its environment. The particles here achieve that in having an active knowledge of which direction the target is at, but not necessarily where it is located exactly.
Leave a Reply