Unreal4Cardboard: Demo applications released

Hey folks,
today I publish three demo applications of the Unreal4Cardboard project.
It took quite some time to move the code into a single plugin but in the end it is working now. In its current state the plugin is completely packaged so that no changes to the used (Unreal) engine are necessary anymore. I also adapted the code for Unreal Engine 4.9 which has been released last week.

To run the demos just download the zip files and extract the content on your pc. In order to install the app on your mobile device just call one of the included batch files. You need ADB working for this install method which comes with the Android SDK (more info about ADB on this page). Alternatively you can copy the included APK onto your mobile device and install it using the Android installer. Please make sure that the permissions for installing external applications are set correctly in the settings menu.

All demos include a menu for all the plugin parameters (IPD, field of view, distortion settings, render settings) which is reachable via Gamepad (‘Start’ button) or Keyboard (M key for menu toggle, P/O for next/previous menu, K/L for parameter decrese/increase). The settings are saved automatically when you exit the application or if you press the ‘Select’ button on the Gamepad while being in the menu. For changing the render resolution you have to ‘minimize’ the application and then return to the application so that the new resolution is used for rendering.

For the development of the project it would be very benefitial if you could give me some feedback after testing, especially the following info

– model decription of the device
– resolution of the display (e.g. 1920×1080) and display size (inches)
– used resolution in the application (native, low, medium, high)
– the min/max/average achieved framerate in the demo (fps counter should be visible)
– model of used cardboard (v1,v2,we are cardboard, etc.)
– the optimized distortion settings for your device using the cardboard
– evaluation of the immersion

My setup for this test has been a Nexus 5 (first version) + Original Google Cardboard (v1) + ipega Bluetooth Gamepad + AKAI MPC headphones. The device enable some nice degree of immersion already.

In the end I easily can include the resulting settings based on the feedback of you guys in form of device/cardboard profiles for best 3d impression and immersion.

Wireframe Demo

The first demo is a simple room with a wire texture on each wall. You can look around and test the immersion using the Google Cardboard. The application should start with the full resolution available on your smartphone.

This demo should help to find the best distortion settings for each device/cardboard configuration. With optimized settings every line of the wireframe should be a straight line so that the room is ‘stable’ for every head orientation. Additionally you should have the impression that the room size is about 5 meters in diameter.

Download Wireframe Demo (all Android devices)

Use this demo for distortion optimization.
Use this demo for distortion optimization.

Shape World Demo

The second demo represents a platform with some basic models. The demo comes within two version, one with stationary lighting the user is using baked lighting using lightmaps (1k resolution per object). The form of lighting can make a difference for rendering speed and quality.

If you checked the achieved framerates when comparing both versions please report them here. I will summarize the performance and hardware requirements in the end so that the information will be benefitial for everybody.

Use this demo for performance comparison between static and stationary lighting.
Use this demo for performance comparison between static and stationary lighting.

Download Unreal4Cardboard Shape Demo (static light, all Android devices)
Download Unreal4Cardboard Shape Demo (stationary light, all Android devices)

VR Rowing Simulator Demo

In the end – as a little goody – I present a small preview of the next demo application being a rowing simulator in VR controlled by motion capture devices.

Download Unreal4Cardboard Rowing Simulator Demo (all Android devices)
Download Unreal4Cardboard Rowing Simulator Demo (ATC devices)

I have created this demo with the goal of high immersion in mind and therefor designed it for mocap usage. This is running on desktop hardware already. However, for the mobile version (Unreal4Cardboard) the rowing movement is animated and controlled by the user by using a gamepad or a keyboard.

The application was basically an idea I have created for an University event of the Technical University of Braunschweig. Thanks for additional work on the in-game character go to Sascha Fricke, and Felix Klose as well as Steve Grogorick who helped me out when time was running up of this one-week project.

For controlling the character you can use any bluetooth gamepad or keyboard.

Face button top -> row using both paddles
Face button left -> row left only (rotates boat to the right)
Face button right -> row right only (rotates boat to the left)
Face button bottom -> stop rowing

Alternatively you can use the shoulder and trigger buttons.

Start button -> Toggle Menu
Select button -> Save settings manually when menu is on
Select button -> Restart Level when menu is off

Again feedback on this application is highly appreciated.

Follow-up Project : Mobile VR Rowing Simulator using MoCap

Stay tuned…..

Thanks for your interest and feedback.
Michael

