$Id$ Route Visualization ------------------- The route visualizer is a C program that runs as a CGI program on each node. It is served via the thttpd program. This program allows users to vizualize the network as it is seen by the HSLS daemon on the host node. Each node is represented as a small circle and each link by a colored link. The line color indicates the quality of the link. Location Data - The visualizer has access to a database that maps node identifiers to latitude and longitude which allows nodes to be placed on a map background image. The visualizer can plot networks with any combination of known location nodes and unknown location nodes. When new nodes are added to the open network their location will not initially be known but if the locations of the nodes neighbors are known the node will be placed in a reasonable relative position to the known nodes. This "reasonable placement" is not sufficiently accurate to deduce the actual location of the node which may be a security risk. In the current revision the node location database is a flat file but in the future the custom CWN DNS system will contain dynamic location data and the vizualizer will use that. Flexible Maps - Designers of a community wireless distribution can include any arbitrary map of the region that the wireless network will cover. Dynamic Layout - Large numbers of nodes of unknown location are "untangled" using a physics model that treats every link as a spring and every node as an electron. This model allows us to quickly format the view of a network into one that makes spacial sense even though we don't know the actual location or even relative locations of the nodes. Imagemap - The visualizer generates an image map that makes it possible for the network map to be interactive. When a user clicks on a given node, meta data for that node could be displayed and the option to view the network from the perspective of that node could be given. Cachability/Abstraction - All image creation is abstracted into a library that will allow images to be pre-generated so they can be served up more quickly when requests come in.