In this assignment, you will implement a basic motion planning framework that you will use to animate groups of agents navigating in complex environments with a variety of obstacles. The simulated agents should avoid collisions with both obstacles and other agents, while still reaching their goals. Additionally, you will explore methods for simulating group behaviors. You will develop several animations that show groups of agents displaying interesting emergent behavior such as flocking, herding or lane formation. You should incorporate a global navigation structure to allow your agents to navigate through complex environment without getting stuck at local minima.