17 thoughts on “Unreal4Cardboard: Demo applications released

  1. Sorry but i don’t find. I write here my feedback :

    Install and play it s nice, no bug. My smartphone it’s a nexus 5, android 5.1.1

    On “shape world” my smartphone had got 18 fps and 14 fps on “rowing simulator”

    Voilà

    Like

    1. Thanks for the info, Laurent. Interestingly, I am using the same device model, same version and get two fps more @1080p. I deactivated every other app though so the phone isnt doing anything else, checked via adb logcat.

      Like

  2. Wow! So exciting! Can’t wait to try it out. I will be sure to give thorough feedback once I have. Thanks for sharing. You the man.

    Like

    1. Hey Michael. Sorry you haven’t heard back fromme. I have a few large Android devices to test on, just haven’t had the time to install and test. Hopefully should be able to do it over the weekend. Will give full feedback as soon as I have.

      Like

      1. Hi Michael

        I’m having real trouble installing your apks. I have adb working and am able to install levels successfully from unreal 4.9. However, I haven’t been able to install your apks, either with your batch files or by copying the apk to the phone storage and running from there. I have an HTC 1 – Android 4.2.2. I have also enabled unknown sources.

        Any ideas?

        Thanks

        Alan

        Like

      2. Damn and blast!

        It looks like both the devices I want to test with are Android 4.x and both are fully updated. I’m quite new to android, but I wonder is there some way I can force an upgrade to Android 5?

        They are an HTC One M7 and a Samsung Galaxy S3 GT-19300.

        I have also tried installing the test app on the SDK emulator without much success.

        I wonder have you specified Android 5.x in the package settings in Unreal? Is this a requirement for your plugin? I’m guessing publishing an apk with 4.x compatibility wouldn’t work right?

        If you are interested you can see a screenshot of my command line when I try out a batch files with the HTC connected.

        It looks like it might be failing because the SDK is old, but I installed the android works that ships with unreal 4.9. Hmmmmmm, confusing.

        Anyway

        I’m really curious about the operation of the plugin. Do you have some kind of VR camera component that’s specific to Cardboard? I wonder will the plugin have Blueprint support?

        I agree that a general Android/cardboard solution is much more appealing than being tied to GearVR. I also wonder if an apk published for GearVR would work in a plain old google cardboard? Probably not I guess.

        Questions, questions, questions…….

        Thanks for your attention, all your work on this and any advice you can offer.

        Moley

        Like

    1. As it is written in the title, I’ve relased applications. I wanted to give interested people the chance to try out the performance and immersion achieved with the plugin. These applications internally use the Unreal4Cardboard plugin.

      Like

  3. Results

    Hi Michael

    I finally got the apps working on my phone and here are the results:

    Device – HTC One (m7) – Android 5.0.2 – 1020x1080p – 5.1 Inches
    Resolution – I bought an ipega bluetooth controller, but was unfortunately unable to get the thing to connect to my device, so was unable to access the menu or change the resolution

    Rowing – 9.5 fps – 130ms (At times when there was not much movement it went up to about 10)
    Wireframe – 11-12 fps – 85ms
    Static Lighting – 11-12 fps 80ms
    Stationary Lighting – 11-12 fps 85ms
    Cardboard – Andoer Headset
    Distortion – I wasn’t able to access distortion controls as controller wouldn’t connect

    Evaluation of Immersion

    When I first put on the headset the immersion was great. However, the latency was pretty obvious once I moved my head. I started to feel nausea almost instantly. The latency in the response time reminded me of the feeling of being very drunk.

    Using the same device I have watched several stereoscopic / fixed point of view videos and not experienced any nausea. The videos have a standard 25fps framerate, but I guess a video app is able to respond to the accelerometer much quicker.

    I have done some reading on the subject and it seems that Occulus think a refresh rate of 120Hz is required for comfortable viewing. This seems a bit high, but I think for my comfort at least I would need a significant increase in both framerate and response time. Perhaps adjusting resolution settings might help.

    Much of this may be my phone, which is getting a bit old. I’ve record a video that illustrates the latency quite well. You can see it at the link below.

    https://www.dropbox.com/s/t3df8rd4g9w8qb9/InMagicWeTrust.mp4?dl=0

    Thank you so much for sharing your project. I hope this helps.

    Moley

    Like

  4. Hallo
    Ich bin ein Student von UDK Berlin.
    Eigentlich mein Hauptfach ist Musik, aber ich studiere allein UE4 für meine Kunst Arbeit.
    Ich wollte mit SimpleHMD Plugin ein Cardboard APK machen, aber ich habe gar kein Idee von Headtrackingsystem mit dem Sensor des Handy.
    Wann kann mann Ihre Cardboard Plugin benutzen?
    Ich bin voller erwartung!

    Like

    1. Hallo Jeongho! Das Plugin wird in Kürze released. Ich arbeite momentan mit einem Studenten an einer Augmented Reality Anwendung. Sobald diese fertiggestellt ist, werde ich den Code des Plugins veröffentlichen.

      Like

Leave a reply to Laurent Cancel reply