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 leverages the Kinect sensor. You are free to choose any application area except for gaming. Topics of interest might include health/fitness, education, social communication, productivity, musical performance, media management, and commerce.

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 4 Milestone 1: Team Formation and Application Area
Form project teams and choose your project problem area (but do not pre-suppose design solutions!). Choose a name for your project and create your initial project web site. You are free to use any common hosting solutions such as Wordpress, GitHub, etc. We encourage you to form a team GitHub repository (or similar project and source code management system) to help coordinate your work. In addition, team members should assume specific roles to help delineate responsibilities. Any team member can pitch in on an activity, but you will find it useful for each member to take the lead on a specific aspect of the project. Here is one possible breakdown:
  • Coordinator: Organizes meetings, tracks goals, and facilitates coordination among team members.
  • Recorder: Manages the team website and process documentation, takes and shares meeting notes, assists with evaluation.
  • Design Lead: Keeps team focused on design process, pushes creative boundaries, leads design of UI and associated assets.
  • Evaluation Lead: Takes primary responsibility to design user studies, recruit participants, and conduct evaluations.
  • Development Lead: Writes and manages code, ensures good software engineering practice, and creates (or researches) needed algorithms.
Your team website should include your team name, members, roles, and a 1-2 paragraph description of the problem area and user need you intend to address. Email the URL for your team website to cs247@cs by 2pm, Fri 2/3.
Week 5 Milestone 2: 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. What can you reliably sense with the Kinect? 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. The page should be live by 2pm, Fri 2/10.
Week 6 Milestone 3: 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). Flesh out your prototypes further 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 Wednesday ready to conduct Wizard-of-Oz testing! You may wish to make basic output from the Kinect (e.g., tracked skeleton or specific joints) visible to users as is appropriate for the application domain. You do not need to implement gesture controllers – a "wizard" can watch the input from the Kinect, "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 2pm on Fri 2/17, add a 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 4: Functional Prototype I
Choose your most promising interface idea so far (which may involve a combination of earlier ideas!) and implement 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 Wed 2/22, come prepared to set up and share your prototype with fellow students and course instructors. By 2pm on Fri 2/24, 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 5: User Testing Results
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 6 representative users.

By 2pm on Fri 3/2, 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 2pm Fri 3/2. Your results, discussion and implications are due on your write-up page by 2pm Fri 3/9.
Week 9 Milestone 6: Functional Prototype II
Based on the results of your user testing, design and develop the next iteration of your Kinect-based application. Before class on Mon 3/12, add a page to your group website documenting your progress and describing the features of your latest prototype. In studio on Mon 3/12 be prepared to demo your prototype to your class mates and instructors.
Week 10 Milestone 7: 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 fine and are encouraged. More details regarding the exact format are available here. You must be prepared to share your draft presentation in studio on Wed 3/14. For this milestone you do not need to update your team website.
Final Milestone 8: 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.