The description of the project below is provisional and is intended to provide students with a broad overview of the goals for Project 2.

Overview

This is an opportunity for students to design and implement an interactive system system based on spatial user data. By spatial data we mean information about the pose of pedestrians on Prospect St (outside of the CEID) in New Haven. The data will be captured by a depth camera and complemented with additional features for the individuals (e.g., predictions of conversational groups).

The interactive system should be designed from a user-centered perspective, aiming to provide value to users based on findings from design research. The project focuses on systems that highlight moral principles, help users understand real-time or historic spatial data, or provide novel opportunities to relate nearby pedestrians. Example systems that fit the theme for this project are visualizations that help combat the spread of COVID (e.g., see this paper by Andy Wilson at Microsoft) and interactive systems that support proxemic interactions (e.g., Proxemic Toolkit).

As part of the project, students need to identify the activities that their proposed design will support and the type of questions that the system would allow users to answer. If there are existing solutions for the chosen activites/questions, it is important to identify what does not work for them and how the proposed design provides better support.

Technical Details

The system is setup such that data gathered from Prospect St is accessible via a websocket connection within Yale’s network. For example, the data includes estimated human poses for the pedestrians visible from the camera (in the form of skeleton keypoints) and group predictions (e.g., based on spatial behavior). Students are expected to implement interfaces that leverage this data using web technologies, Python or Unity.

The computer driving the display runs Ubuntu 18.04 with Python 3.6. The display is shown in a Chrome web browser window. All code will be run in this environment.

Use of the following technologies are allowed as long as the requirements below are met. Linked demo projects can optionally be used as a starting point for your own project.

  • Python 3.6+:

    • A requirements.txt or Pipfile must be included in the root directory of the project. All pip package dependencies must be specified in this file.

    • An executable run.sh file must be included in the root directory of the project. This file should contain the command necessary to run the application. It should not install any package dependencies, which will be done before running this script.

    • A file named web that contains a single line with the URL to open in a browser to view the application must be included in the root directory of the project.

  • Any client-based web framework such as React or Vue.js (Vue Demo):

    • A package.json file must be included in the root directory of the project. This file specifies all npm package dependencies. It should be automatically generated by the framework of your choice. Yarn will be used to install all dependencies specified in this file before running the app.

    • An executable run.sh file must be included in the root directory of the project. This file should contain the command necessary to run the application. It should not install any package dependencies, which will be done before running this script.

    • A file named web that contains a single line with the URL to open in a browser to view the application must be included in the root directory of the project.

  • A Unity Project (Unity Demo):

    • The Unity project must be built for the WebGL target and the resulting build folder must be included along with the source code.

  • A plain HTML/JavaScript/CSS project (Plain HTML Demo):

    • A file named index.html in the root directory of the project. This file is the home page of your application.

We have written a tutorial to make it easier for students to started with the physical setup for this project. This tutorial is not yet complete, but should give students an idea of how they can start their implementation. Note that the instructors will describe the setup and infrastructure in more detail in the second half of the semester (after the midterm).

Project Components

NOTE: For all assignments, a collaboration record must be submitted along with the rest of the assignment by its due date/time. The purpose of the record is to document what each member of the team worked on for each deliverable, as in this template. The absence of this record in Canvas will result in a deduction of 10% of the assignment grade. This record does not count for assignment page limits.

Assignment 2a: Initial Research & Design (5%)

The goal of the first assignment is for students to narrow down the design of their system. The group should choose research methods to better understand the problem space from a user centered perspective (e.g., ethnography, interviews, contextual inquiry, etc). Each student in the group should get data via one of these methods (multiple students may use the same method). Then, based on the insights gained from the research, the students propose an initial design for their system.

The submission for this assignment is a pdf document (with the students’ name and netid at the top). The pdf should include:

  1. A description of each of the research methods used to explore the problem space. The description of each method should be no more than 2-3 lines long.
  2. Evidence of the data collected through each research methods (e.g., photos of notes taken, list of materials gathered as a result of the method, etc.)
  3. A summary of the insights gained from each of the methods. What was learned through the endeavor?
  4. A description of two primary tasks that should be supported by the system that the group will develop.
  5. A description of an initial design idea and how it supports the proposed two tasks.

Assignment 2b: Milestone Report (5%)

The goal of the second assignment is for the students to prototype an initial implementation. Prototyping should focus on designing and implementing key system components to support the chosen tasks from Assignment 2a.

The submission for this assignment is a pdf document (with the students’ name and netid at the top) and a zip file with the code for the initial implementation. The pdf should include:

  1. A description of the system and its key components.
  2. A short discussion of the aspects of the system that were successfully implemented as planned and any challenges that were encountered during the implementation of the prototype components.
  3. A description of the aspects of the system that remain to be implemented.
  4. A plan (e.g., in the form of a schedule) of how the team will complete the prototype system and test one component using a user-centered test method. The plan description should indicate how the remaining tasks are divided among the group members.

The zip file should be self-contained and include any dependencies needed to run the initial implementation. The zip file should also include a README.txt file with an explanation of how to run the project.

Assignment 2c: Video Presentation (5%)

Between the second assignment for Project 2 and this third assignment, the group should finalize the design and implementation of their system.

The submission for this assignment is a 3 minute video. The video should concisely describe:

  1. The goal of the project. What does the design aim to achieve?
  2. A short demo (approximately 1 min long) of the resulting system. Consider using short clips to demonstrate various aspects of the system or speeding up recordings of the system if necessary.
  3. A brief summary of the lessons learned in the design research process and during implementation.

Students have flexibility in terms of how they make their video as long as the final submission is in an mp4 container with H.264 format, which is portable and easily playable. For example, the video can be made in Zoom using presentation slides (e.g., PowerPoint or Keynote), or using any other video editing software that the students are familiar with.

All video presentations will be showcased in class at the end of the semester. The video should be submitted to Canvas in addition to showing it in class. The video submission should not exceed 80MB in size. Tip: HandBrake can be used for free to encode video.

Assignment 2d: Poster and Supplementary Material (15%)

The goal of this assignment is for students to communicate their design and document their final system. At this point, at least one key component of the system that was developed should have been tested upon using a user-centered test method (e.g., usability testing, heuristic evaluation, etc.). One test (with a single user) is sufficient for this final submission as long as the final poster summarizes key findings from this tests (both positive and negative.

The submission is a poster and zip file with final implementation. The poster should be in pdf format, have dimensions 40”x30” (horizontal poster) and a minimum font size of 24 pt. The poster should communicate the design process to a general audience. The goal is to present the work in a visual form to interested parties from across campus and/or industry.

The poster should quickly convey the most important aspects of the work. More specifically, the poster should include:

  1. Project Title
  2. The name of the members of the team
  3. A brief description of the problem
  4. Value proposition & key functionality of the solution
  5. Brief description of the design process and iteration (including final evaluation with a user-centered test method)

The zip file should have a README.txt file with instructions on how to run the system and include any dependencies.