this could be sped up by grouping together birds that are within vision range and spreading out work to threads by allocating one group per thread