@Override
    public boolean initialize() {
        logger.config("Initializing OpenVR system...");

        // Init the native linking to the OpenVR library.

        int result = VR.VR_InitInternal(hmdErrorStore, VR.EVRApplicationType_VRApplication_Scene);

        if(hmdErrorStore.get(0) != VR.EVRInitError_VRInitError_None) {
            logger.severe("OpenVR Initialize Result: " + VR.VR_GetVRInitErrorAsEnglishDescription(hmdErrorStore.get(0)));
            logger.severe("Initializing OpenVR system [FAILED]");
            return false;
        } else {
            logger.config("OpenVR initialized & VR connected.");
            org.lwjgl.openvr.OpenVR.create(result);
            logger.info("Model Number : " + VRSystem.VRSystem_GetStringTrackedDeviceProperty(
                    VR.k_unTrackedDeviceIndex_Hmd, VR.ETrackedDeviceProperty_Prop_ModelNumber_String, hmdErrorStore));
            logger.info("Serial Number: " + VRSystem.VRSystem_GetStringTrackedDeviceProperty(
                    VR.k_unTrackedDeviceIndex_Hmd, VR.ETrackedDeviceProperty_Prop_SerialNumber_String, hmdErrorStore));

            hmdDisplayFrequency = BufferUtils.createIntBuffer(1);
            hmdDisplayFrequency.put(VR.ETrackedDeviceProperty_Prop_DisplayFrequency_Float);

            trackedDevicePose = TrackedDevicePose.create(VR.k_unMaxTrackedDeviceCount);
            hmdTrackedDevicePoses = new TrackedDevicePose[VR.k_unMaxTrackedDeviceCount];
            poseMatrices = new Matrix4f[VR.k_unMaxTrackedDeviceCount];
            for(int i=0;i<poseMatrices.length;i++){
                poseMatrices[i] = new Matrix4f();
                hmdTrackedDevicePoses[i] = trackedDevicePose.get(i);
            }
            hmdDisplayFrequency.get(0);
            TrackedDevicePose.create(VR.k_unMaxTrackedDeviceCount);
            // init controllers for the first time
            vrInput = new LWJGLOpenVRInput(environment);
            vrInput.init();
            vrInput.updateConnectedControllers();

            // init bounds & chaperone info
            LWJGLOpenVRBounds bounds = new LWJGLOpenVRBounds();
//            bounds.init(this);
            environment.setVRBounds(bounds);
            VRCompositor.VRCompositor_SetExplicitTimingMode(VR.EVRCompositorTimingMode_VRCompositorTimingMode_Explicit_ApplicationPerformsPostPresentHandoff);
            logger.info("Initializing OpenVR system [SUCCESS]");
            initSuccess = true;
            return true;
        }
    }
Create a new <a href="https://github.com/ValveSoftware/openvr/wiki/API-Documentation">OpenVR</a> system
attached to the given {@link VREnvironment VR environment}.
@param environment the VR environment to which this API is attached.
jme3-vr/src/main/java/com/jme3/input/vr/lwjgl_openvr/LWJGLOpenVR.java