Wednesday, March 26, 2014

Project Virtua - Create the Future

With the very recent announcement that Facebook has bought Oculus VR, I've already seen quite a few people who are absolutely horrified at this.  Minecraft with official Oculus Rift support has been canceled, I received a few messages of people who were worried, and I myself was very concerned after hearing this news.

But then, I thought about what I had read.

Facebook, a company whose CEO talks all the time about a connected world, a company who Microsoft has a large stake in, a company with easily over one billion users, has acquired Oculus VR, a company that wants to bring virtual reality to the masses, a company that has re-ignited the virtual reality future of the 90's, a company that has incredible visions of the future.

Think about what a company like Facebook could do for the Oculus Rift.  They have the money to let them further develop their technology.  They have the users to bring even more awareness to the Oculus Rift (something that my parents had not heard of until this past January).   But there is one key thing that Facebook could potentially bring to the table: Microsoft.  Why does Microsoft matter?  Because they have the Kinect.  The Microsoft Kinect is the last missing piece to the puzzle of virtual reality.  It is the key item to solving a large portion of the needs for Oculus VR, such as the issue of body-tracking, or the getting rid of a controller since you can't see it anyways.  It is an incredibly important part of making sure that virtual reality does not become another gimmicky controller.

There's also another side: Mark Zuckerberg's desire to connect the world.  This is a huge deal, and even those who just want the Oculus Rift for gaming should care.  The Oculus Rift cannot succeed on gaming alone, and yet that's all that people seem to think of with it.  Even I do, and it's a problem, because there are not enough gamers in the world to buy a $300 product and allow a company to make a decent profit.  The Oculus Rift needs everyone, not just gamers, and if Facebook is able to get it to other markets, that's yet another good thing.

That being said, I too am still skeptical.  Facebook does not have a solid track record with doing what is best for a product in my opinion, and I worry about whether they will completely mess this up.  If they don't go to Microsoft for help, and don't properly utilize the potential, the Oculus Rift will end up as a terrible gimmick that's nothing more than a novelty.

Still, I want to try and help make sure that the Oculus Rift stays on track.  What I think would help with this is to start looking towards full virtual reality games and applications, rather than just things that use the Oculus Rift.  By doing this, I believe we can help the Oculus Rift stay on track for what it needs to do, rather than what Facebook may do.  That's why, I am doing a very early release of my recent project: Project Virtua.
Let's create the future
Project Virtua is an open-sourced set of tools for creating virtual reality applications, using a combination of the Oculus Rift and Microsoft Kinect, as well as future releases of newer versions of these devices, and other companies versions too.  Using it, you can create entirely new worlds that users can be physically put into.  Need to swing a sword at a bad guy?  Just swing it then.  Want a better seat to view a sports game from?  Then just scoot a few seats over.  Want to sit at the front of a class?  Just stand up and walk to it.  The possibilities are endless, and now, with Facebook's acquisition of Oculus VR, I have no doubts that Mark Zuckerberg sees similar potential in it.  So where does Project Virtua play in then?  It aims to make developing virtual reality applications simple.  Need to get a user's head rotation?  Just call GetRotation.  Need to warp the display for the lenses?  Just call ComposeFinalImage.  Want to get the position of a person?  Just call GetPosition.  The idea with this is an incredibly simple library for developing anything from games to apps.

I want to stress that this is still a very early release.  There is still a lot of work that needs to be done, especially when it comes to creating a nice system for rendering to the screen.  We are still considering DirectX support, as right now we only support OpenGL.  The plus side to this is that it is partially cross-platform already, so Mac and Linux users can take a look into this as well for certain parts.  This is something I am using as a school project too however, and as a result it will definitely continue to be worked on for the next few months at the least, but again, this is very early on.  Everything from the Kinect support to the website itself is still under heavy construction, so please bear with us while we work on it.

I too want to see virtual reality succeed.  I was born in the early 90's, and grew up with the it right within reach.  I hope this time around we can see it succeed, but this deal that Oculus VR has made with Facebook is very risky.  It can either end as a complete success, or end up becoming a complete failure.  Only time will tell unfortunately.

Wednesday, March 19, 2014

Kinecting Back to Blogging

It's been about two weeks since my last blog post, and so I figure I should make this particular post about what exactly is going on.  Back in December, I applied for the Microsot Kinect for Windows Version 2 alpha.  In February, I found out that I was accepted, and went ahead and got the sensor as a birthday present to myself.  Finally, when my spring break started two weeks ago, I got the chance to sit down and fiddle with the hardware, and I've got to say, I am impressed so far.

So for today's post, I'll be going over how to use the Microsoft Kinect for Windows V2 APIs in C#, and the process of making a simple application.  The code for this will be presented at the end of the article, so if you're just interested in getting the code, just scroll down to the bottom.  There's a bit to this project since we'll be using multiple data streams, but hopefully not too bad.  Before I continue on, I do want to stress that this is preliminary software and/or hardware and APIs are preliminary and subject to change.

Friday, March 14, 2014

Replay for Life 2014

Recently it was announced that the Relay for Life organization would be coming to our campus here, and was doing their yearly round-up of student organizations.  Being as interested in charity as I am, I went ahead and started trying to gather interest in raising money for the event through the the Association for Computer Machinery chapter that I lead at Christopher Newport University.  The decision by a group of us was to create an event called Replay for Life.  If you have ever seen the speed-run charities online, then you know exactly what Replay for Life is, but if you haven't, it's a live-stream of classic video games being played as fast as the person can.  Some amazing things have appeared in these videos, and we are incredibly excited because we have someone doing a Legend of Zelda: Ocarina of Time speed-run using some incredible glitches.  We hope that everyone will join us and donate to our cause, and that you of course enjoy the stream!  It will be Saturday, March 15th, starting at 2:00pm EST.  You can find our Facebook event here and our website is currently www.replayforlife.org.

Our flyer, hand-drawn by a student!