I implemented it for the path finding of zombies in my game. However, it was a little overkill for what were supposed to be brain dead zombies so I have since gone with something simpler and less optimal.
An analogy with vision is definitely appropriate. From each node in the path you you push forward to the visible neighbor nodes. The efficiency of the algorithm comes from exploring the space polygon to polygon.
From memory Plato's ideal society was pretty wack. A "great lie" to wow citizens into respecting the ruling class. Taking children from their parents, forbiding knowledge of your biological family to avoid nepotism. Banning music and theatre so people don't get too excited about alternatives.
Trying to figure out a way to render the support functions to assist with debugging my implementation. At the moment I just sample the function in various directions around a unit sphere and try build a mesh from that. Too patchy.