Kinect-ed+Classroom

= = Multimedia Kinection

__Team Members__ Julian E. Herwitz - julian.e.herwitz@gmail.com David Klein [email] Sam Atlas [email] Micah Fujiwara mfujiwa2@u.rochester.edu Jason He jason.he@rochester.edu

1. Specification
Concept: For our project in 297, we plan on using the Xbox Kinect by Microsoft to simulate a virtual keyboard of sorts. We want to develop hand gestures for the kinect to recognize and send keyboard input to the active process on the user’s desktop. So for instance, if we make a scrolling motion with our hand, we would want the kinect to send a down arrow command signal into the OS which in turn would scroll the window down if the user has a web browser as the active window they are on in the OS. Another Example: If it were a word processor that was open, the user’s active line cursor should move down from the down arrow input being sent. The way we plan on doing this is using the official C# API for the Kinect to implement “listeners” to detect gestures and when those event handlers are activated then call the proper functions based off of which event handler is called.

Storyboards: Block Diagram: Materials/Modules required: __Hardware__
 * Kinect
 * Computer
 * Probably will need Windows OS

__Software__
 * Kinect API
 * Windows input interface controller
 * Media Player
 * VLC, Windows Media Player, ect.


 * Tasks**
 * Task || People || Deadline || Status ||
 * Architecture || Julian || Monday ||  ||
 * Storyboard || Micah || Monday ||  ||
 * Concept || Jason || Monday ||  ||
 * Architecture || Sam || Monday ||  ||
 * Architecture || David || Monday ||  ||
 * Products**
 * document || initial project plan (all sections) ||
 * " || concept writeup ||
 * " || storyboards ||
 * " || architecture writeup ||
 * " || bill of materials ||

2. Detailed Design
API: define the function headers and data structures shared between modules. Code skeleton: created commented code skeleton. Use "stubs" for bodies of functions that have not been finished. It should be possible to run the skeleton. Prototype modules: implement prototype versions of all modules that are novel or challenging.


 * Tasks**
 * Task || People || Deadline || Status ||
 * Hardware/API || Sam || Monday ||  ||
 * Planning/Code skeleton || Jason, Julian || Monday ||  ||
 * Prototype modules || David || Monday ||  ||
 * Documentation || Micah || Monday ||  ||
 * Products**
 * document || API ||
 * hardware || prototypes of ... ||
 * software || prototypes of ... ||
 * software || code skeleton ||

3. Alpha Release
Create an end-to-end working version of the system. Initiate alpha tests.


 * Tasks**
 * Task || People || Deadline || Status ||
 * Products**
 * document ||  ||
 * hardware || alpha hardware ||
 * software || alpha software ||
 * Products**
 * document ||  ||
 * hardware || alpha hardware ||
 * software || alpha software ||

4. Beta Release
Complete alpha testing: find bugs, missing functionality, and unneeded functionality. Redesign review: given time constraints, determine what will be fixed, added to, or eliminated from the system. Beta release: based on redesign review, implement changes to system in order to create the beta release. Draft the user guide.


 * Tasks**
 * Task || People || Deadline || Status ||
 * Products**
 * document || redesign review writeup ||
 * hardware || beta hardware ||
 * software || beta software ||
 * documentation || draft user guide ||
 * document || redesign review writeup ||
 * hardware || beta hardware ||
 * software || beta software ||
 * documentation || draft user guide ||

5. Production Release
Beta testing: find and fix bugs. Production release: implement final version of system. User guide: revise and publish complete user guide.


 * Tasks**
 * Task || People || Deadline || Status ||
 * Products**
 * document ||  ||
 * hardware || production hardware ||
 * software || production software ||
 * documentation || user guide ||
 * document ||  ||
 * hardware || production hardware ||
 * software || production software ||
 * documentation || user guide ||

6. Customer Evaluation
Give a project presentation that convinces the audience of the project's technical ingenuity, artistic merit, and/or commercial potential.


 * Tasks**
 * Task || People || Deadline || Status ||
 * Products**
 * document || presentation materials ||
 * Products**
 * document || presentation materials ||
 * Products**
 * document || presentation materials ||