Recently I tried Unity’s NavMesh to implement a prototype of collision avoidance module for our physical therapy balance project.
Rather than using connected points and graphs to search and represent the optimal path, NavMesh(navigation mesh) defines the walkable space by polygons, and objects can walk through the polygons to reach the waypoints.
Currently, in our balance project, the walking avatars in the scenes have no collision detection mechanism, so they can walk into each other or run into the players’ avatar. We always got complains from patients about seeing through the graphics model of the pedestrian avatars when the avatars just came right up and walking through the players. It is unpleasant for a project aiming at a certain level of reality.
In the next version with collision detection and NavMesh, every avatar, no matter the pedestrians or the player, will recognize other avatars as obstacles to avoid, and walkable space will be calculated responsively to accommodate the new positions of all the avatars.
At present, the objects in the prototype are just cylinder and cubes, but they can show the behavior of the avoidance. Here is a short gif for the NavMesh in Unity.