Threejs has some webxr examples but they all seem to assume the user will be using a small FOV headset and use parallel projections. When you view them on a wide FOV headset