School: Belen High
Area of Science: Experimentation
Interim: Problem Definition:
In 2010, Microsoft released the Xbox Kinect. Being Microsoft's alternative to the Nintendo Wii and PlayStation Move, the Kinect provided something new to the world of interactive entertainment. Unlike the Wii and PlayStation Move, which used a more conventional method of motion controls with both controllers possessing an internal gyroscope for reading motion, the Xbox Kinect completely abandoned the use of controllers. Instead of controllers the Kinect used an advanced system for detecting and tracking individual users. While the Xbox Kinect was initially a success, it's glory was short lived as the Kinect's popularity began to decline. One of the main reasons for this is the fact that the Kinect only created for motion controlled gaming, which in the early-mid 2010s was starting to lose its popularity. While gyroscopic motion controllers would eventually re emerge with the popularity of virtual reality, even reviving the PlayStation Move with PlayStation VR. Unfortunately, the Kinect would never become as popular as it once was. This is unfortunate as the Kinect has many potential uses outside of casual gaming that are just waiting to be discovered, some of which include, but not limited to digital arts, video production, medical research and even low budget alternatives of many things.
While our problem has no direct solution, we plan on utilizing the Kinect's unique technology to find and showcase some alternative uses of the Kinect. For example, one thing the Kinect is known for is it's ability to track the human skeleton, this is achieved by the way it tracks individual joints on the body. This fact could be used to create a low budget alternative for head tracking for VR headsets that do not have the ability to track head position and the same can be used for 6 axis motion controllers that are very good at inputting a roll and yaw input but are unable to track its x, y, and, z axis. This is but one of the limitless possibilities that the Kinect brings to the table.
After extensive research, we figured out that there are a few ways to code for the Kinect. We decided to use Processing 3 as our coding language of choice. After obtaining a Kinect sensor and installing the SDK, we found quite a few plugins for Processing that take advantage of the Kinect's unique abilities. As of the time of writing this, we are using the KinectPV2 plugin with Processing and have made a few body tracking in order to get used to programming for this specific plugin. One demo showcases a particle system that was initially created be emitted from the mouse cursor by tracking the X and Y coordinates of the cursor. We modified the code so instead or emitting particles from the mouse cursor, it instead has the particles spawn from the X and Y tracked coordinates of up to 6 user's hands, along with this change to the code, the KinectPV2 plugin allows processing to get a live 1920x1080 30Hz color feed of the Kinect's camera, which lines up with the tracked joints.
Our goal is to create a few programs demonstrating alternative uses of the Kinect. Along with this we also expect to get a better grasp of how to use the features of the Kinect with intent on using it for even greater pursuits, such as alternative motion capture, VR implementation, and eventually using multiple Kinects for real time 3d reproduction of a user or object among other theoretical ideas. While these plans are beyond our group's current ability, we plan on using the knowledge gained by this project and later later projects to get closer to this goal.
Sponsoring Teacher: Jerry Esquivel
Mail the entire Team