Tor GUI Contest


DRAFT IN PROGRESS


Overview

Tor is a decentralized network of computers on the Internet that increases privacy in Web browsing, instant messaging, and other applications. We estimate there are some 50,000 Tor users currently, routing their traffic through about 250 volunteer Tor servers on five continents. However, Tor's current user interface approach --- running as a daemon in the background --- does a poor job of communicating network status and security levels to the user.

The Tor project, affiliated with the Electronic Frontier Foundation, is running a UI contest to develop a vision of how Tor can work in a user's everyday anonymous browsing experience. Some of the challenges include how to make alerts and error conditions visible on screen; how to let the user configure Tor to use or avoid certain routes or nodes; how to learn about the current state of a Tor connection, including which servers it uses; and how to find out whether (and which) applications are using Tor safely.


Goals

Contestants will produce a work of Free Software that will provide a user interface to the Tor system by way of the Tor Controller Protocol.

We are looking for a vision of how Tor can work in a user's everyday anonymous browsing experience.

Entries will:

In addition, they may:

Some examples of useful features include:


Contest Categories

The design contest will proceed in two stages: first sketches and then working code. For each stage, our panel of judges will recognize the best submissions. All qualifying entries will receive an EFF Tor T-shirt (subject to availability). The best sketches and working implementations will be published on the Tor website.

Sketches: the goal of this stage is to produce a mock-up of a functioning interface. This should include design documents describing how the interface should function. If you want, it should also include graphical elements that can be used by programmers.

A qualifying sketch will present an informal specification for a design. That is, it will present with some degree of thoroughness all of the major interfaces that we might expect to encounter, all of the major functionality for the interface, and a reasonable story about how it would be integrated into currently-existing tools (if, indeed, it would be). One example, with more detail than we would require, is the NetBeans UI for JUnit. Note that it walks through multiple interfaces, highlighting the features and functions of the various buttons.

Code: the goal of this stage is to produce a working implementation. You may use any of the sketches, graphics, or ideas from the first stage (with appropriate credit to their authors), or you can make your own.

An acceptable entry will be a package of free software that builds and runs. It can be a stand-alone application, or it can act as an extension or plugin to other broadly-available free software. The entry will demonstrate the points in the Goals section: that is, it will be able to control, display, and maintain awareness as discussed above.

We reserve the right to award other awards as the entries deserve.


How to Submit

Submissions for phase one (sketches) should come as:

Submissions for phase two (code) should come as:


Criteria

Awards will be granted on the basis of (in rough preference order):


Judges

Judging will be led by a panel of N prominent specialists in usability and security (to be announced).


Timeline

Winners will be announced on the webpage and also at the SOUPS 2006 conference. (Here's a suggestion on one approach to academic usability research on Tor.)


Questions and Clarifications

Check back here periodically, and look at the Contest FAQ wiki, for FAQ entries, clarifications, etc.


Technical Notes

Shortly before phase two begins, the Tor developers will release a canonical code version. This is the version that will be used for judging the contest; please ensure that you use this version. Bugfixes to this version will be announced to the contest web site.

The Tor developers will also release test rigs (libraries) in both Java and Python that demonstrate Tor's controller protocol. Code submissions may be able to save a lot of time by using this code as a skeleton. You can check out the development versions of these libraries now.


Legal Notes

By submitting your entry to be considered in the Tor GUI contest, you hereby:

Webmaster - $Id$