OK, big update:
New things working: VRGuiNode, FOV, camera projection, frustrum culling and camera resolution based on OpenVR requirements.
I moved some things out of OpenVRAppState & into VRApplication. I renamed the AppState to OpenVRCamControl (since that is all it is doing now). I plan on hiding the AppState from the developer & managing it from VRApplication for simplicity. Developers will only need to make their Application a VRApplication and set things like VRApplication.setObserver(player). I also want to avoid any problems with changes away from SimpleApplication to BaseApplication, as VRApplication can accommodate that. You can see how simple this can be by the improvements to TestOpenVR.java
No need to create a guiNode or AppState yourself.
@rickard & I had an offline discussion, and he may fork this library because he may want to approach the same problem from a different angle with a different structure. At the very least, we will continue to work together on the tricky bits.
About distortion: it is hard to tell if we are seeing none because we have no Rift hooked up (and are using a "null driver"), or if it because we are doing something wrong in the code. I plan to hook my Rift up as soon as possible to see if any other behavior happens.
I still need to get post processing filters cloned to both views, something that worked previously.
I have an oddity with the GUI when it is placed in a specific spot (which I think is around [0,0,0]). It appears as if the crosshair is somehow being rendered from within the distortion scene (that should only have the two distortion meshes). I checked the main viewport, and it only has the scene attached with the two distortion geometries... so how is the crosshair drawing over them both? Screenshot: