# Boids ¶

The above photograph of Auklet birds in flight show the classic flocking pattern observed when large groups of birds or fish travel together. Flocking is often cited as an example of swarm intelligence and the Boids models created by Craig Reynolds (1986) is one of the most well-known computational model of such behavior. In this model, each bird is represented by an agent in the simulation (called a boid) which follows a set of local rules. By defining how each boid responds to its neighbors, large groups of boids exhibit complex, emergent behaviors.

In this notebook, we will set up a boid simulation and visualize and interact with it using HoloViews. The code used here is a highly condensed version of the boids code in the 'From Python to Numpy' book by Nicolas Rougier that you can find here . This is an excellent resource for learning how to build simulations with NumPy and for learning how exactly the boids code used in this notebook works.

We start by importing HoloViews and NumPy and loading the extension:

```
import holoviews as hv
import numpy as np
hv.extension('bokeh')
```