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:
- 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 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:
|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:
|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?|