Detroit VR

detroit1

I spoke to my friend Rachel about my project and she mentioned that her company makes 3D models of cities all over the world. She asked her boss if it would be possible to let me use some of the models for a VR research class and her boss was enthusiastic about it and said it shouldn’t be a problem.

I set up a deal to get downtown Detroit from his company PLW . This made it it possible to use all of my time for research into the use of dual systems with the Oculus Rift DK2.

Sadly the end of this project turned into a Fly through of downtown Detroit with Leap Motion hands. The Oculus support was dropped during my semester of research. This project had to be put on hold. The following is an example of the research data.

Documentation Blog

20150927_151455

DEVELOPMENT –>

For my independent research study wanted to develop a project using Unity software with the Oculus DK2 and the Emotive headgear. After this proved to be too difficult to develop with I decided to use the Leap Motion (I also looking into a device called the MYO armband) as the secondary device instead of the Emotive. It has recently been developed to attach to the front of the Oculus DK2 and be used in conjunction with it. In the middle of the development progress I spoke with PLW Model Works in Florida who develop 3D models of cities using realistic imaging. I was offered a section of any city I wanted to add to my program. I chose downtown Detroit and after working out an agreement I was given 7 GBs worth of models. After weeks of development I ran into a very large snag with the Oculus DK2 SDK and utilities package for Unity. The census becomes apparent that the Oculus released a broken set of utilities for the most recent Unity 2.3 as well as a runtime that no longer supports Unity. They also dropped support for any Unity version before 2.3 so using older versions did not fix the issue. After also experiencing issues with the Leap SDK I started to suspect that it is actually my OS system. I am running a 64-bit Windows OS system and the Oculus SDK has a hard time running on windows 7. I had to do a lot of work and download another program to run just the demos for the Oculus.

They report to be working on this problem, however not in time for this project to be completed. Instead I was able to integrate the Leap Motion Controller without the Oculus and use my Mac OS X system for development. To expand on this project I will hopefully be able to use the Oculus and Leap together once they update the support for Unity. This project can be used to “visit” Detroit without actually going there. I also want to use the project to build community awareness of Detroit. With more time and supported SDKs this project has large potential. I am hoping to continue development and make something to show the value of using a VR device. I am also wondering about using different VR systems instead of the Oculus because of so many companies running into the same problems I have and deciding to stop building with it.

This brings up a very important aspect to building with devices such as the Oculus as there is not a lot of documentation or help. This causes so much frustration to developers that they stop using the devices and the technology dies without every reaching the full potential. This goes for other devices such as the Kinect or the MYO armband as well.

Emotiv EPOC Headset

The Emotiv EPOC headset(1) is designed with several capacitors that act as an EEG and output several numbers that can be used to control different aspects of a game or program. While there is a few examples of this being used with the Oculus online there is a lot of consensus that it is not worth the effort and trouble(2). One reason being that the Emotive headset has connectivity problems and getting it to work is a shot in the dark(3). I myself experienced this problem while trying to get the headset to connect to my own brainwaves. I believe I have to much hair for a solid connection to be made between the set and my head. Another interesting reason why the Emotive can offer frustration with games is how tiring it can be(4). “Thinking” about walking is very tiring because our body does that subconsciously, causing the “VR” experience to be distorted. After this research I decided to halt development for this project using the Emotive headset.

  1. https://emotiv.com/
  2. https://m.reddit.com/r/oculus/comments/2v7135/could_oculus_be_worn_at_the_same_time_as_emotiv/
  3. https://forums.oculus.com/viewtopic.php?t=8635
  4. http://www.roadtovr.com/topic/mind-control-emotiv-epoc/

MYO Armband

The MYO armband(1) is an arm band that reads the muscles in your arm to perform actions on the computer. I used the armband for several days and actually quite enjoyed the experience. When it is synced correctly it works very well as a device to do small tasks on the computer. One of the drawbacks was how tired my arm muscles would get and the soreness I experienced after using it. Another drawback was that there are not many gestures that it can read causing the usefulness to be low for a video game. This reason proved to be a good reason not to use it for this project because expansion with the project would be hindered.

  1. https://www.myo.com/

Leap Motion Controller

