Ariel Dolan, a computer programmer in Ramat-Gan, Israel, has added a delightful twist to Reynolds's creation by developing carnivorous boids, dubbed "floys" (pronounced "flow-eez"). Your gateway to Dolan's a-life aviary is at www.aridolan.com/efloys.html, where you will find Java scripts that produce simulations that are truly a treat to watch.
Dolan's floys follow just two rules: stick close to your fellows but not too close, and when you spot an intruder, move toward it
and attack. These instructions also generate a flock. But the assembly benefits individuals in an unexpected way. Avoiding too much togetherness causes
the floys to move in an ensemble that spreads out over a substantial region. They thus patrol airspace that extends far beyond the sensory range of any
one floy. Whenever an outsider approaches, the nearest floy moves toward it. And because its compatriots are all programmed to remain together, the
nearest neighbors follow along, as do their wing men, and so on.
Image Credit--DANIELS & DANIELS
Like feasting piranha, each floy is rewarded for every successful "bite" that it takes. In Dolan's boid-eat-boid world, each morsel delivers one unit of energy from prey to predator. Fast floys have more opportunity to gorge, but they burn up energy rapidly while flying. Slow floys use less energy, but they tend to reach intruders last, and so they collect less sustenance.
Dolan's code generates mutations in the instructions for speed and energy consumption and in other parameters as well, including how closely individuals approach one another, how fast they accelerate and even the probability that they will disobey the rules. Dolan's program also ensures that the floys with the most energy are the most likely to reproduce and pass on their traits. So as the cybergenerations pass, the population becomes ever better adapted to live within its virtual realm.
Armed with Dolan's code and a little imagination, anyone with modest programming skills can perform all kinds of original investigations. I am now trying to understand why high levels of aggression survive in a population when this tendency so often seems self-destructive. My new version sets two bands of floys against each other. A floy still loses energy when it gets bitten by one from the enemy camp. But because warriors don't gain strength when they strike a foe, successful floy fighters in my simulation don't gain energy when they bite an opponent. The result is a melee in which the winner is determined entirely by numbers, energy reserves and the rules of probability.
I plan to modify the code to allow for floys with three distinct levels of inborn hostility. When a floy receives one cybergene for aggression from each parent, it will be especially combative and will fight to the death with all foreigners. A floy that inherits only one gene for aggression will battle until its energy reserves get low and then retreat. And a floy with no genes for aggression will withdraw from all fights.