How can I get the current left and right eye position on Vision Pro?

In my Vision Pro app there is a shader graph that implements a “portal” effect where distant 3d content is clipped by a window boundary. I am writing this from scratch myself for good reasons. To make this work I need a low latency and accurate current position for the left and right eye.

Using a TrackedPoseDriver to track the “leftEyePosition” and “rightEyePosition” for “PolySpatial XR HMD” seems like the correct answer — but the position never changes.

Using the “centerEyePosition” for “XR HMD” does receive updates, but the relative offsets of the left and right eye from the center of the HMD have to be guessed by me and might vary between users. Also, the latency seems a bit higher than the actual rendered viewpoint when I run my app on device.

Note: I am not looking for gaze detection info (the object the user is looking at). I am aware that such info is unavailable for privacy reasons.

My versions are:
Unity 2022.3.21f1
Polyspatial 1.1.6
XR Core Utilities 2.4.0-exp.3
XR Legacy Input Helpers 2.1.10
XR Interaction Toolkit 2.5.3

Is this a known bug? Should I be using a different api?

Thanks,
Dan

Unfortunately, I’m not aware of any way to retrieve the IPD from the device/APIs at this time. I believe most similar applications simply use an estimated average IPD.

Thanks for the quick response!

In addition to the unknown IPD, it also appears that “centerEyePosition” for “XR HMD” is vertically high by about 3cm. Is that a known bug in Polyspatial? (It’d be nice to have just one fudge factor instead of two).

And is it expected that the “XR HMD > centerEyePosition” binding path does work, but the “Polyspatial XR HMD > centerEyePosition” is non-functional?

Thanks,
Dan