The Leap Motion Controller(1) is a device that uses cameras to detect hand movement to control objects on the computer. This device offers a very large community and many documentation sites to help developers. The developers of the Leap are also very present on the forum boards and seem to work very hard to help developers with their issues. This proved to be a very important detail for why I wanted to use the Leap for this project. Another great aspect was that they have developed integration with the Oculus DK2 rift to make development easier. The Leap can connect to the front of the Oculus with the only drawback being an added wire connected to the device(2).

Development

I downloaded the Leap SDK 2.3.1+31549 and could not get it to run on my 64-Bit Windows 7 machine. Even with similar issues that were solved on the community forums(3) I was unable to fix the issue on my OS. The Leap Controller remained OFF even with calibration working. This also may be an issue with windows 7. When I downloaded the same SDK on my Mac OS Yosemite machine it worked perfectly. I downloaded the Leap Core Assets that work on Unity 5.2+(4). These work perfectly when the prefab HandController is dragged into the scene and the camera is placed directly behind the hands. They are very small and need to be scaled up. As long as an object has a RigidBody applied to it, the hands can interact with the object(5). Once the game was built however the FPS had a very hard time drawing the hands fast enough to give it a smooth appearance.

  1. https://www.leapmotion.com/
  2. https://developer.leapmotion.com/vr-setup
  3. Fixed Leap Problem
  4. https://developer.leapmotion.com/downloads/unity
  5. https://developer.leapmotion.com/getting-started/unity

Oculus DK2 Virtual Reality Headset

The Oculus DK2 VR headset(1) proved to be such a large hassle to deal with that my project can not use the headset at this moment in time. However, it should be able to be integrated into the Unity 5 software as well as the Unreal Engine(2). It explains that Unity 4 is supported but not well and users need to update to Unity 5 soon. The Oculus Utilities to integrate into Unity also come with the Leap Motion Controller Assets. You can also attach the Leap Controller to the front of the Oculus and be able to use both together to give a better controller option for the Oculus than using the keyboard.

 

Development:

In order for the Oculus to be developed with one must download the current SDK (0.8.0 as of now), the current Unity Utilities and the most current Unity software. It is supposed to be easily integrated into Unity 5+. However, the Oculus Developers recently dropped the support for all Unity build under 5.2 and produced an SDK that is full of bugs when dealing with Unity 5.2. This has been such an awful step for them that many companies have stopped developing with Oculus entirely(2). I have even posted a question myself on the Unity forum without any response so far(3). I also found a forum where the Oculus Developers admit to not supporting Unity at this time(4). In fact, I was so confused because the Oculus and Unity Requirement page explains that it should work with Unity 5.2 but after several days of research the page now appears to be 404(5). When I started testing with the Oculus earlier in the semester it worked just fine with Unity 5.1. After I opened my project after the newest Oculus SDK was released it no longer worked without upgrading Unity to 5.2. This fixed the errors I was getting but The headset stopped turing on and being available through Unity even when I built the program. I tried all the different SDKs, Unity Versions and the Utilities with zero success. I did the following table for Oculus SDK 0.6 and Oculus SDK 0.7 with different errors being produced for each SDK.

Oculus Utilities -> 0.1.0 0.1.2.0 0.1.2.3.0
Unity Builds
5.0.0 X X X
5.1.1 X X X
5.2.1 X X X

 

As of May 2015, Oculus dropped all support for OS Mac X and the last known SDK to work is 5.1 with no Unity Utilities to develop while using a Mac (7 & 8).

  1. https://www.oculus.com/en-us/dk2/
  2. https://developer.oculus.com/documentation/game-engines/latest/
  3. http://answers.unity3d.com/questions/1037902/oculus-rift-not-working-with-unity-5.html
  4. http://answers.unity3d.com/questions/1104992/oculus-dk2-unresponsive-for-unity-52-windows.html
  5. https://forums.oculus.com/viewtopic.php?t=26063
  6. https://developer.oculus.com/documentation/game-engines/unity-req/
  7. https://answers.oculus.com/search.html?f=&type=question&redirect=search%2Fsearch&sort=relevance&q=max+os
  8. http://www.macworld.com/article/2922722/no-oculus-rift-for-the-mac-but-your-mac-couldnt-handle-it-anyway.html