Technical Development
We used Microsoft Surface SDK 2.0 and a touch input simulator to write and test our program initially, which allowed us to simulate running on a Microsoft Surface Sur40 tabletop. Once our program was more developed, we were able to test on the physical surface tabletop itself. Our front-end code is written in XAML, and our back-end is in C#.

Initial Set Up
New Profile screen:
Stores the new user’s name, avatar, and list of allergens as a new Person object, and adds their information to the following screen
Takes user input of name string, avatar image source, and sources of selected allergen images. Stores the name and icon in an instance of a Person class. Each person has an array of the 6 major allergens that are initially set to false. Each of those allergens also has a severity property that is initially set to false. If the user taps an allergen once, the border turns orange, and the allergen’s “isSelected” property is updated to True. If it is tapped again, the border changes to red, and the allergen’s “isSevere” property is updated to True as well. If it is tapped a third time, the border disappears and the allergen’s selected and severity properties are updated to False.
Once the user presses the “Save Profile” button, the new Person is initialized, and their avatar and name are added to the screen showing all of the existing profiles and groups.

New Group screen:
Stores any combination of existing users in a new Group object, which also includes a name and an avatar.

Who are you cooking for? screen:
Here the user chooses which pre-existing group they want to cook for, or may choose to create a new user, or a new group before they begin cooking.

Cooking Interaction
Once the user chooses to “Start Cooking,” the information about the group being cooked for is accessed and incorporated into the cooking interactions
The ambient color of the cooking surface’s background communicates the state of contamination to the user. Blue = Clean and safe, Orange = contaminated, Red = contaminated with a severely dangerous allergen.

The TagVisualizer surface control is used to recognize and respond to fiducial tags on physical objects placed on the surface. We hard coded in the tag numbers to match specific allergens (eg. A tag with value “1” corresponds to a gluten allergen). Event handlers in the C# file respond to the tags differently depending on whether the current group has that allergy present or not. If a “1” tag is placed, and an individual in the group has a gluten allergy, the background will update to the yellow warning color. If an individual has a severe gluten allergy, then the background will update to the severe red warning color. The background will retain the color of the most severe allergen that has been placed on it, until it is cleaned and reset.

Allergen stream (label)
In the same event handlers that listen for specific tag values and change the background color, there is also code to update a label in the top right-hand corner of the surface. This provides more detailed information to communicate to the user exactly which allergens have been used on the surface.

Side bar
Contains icons that, when pressed, navigate to different screens.

History: Each time an allergen tag (if is present in the current group) is placed on the surface, the application will access the current date and time using C#’s DateTime structure and record the presence of the allergen on the surface at that time.

Reset: Once a user physically cleans the surface, she can press the Reset icon, which changes the surface background back to blue, erases all the allergen warnings in the label, and displays a message instead telling the user that “The Surface is clean.” Pressing this icon also adds a new entry in the History screen with the current time and the message “Surface Cleaned.”

Cooking for: This button takes the user back to the screen displaying all users and groups, and allows her to choose a different group to cook for, or to create new profiles. Choosing a different group updates the icon in the sidebar to that of the new group, and updates the allergens that the surface is currently aware of.

Allergens: Displays the icons of all the allergens that the surface is currently aware of (those relevant to anyone in the current group) in a horizontal StackPanel. If the allergen is severe, the icon will be labeled **Severe**.




  • Provides immediate feedback
  • Integrated into cooking process– no extra cost after set-up
  • Customizable for individual family needs
  • Minor set-up cost promotes consistent and compliant use
  • Promotes awareness of cooking environment rather than foods that have already been cooked
  • The process takes place before the meal: don’t have to check things during, can just enjoy eating and being together
  • Helps you remember what you’ve used if you’re in a rush
  • Keeps track of past surface contaminants


  • Uses fiducial markers that must be applied instead of instantly recognizing existing information on packaging (ex. barcode recognition, reading and processing ingredient list)
  • No current way of notifying people who aren’t directly in contact with the surface what allergens are being used and when (ex. text message alerts)
  • Requires the user to manually change who they are cooking for through the interface, no instant recognition (ex. through taping an RFID identification card)

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s