Sunday, October 30, 2011

Progress Report - 10/30/11

I just wanted to give an overview of everything I've done since my last post:


  • I set up a Twitter account
  • I made a web page that gives a small skeletal sample of the aesthetic I'm hoping to go for with the final program
  • I set up a Subversion-based version control solution

In bigger events, I mostly finished with a gut-and-rewrite of the SkeletalViewer into original (or at least mostly original code). The best thing that came from that process is a better understanding of how that program went about its tracking. With that knowledge, I've also re-written my tracking code with the intent to allow for a higher level program-awareness of which hand is active as well as smoothing the transition between active hands.

I've also implemented a rough attempt of an animation smoothing solution for the cursor. What I do is create an array of X and Y values that holds the last 15 of each. Then instead of using the hand's current X/Y position, it uses the average of the arrays. It has, at the very least, allowed a 'still' hand to appear more still. Unfortunately, my means of outputting the array values (stepping through the array in a loop and output each i value) wreaks havoc on the program performance, so I'm unsure if the outputs of all identical values was due to an error in my code or due to the video feeds not being read at the 30 FPS it's supposed to.

Also, with C# being the first strict (or even strict-ish) I've written in, it was interesting to find out how static Arrays are in C# versus PHP, Javascript, or Actionscript.

Tuesday, October 11, 2011

Timeline Creation - 10/11/11

I began my process by sitting down with the skeleton of my project:

  • Kinect interaction through gesture and body tracking
  • Displayed in VR Theater and/or an array of computer monitors (for when the cave is used by another student)
  • Twitter/Facebook data (read-only)
I then came up with milestones to reach those features
  • Rough (but navigable) mockup of the interface (no Twitter data, not necessarily tested/designed for Cave)
  • Functional Prototype (framework of aesthetic design implemented, some Twitter data, designed to be tested in the final arrangement)
  • Final skeleton (finalized aesthetics, Facebook and/or other social media sources, optimized for final arrangement0
I thought about what would be involved for each milestone, and came with rough chunks of time at which it would still be acceptable to be done.
  • Rough - Middle of November
  • Functional Proto - Beginning of Capstone Semester
  • Final Skeleton - Beginning of April
The skeleton was designed to be simple, yet complete enough to be worth showing off. This allows me to have a target that I can compare to and judge how much time I may or may not have to use to add additional features (such as being able to send messages, the twist on displaying other users in the timelines, and being able to experiment further)

The idea is that the functional prototype is ready to test at the beginning of the capstone semester so that I can start a schedule of test one week and refine the next. It's such a simple framework that it could reasonably be modified to fulfill my time needs, whether that means more time to test or refine, or more consecutive time for either. Ideally I would continue this process of refine and test up until April, at which time I would make any and all final touches. I would also be adding (and then testing) features on the fly if I feel I'm in a position to do so.

Overall, I've front-loaded my clearest areas of flexibility to before the capstone semester starts, since my current schedule is more packed than my capstone semester will be and therefore there's greater opportunity for things to fall through the cracks. Also, having flexibility in the R+D stage of production lends me more time to experiment before I have to focus on having a complete product.

Sunday, October 9, 2011

More Progress - 10/09/11



I now have hand tracking independent of the pre-drawn skeleton. I map the 'cursor' to the first hand it can track that is above the hips and on its side of the body. For instance, if the right hand crosses over the center of the body, it stops tracking and will switch tracking to the other hand if it's valid.