public boolean initialize(){
        logger.config("Initializing VR environment.");

        initialized = false;

        // we are going to use OpenVR now, not the Oculus Rift
        // OpenVR does support the Rift
        String OS     = System.getProperty("os.name", "generic").toLowerCase(Locale.ENGLISH);
        vrSupportedOS = System.getProperty("sun.arch.data.model").equalsIgnoreCase("64"); //64-bit only
        compositorOS  = OS.contains("indows") || OS.contains("nux");

        if (OS.contains("nux") && vrBinding != VRConstants.SETTING_VRAPI_OPENVR_LWJGL_VALUE){
            logger.severe("Only LWJGL VR backend is currently (partially) supported on Linux.");
            vrSupportedOS = false;
        }

        if( vrSupportedOS) {
            if( vrBinding == VRConstants.SETTING_VRAPI_OPENVR_VALUE ) {
                guiManager   = new VRGuiManager(this);
                mouseManager = new OpenVRMouseManager(this);

                hardware = new OpenVR(this);
                initialized = true;
                logger.config("Creating OpenVR wrapper [SUCCESS]");
            } else if (vrBinding == VRConstants.SETTING_VRAPI_OCULUSVR_VALUE) {
                guiManager   = new VRGuiManager(this);
                mouseManager = new OculusMouseManager(this);

                hardware = new OculusVR(this);
                initialized = true;
                logger.config("Creating Oculus Rift wrapper [SUCCESS]");
            } else if (vrBinding == VRConstants.SETTING_VRAPI_OPENVR_LWJGL_VALUE) {
                guiManager   = new VRGuiManager(this);
                mouseManager = new LWJGLOpenVRMouseManager(this);

                hardware = new LWJGLOpenVR(this);
                initialized = true;
                logger.config("Creating OpenVR/LWJGL wrapper [SUCCESS]");
            } else {
                logger.config("Cannot create VR binding: "+vrBinding+" [FAILED]");
                logger.log(Level.SEVERE, "Cannot initialize VR environment [FAILED]");
            }

            if( hardware.initialize() ) {
                initialized &= true;
                logger.config("VR native wrapper initialized [SUCCESS]");
            } else {
                initialized &= false;
                logger.warning("VR native wrapper initialized [FAILED]");
                logger.log(Level.SEVERE, "Cannot initialize VR environment [FAILED]");
            }
        } else {
            logger.log(Level.SEVERE, "System does not support VR capabilities.");
            logger.log(Level.SEVERE, "Cannot initialize VR environment [FAILED]");
        }

        return initialized;
    }
Initialize this VR environment. This method enable the system bindings and configure all the VR system modules.
A call to this method has to be made before any use of VR capabilities.
@return <code>true</code> if the VR environment is successfully initialized and <code>false</code> otherwise.
jme3-vr/src/main/java/com/jme3/app/VREnvironment.java