Web Tracker

Web Tracker is a set of systems that let people create a visual history of custom notifications to track personally meaningful changes to web pages. Notifications are assembled as a collage of regions extracted from the fully rendered bitmap representation of the web pages. They are triggered when visual changes between successive visits are detected within regions. To use the system, a person specifies a notification by clipping personally interesting regions from the bitmap representation of a web page and reformatting them into a small collage. The person then specifies regions on the page that will be monitored and compared for visual differences over time. Based on this specification, the system periodically revisits the page in the background on behalf of the user and automatically generations a notification (the collage plus a title and timestamp) when differences are detected. Finally, the person views the generated notifications through a viewer, which displays them as an image history that can be individually browsed or played back as a continuous video stream.

The software is an experimental vs. a production system. We release this software to let people try out the ideas described in the GI paper listed below.

Creators: Saul Greenberg and Michael Boyle


Download and Installation

Download the latest version: WebTracker

Installation instructions Note: At some point, this will be repackaged as an MSI file

  1. Installation directory. Create a folder C:\Program Files\Grouplab\ , copy the zip file into it, and unzip it there. If you put it somewhere else, various dependancies will not work.
  2. Install Grouplab .Networking. This is another package used by our software, version 1.0.2 (although it may appear as 1.1.4322 in the references)
    • Change into the Installs\Networking folder
    • Install it by double-clicking the msi file.
  3. Install the Collabrary. This is a COM package used by our software, version 1.0.28.
    • Change into the Installs\Collabrary folder
    • Install it by double-clicking the msi file.
  4. To recompile the source. You shouldn't have to do this, but if you want to, here is what to do.
    • This was built under Visual Studio 2004
    • Change into Source, and open WebTracker.sln
    • There are three projects in here: Notifications, Recorder, and WebTracker.
    • For each project, check that the references to Collabrary and .Grouplab .Networking are ok. If in doubt, delete them and add them again.
    • Compile. All should build properly except for Recorder, which will generate an error: "CinAwareBinaryFormatter does not exist in... Grouplab.Networking". We are working on fixing this.


  • Version 1.0.1, June 4 2006.
    • Minor fix in the way the recorder works with the serializer
  • Version 1.0.0 , June 3 2006.
    • This is the version described in the paper listed in the Links section.

Recipes and How-To's

  • None

Tutorials and Examples

This Tutorial illustrates a variant of the example described in our GI paper. Note that several systems work together in this application. Make sure each are started as described below. The instructions below have all parts working on a local machine; it is quite easy to make this all work across several machines, but we do not describe how to do that here.

1. Start WebTracker.exe by selecting shortcut in the main folder or by finding it in the WebTracker debug folder. You will get a window that looks something like the one below.

2. Connect and open the Dictionary Monitor. This server collects and distributes data between various processes.

  • Click the Connect button at the top of the WebTracker. The Dictionary Monitor will appear
  • On the Dictionary Monitor, click the Open button, and use the default IP address within it (tcp://localhost:webnotif).
  • You can minimize this Monitor, or leave it open so you can later see how data is added to it.

3. Bring up a web page in the WebTracker. This will be the page you want to track. For test purposes, one with rapidly changing content (such as the Sunshine Ski Hill Live webcam page) is a good choice.

4. Create a custom notification that looks like the one here by the following steps.

  • Select a change region, which will be monitored for changes. The time stamp in the big webcam is a likely candidate. Click Change Region, and drag out a rectangle over it. You can give this region a descriptive name in the right panel, and indicate how much that image should differe before its considered a change.
  • Assemble the notification from image regions. For each step below, click 'Copy Region', drag out that region over the area of interest (which will make it appear in the notification pane in the lower right), and move/resize it as needed. As with the Change Region, you can give this a descriptive label.
    • Today's date by dragging a region over the main Webcam region. Make it larger by resizing it in the notification pane at the bottom right.
    • The Sunshine Logo, by dragging over the logo at the top left of the page. Resize it so if fills the space at the right of the time stamp.
    • The main WebCam image by fitting the image below the caption.
    • The Standish WebCam by resizing it to give a picture in picture effect
  • Set the Notification Properties in the Notification Properties pane, e.g., have it check the web site every 2 minutes (this is pretty often!), and retitle the notification to Sunshine Village Webcams. Keep Record history selected, as this will let you later play these back as a movie.

5. Start the Notification Viewer by selecting shortcut in the main folder or by finding it in the Notification debug folder. This program automatically monitors and displays notifications added to the Dictionary Monitor. You will get an empty window that looks something like the one below.

6. Start notifications. Finally, in the WebTracker, click the Generate button. This will automatically start monitoring the web page, and will generate notifications in the Notificatin Viewer as they appear. In the Notificatons Viewer, you can resize the notification, play back notifications as a video (when there are more than one), or step through notifications one at a time.