Pic1's user interface presents the set of images corresponding to the set of points chosen by the search engine, and lets the user select an image. Since we have many images to display, and the images are mostly rectangular, we arrange the images in a grid. How to arrange the pictures in a grid can have ergonomic significance; some desirable goals include:
These goals are not all attainable; in particular, the last two are contradictory. Despite the presence of a grid, organizing the set by one dimension seems a reasonable simplifying assumption; the grid can display the sorted images with a Cantor sequence, keeping similar images close together. The set of points could be so ordered with projection (Sudhanva & Gowda, 1992).
In addition to simple selection, the user interface should let the user specify meta-information about the searching process. The user should be able to tell the system things like: ``No, this isn't looking like what I wanted, back up a bit'' or ``No, this isn't right, give me a wider variety of images'' or ``Yes! Perfect! That's the one! Stop right there!'' Attempts at making machines smart often flounder in teaching the machine how to notice when it is wasting it time; human subjects nearly always are quite aware of this, and the system should be able to use this information. However, the current version of Pic1 does no self-watching.
Quality of the images presented poses a trade-off between showing attractive images and fetching those images quickly; a two-tiered system, storing each image as both a thumbnail and a larger, deeper picture permits some compromise. For example, the previous history of images selected can be presented as thumbnails to allow users to reference or re-select that history without wasting too much space.
The prototype implementation of Pic1 has a user interface permitting simple queries to back up one step, widen the search range, or halt the search declaring a success. No attempt is yet made to arrange the images presented according to similarity. For customizability, the user interface is coded in Tcl/Tk (Ousterhout, 1994) with other modules implemented as Tcl primitives. Due to the event-driven structure, the flow of control is centered in the user interface.