Project 4: Gestural Interfaces

The final project theme continues what we have been thinking about in P2 and P3 – Gestural Interfaces: enabling new applications through sensing technologies. For the rest of the quarter you will iteratively design, prototype, and evaluate a new application that involves gestural input. You are free to choose any application area. Topics of interest might include health/fitness, education, social communication, productivity, musical performance, media management, and commerce. You are strongly encouraged (but not required) to build on ideas you identified in P3.

Several factors are important in thinking about your project:

Activities and Deliverables

The final project is organized into iterative cycles, with feedback in each. We will have a set of major milestones, roughly at one week intervals. You are responsible for keeping a project web page that will be updated with new pages and content for each project milestone.

Week 5 Milestone 1: Team Formation and Prototyping

Form project teams and choose your project problem area. Choose a name for your project and create your initial project web site. Host your website and code using the CS247 organization on GitHub. Contact the staff with all of the GitHub usernames of your group members, and the desired name of your repository, and we'll add you to the organization. Use GitHub features (including wiki pages and issue tracking) to help coordinate your work!

In addition, team members should assume specific roles to help delineate responsibilities. All team members can (and should!) contribute across all activities, but you will find it useful for each member to take the lead on a specific aspect of the project. Here is a recommended breakdown:

  • Project Manager: Organizes meetings, tracks goals, and facilitates coordination among team members. Manages the team website and process documentation, takes and shares meeting notes.
  • Design Lead: Keeps team focused on design process, pushes creative boundaries, leads design of UI and associated assets (icons, graphics, audio, etc).
  • Evaluation Lead: Takes primary responsibility to design user studies, recruit participants, conduct evaluations and analyze data.
  • Development Lead: Writes and manages code, ensures good software engineering practice, and creates (or researches) needed algorithms.
Your team website homepage should include your team name, members and roles, plus a 1 paragraph description of the user need you intend to address.

Perform initial prototyping. As described in class and in the assigned reading, prototypes can take many forms, including sketches, video, interface mockups (including paper prototypes), and technical feasibility tests. Initially your goal should be to shoot for quantity and diversity while using rapid methods – sketches, sticky notes, etc. Next, identify 2-3 approaches that you find the most promising and explore them further. Make quick video prototypes, UI mockups, and perform system feasibility tests. For example, what can you reliably sense with the Kinect or Leap Motion? What issues might arise in terms of latency, clutching, or false positives? Create a new page on your team website describing your prototyping work and link to it from your project homepage.

Meet your external project coach. Each team will be paired up with a project "coach" - a professional designer and/or researcher who can help you think through your project ideas and provide feedback. We will be having an initial kick-off meeting at the CS247 lab: Thur 2/7, 6-8pm at the d.school. Every team is invited to attend; refreshments will be provided.

Your initial homepage should be posted by 1pm on Thur 2/7. Your prototyping page should be added by 1pm on Tue 2/12. Email the URL for your team website on GitHub to cs247@cs by then.

Week 6 Milestone 2: Wizard-of-Oz Testing
Building on your prototyping results, choose 2 interface ideas to evaluate. Select 2-3 representative tasks for each (they can be the same tasks for each interface). Extend your prototypes as needed so that your classmates can experience what it is like to perform those tasks using your envisioned interfaces. Your test-ready prototypes might take the form of UI screen mock-ups and/or paper prototypes.

Come to studio on Thursday 2/14 ready to conduct Wizard-of-Oz testing! You may wish to make basic output from the Kinect or Leap Motion (e.g., tracked joints or fingers) visible to users as is appropriate for the application domain. You do not need to implement gesture controllers – a human "wizard" can watch the input from the sensors, "recognize" the gestures, and respond accordingly. We recommend using this as an opportunity to record data, so that you can later test your gestural controllers using a variety of realistic input performances. In addition to testing in studio, we strongly encourage you to recruit other representative users and test your prototypes with them.

By 5pm on Fri 2/15, add a new page to your group website describing your Wizard-of-Oz testing. Note the tasks you chose to test and why. Describe the data you collected during Wizard-of-Oz testing and discuss what you learned. How do you plan to revise your designs based on the results? Do you have a better sense of which of your prototype interfaces may prove most successful?
Week 7 Milestone 3: Functional Prototype I
Choose your most promising interface idea so far (which may involve a combination of earlier ideas!) and start implementing it. The goal of this milestone is to have a fully functional system amenable to user tests without a "wizard". You will need to prioritize various aspects of the system. For example, you may spend more time ensuring that your gesture controllers work well and less time optimizing the pixel-placement of screen widgets. Again, the goal is to have a system that you can test with representative users. You are free to use any 3rd party library or gesture recognizer you find, so long as you properly cite them in your code and write-up.

In studio on Thur 2/21, come prepared to set up and share your prototype with fellow students and course instructors. By 1pm on Thur 2/21, add a page to your group website describing the feature choices you made (along with your rationale), implementation progress so far, and a prioritized list or remaining implementation and design issues. Note that next week's milestone involves user testing. During this week, you should be planning ahead. Recruit participants. Use your time in studio to pilot test your user study.
Week 8 Milestone 4: User Testing
It's now time to share your work with users. For this milestone, you are responsible for crafting a user study plan and then conducting user research. What are the critical tasks you'd like to test? Which users will you recruit and how will you recruit them? What data do you plan to collect and how will you analyze it? Design your study and conduct user tests with at least 8 representative users.

By 5pm on Fri 3/1, add a page to your website to document your study. Craft a page with five sections:
  • Introduction: Describe your motivation and goals. Note your driving questions and hypotheses.
  • Methods: Describe your study design and tasks. Who did you recruit and how did you recruit them?
  • Results: Describe your data and present the results of data analysis (observations, statistics, charts, etc).
  • Discussion: Synthesize what you learned, document any shortcomings or caveats or your testing.
  • Implications: Describe how you plan to apply the study results in the next iteration of your application.
You must complete the Introduction and Methods sections by 5pm Fri 3/1. Your results, discussion and implications are due on your write-up page by 5pm Fri 3/8.
Week 9 Milestone 5: Functional Prototype II
Based on the results of your user testing, design and develop the next iteration of your gesture input application. Before class on Tue 3/12, add a page to your group website documenting your progress and describing the features of your latest prototype. In studio on Tue 3/12 be prepared to demo your prototype to your classmates and instructors.
Week 10 Milestone 6: Demo and Presentation
Put the last touches on your functional prototype so that it is ready for a live demo. Prepare your final presentation. The final presentation must be no more than 2.5 minutes in length. Video presentations are encouraged. More details regarding the exact format are available here. You must be prepared to share your draft presentation in studio on Thur 3/14. For this milestone you do not need to update your team website.
Final Milestone 7: Final Project Presentations
The final project presentations are your chance to show the world what you created this quarter. We will be inviting guests from both campus and industry to see what you've accomplished. You should prepare a final presentation (not to exceed 2.5 minutes), a poster describing your project, and set up your system to provide live demos. For complete details, please see the final project presentations page. Prior to the final presentation session, you should put the finishing touches on your project website. Add links to your poster, presentation materials, and final source code. The URL for your page will be shared with the world, so think about how your web page design effectively presents your project work!

For more details about the final deliverables, please see this page.

Final Grading Criteria

20%Process - Are you following design processes that are appropriate for your application area?
40%Solution - Does your design work for your intended users? Is this supported by user testing results?
25%Implementation - What is the quality of your implementation? Is it appropriately polished, robust, and reliable for your chosen problem?
15%Presentation - Are your final presentation and demonstration clear, engaging, and effective?


Please feel free to e-mail us at cs247@cs.stanford.edu if you have any questions.