Functional Prototype

We developed our application using Microsoft Visual C# and the Microsoft Surface SDK.

The information architecture of our application is given by the following classes:

Phase 1

Our development process was comprised of two phases. During the first, we established medium to high fidelity in the look and feel of our application and medium fidelity in the functionality. Using canned data, we successfully implemented event handlers that populated most of the ScatterViewItems on the surface. The following are descriptions and screenshots of the basic functions of our application during the first development process:
In the native state of our application, shown in Figure 1, there is a “word cloud” in the center of the Surface which displays the themes by which the artworks are sorted in the collection. The Words objects are "scattered" across the screen, inviting users to come over to play with them.
From the word cloud, the user selects a word by touching it, and the associated artwork thumbnails are populated around it, shown in Figure 2. For the purposes of this prototype, we limited each word to four surrounding thumbnails.
When the visitor touches a thumbnail, a panel emerges, shown in Figure 3, prompting the user to respond to the artwork. Depending on the prompt, the user is be invited to "draw" on the painting itself or leave a written response. For a social and collaborative experience, multiple users can respond to the same artwork at once. In order to expedite the testing of our XML I/O functions towards achieving a milestone in functionality, we initially implemented the response feature using a simple TextField at the cost of a GUI-like appearance of our application.
After saving his or her response, the user can view the response or look through the submissions of previous users. In Figure 4, the user chooses to view previous response submissions, and they are populated on the surface. The look and feel of this interaction is improved upon greatly in the Phase 2 of our application development.

Phase 2

We continued to implement and improve the important functions of our application, finessing the look and feel and streamlining the organization of our code.

After writing functional and robust XML parse code, we replaced the canned data with dynamic content from the XML files. From the Artwork.xml file, which contains the tombstone (i.e. metadata) and file information of each piece, we generated the appropriate thumbnails associated with each Word object and the subsequent Panel content. From the Collections.xml file, which contains lists of words and the IDs of artwork associated with them, we generated the appropriate "words" for the native screen and for each surface interaction with the physical tokens.

We replaced the GUI-like design of the response panel with a drawable/editable canvas to allow for a more novel interaction when the user responds to an artwork.

We also implemented the option to search for art by under different categorical queries. To change the way in which the artwork is sorted, the user picks up a physical token and place it on the surface, at which point the word cloud changes to reflect the search query and its results. The tokens represent common groupings of artwork such as "movements," "medium," "place of origin," etc.

We also implemented the following response-related functions: The result is a social and novel experience that enhances museum learning by engaging visitors in ongoing discussions about the art in the collection.

Video of Functional Prototype


In 3 weeks, we completed all of the main functions and objectives for our application, which include: We were able to build a strong base for an application that we think could succeed in improving visitor experience in the Davis Museum in the future.


For the purposes of this application prototype, our system is built to display up to only four thumbnails per Word object. We understand that in a museum setting, it would be necessary to support the display of more thumbnails. Generally speaking, work can be done to increase the scale of our application.

While we can successfully retrieve the most recent responses to an artwork, we hope to support the randomization of responses and a system of cycling through responses.