Current state of Cardboard support?

I’m pretty new the whole Google Cardboard thing, but it seems great and something that can enable VR for those on a budget. I was just wondering what the current general status of JME is with regards to Google Cardboard? I’ve downloaded and run the Star Travel demo from GitHub - nordfalk/gvr-android-jme: JMonkeyEngine integration with Google VR SDK on my gyro-less phone, and it draws things. There seems to be a few different JME GVR repositories, e.g. that one and GitHub - oak1980/gvr-android-sdk-jme: Google VR SDK for Android . Is there a standard codebase to start with? And should it all work (assuming the phone has the right hardware)?

Thanks in advance for any details.

Hi.
https://github.com/nordfalk/gvr-android-jme Is based on the more modern googlevr framework. I think it was mostly complete (at least up to the point of the last push) but had some issues with cameras or something.

I haven’t worked actively on this for quite a while, but my cardboard implementation (https://github.com/neph1/jme-cardboard) seems to be working also. I’ve pushed a few fixes in the last year based on user contributions.

I don’t know much about @oak1980 's implementation.

I suggest you start with GitHub - nordfalk/gvr-android-jme: JMonkeyEngine integration with Google VR SDK and fall back to the cardboard implementation if that doesn’t work as expected.

This thread contains the latest discussions: Google Cardboard support - #48 by Robinn

Thanks for the info. I’m currently fighting with Android Studio problems (I wish we could still use Eclipse for Android stuff) but it looks like I was on the right track. Many thanks to everyone who’s helped JME get to this stage!

You can still use the SDK for Android if you’d like. Atleast for the cardboard integration.

Thanks, I finally got Android Studio to work. For some reason I was getting “duplicate files added to APK” errors, so I had to add lots of “pickFirst ‘lib/armeabi/libopenalsoftjme.so’” lines to build.gradle. Onto my first JME Cardboard project now though. :slight_smile:

When I was looking at this last year, I found that Rickard’s cardboard version in the SDK was the best one to work with. It was working quite well but if I remember correctly it had two major issues.

  1. There was some sort of rendering issue - I can’t remember quite what it was, I’ve got a phone somewhere with it installed so I’ll see if I can find it later when I get home, but I believe models were randomly disappearing and reappearing again.

  2. The head tracking was poor, it was good enough to look around for 30 seconds or so, but then drift became very noticable. I looked into this a bit further at the time, and came to the conclusion that this is a result of the gyroscopes in phones not being accurate enough - they were never designed for VR. It seemed google had tried to remedy this, because in later versions they added a “recenter head tracking” method.

Because Rickard’s version was based on an older version of cardboard (0.6 maybe?), it didn’t have the recentre head tracking method. I tried to update to a later version, but in version 0.7, they changed the way a View was composed so that it became a FrameLayout. They also repackaged everything as .aars. I tried extracting the .jar libraries at the time so that I could update the SDK side, but it was more than I was capable of at the time and I was worried I was doing a stupid thing.

I decided to stop looking at it and that I’d come back to it when I had more of an idea of what to do.

I haven’t really looked at it yet as I’ve been working on other things, but I don’t think it can actually be much more complicated than adding a frame to the Android Manifest xml in the SDK.

If you look at these, then it will give you more of an idea of what’s changed: