Original blog posts
Announcing The Maurader's Map
from a blog post in 2007, halfhourhacks 2007-12-marauders-map-of-olin.htmlA friend and I have been planning this for a few months. On a laptop, we can find the signal strengths of wireless access points, and use this information to determine location. We were able to figure out the right WMI query to find signal strengths other than the current connection. We can bring the Maurader's Map from Harry Potter to life.
I finally hit upon an effective way to get the location -- instead of using triangulation, it simply acquires a lot of data. (Triangulation did not work as well, because of the many walls and windows in our dorm.) I remembered that a classmate in an AI class had written one of the best poker-playing bots, not really by adding a lot of logic about poker, but just by simulating thousands of games and recording which choices for a given input were the most successful. In the same vein, my database simply records associations of a set of wireless signals with a name ("AC Room 318") and a point on a map. To look up a position, the server looks for a similar set of values, and returns the closest match. When the program is run, it recieves feedback from users, and every time adds a new association. Over time, the results should get better and better.
A few days ago, I sat down and wrote the code, and then walked across campus to seed the inital data.
I wrote a small C# app that runs the query and prints the results to stdout. I then wrote a Python program to gather this data, taking the average of three runs, and send it to the server. A PHP script forms a vector, thinking of each of the 76 access points as an axis, and looks for nearby vectors in the database. The location of the user, and status, is also stored in this database.
Finally, in a web app you can view locations of everyone who is logged in. I added AJAX functionality so that the map will automatically refresh. Hovering over the icons tells you who and where the person is. (Only if you swear that if you are up to no good).
Update
from a blog post in 2008, halfhourhacks 2008-04-mauraders-map-update.html
Over 1/4th of the students at Olin are on the Maurader's Map!
We improved the location algorithm. It is successfully at room-level precision, which is really cool, and the accuracy is very good. As you can see, we've added the ability to have custom icons. Thanks to Andy's updates, the client runs on Windows, Linux, and Mac now.
And, you can actually use it to find someone. Now we just have to persuade the professors to use it.