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:
- User-centered design. Your application should meet a real-world need identified through your observations and experience. You may wish to engage in additional interviews or observation to inform your project's development. Make sure your choice of target users is realistic for the course. Designing for astronauts sounds great, but it may be hard to evaluate your designs if you don't work at NASA. Pick a problem and demographic with which you can meaningfully engage.
- Human context. We want this project to have a plausible story about the people who would use it, the benefit they would get from it, and the way it would fit into their lives. This includes testing your prototypes with users who are representative of your target audience.
- Functional implementation. As a computer science course, one goal of CS247 is to realize your design in a working system. "Crazy" ideas are encouraged, but you must be able to instantiate them in a fully functional prototype. The primary steps are paper and/or video prototyping, implementing an operational software prototype that illustrates and tests some aspect of the larger picture, user testing that prototype, and then refining that prototype into an improved, deployable system.
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:
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:
|
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? |