🤿 neon-xr


Year

user-6671c6 02 September, 2026, 09:56:50

Hi! We measured Neon's gaze estimation accuracy in May and again on Sept, and Sept is clearly better even though the eye images look similarly cropped (attached). We suspect this is due to the aperture-aware temporal filtering added in Companion App v2.9.46 (Jul 3). Could you confirm if that's the cause, or if something else in NeonNet changed between May and September?

Chat image Chat image

rob 02 September, 2026, 09:59:23

Hi @user-6671c6 , how did you evaluate it and did you evaluate it in the context of. XR? To clarify, that new filter is only applied to 3D eye stare data, not to gaze data.

user-6671c6 02 September, 2026, 10:11:56

Yes, it's XR — Meta Quest 3 + MRTK3, Neon mounted on the headset. We computed the angular error using the gaze stream (NeonGazeDataProvider → 2D gaze point converted to a 3D ray via camera intrinsics), not eye state. Given that, does this mean the filter likely isn't the cause? Was there any change to the gaze stream / NeonNet itself between May and September?

rob 02 September, 2026, 13:23:22

Correct, the filter would not be the explanation here and there were no changes to NeonNet in the meantime.

May I ask what the targets were? And did you do a mount calibration between May and September?

user-6671c6 03 September, 2026, 00:00:33

No new mount calibration between May and September — same default calibration values both times. Targets: the 41-point grid (Z=1.5/2.0/2.5m) from a modified version of the MRTK3 Template's PL_Calibration scene, computing error between each marker and the mount-calibration-corrected gaze.

rob 03 September, 2026, 14:56:24

Thanks, @user-6671c6 . Then, the only immediate explanation that I can think of is that the participant has performed the task better, since they were now familiar with it. This is not uncommon.

user-6671c6 04 September, 2026, 06:25:25

Thanks, that makes sense — practice effect is a fair explanation. One more thing I noticed: the September eye images look noticeably brighter than the May ones, even though both were recorded in the same NeonXR setup and scene. Do you know what might cause that difference?

rob 04 September, 2026, 07:04:23

The ambient IR light within the VR headset may have simply moved slightly over a threshold that is set within the eye cameras' Auto-Exposure routine. Neither pair of eye images is a problem for Neon. As long as it can see the eyes, it can make a reliable gaze estimate.

user-6671c6 04 September, 2026, 08:10:33

That makes perfect sense. I'm glad to hear the brightness difference is just the Auto-Exposure doing its job and isn't an issue for Neon. I have no further questions. Thanks for all your help troubleshooting this, Rob!

user-841d07 04 September, 2026, 18:54:05

hello, i have a neon xr device connected to a occulus quest headset and working with it in unity. before, i have always hardcoded the ip address from the neon companion app each time it changes in unity, and i was wondering if there's a way to have it automatically update anytime a new ip address appears? thanks!

rob 04 September, 2026, 18:55:11

Hi @user-841d07 , you are using the Neon XR Core Package, correct?

user-841d07 04 September, 2026, 19:36:40

yes

rob 04 September, 2026, 19:38:41

Thanks. In that case, the autoIP setting is enabled in the default config.json. Have you already tried that? Or, do you mean, if the IP address changes while the Unity app is running, then it should automatically discover this new IP?

user-841d07 04 September, 2026, 20:17:45

i want to try and make it so that anytime u run the unity build while the device is connected to the app it can detect and automatically update the ip without doing like manual input

rob 04 September, 2026, 20:33:39

I see. Then, you should only need to enable the autoIP setting in the config.json.

user-a4aa71 19 September, 2026, 08:59:38

Hi Rob, sorry for coming back to this message from a while ago, but I’m working with the Neon in VR again šŸ˜… Is there really no way to get the data from Unity at 200 Hz (at least save it to a file, for example)? Is the only way to start a recording at the same time and then use the data saved on the phone? Thanks a lot, and sorry for the question, but I’d like to better understand how it works.

rob 19 September, 2026, 09:17:26

It is now possible with the latest version of the Neon XR Core Package. Update to the latest version of that package and then stream the data in a separate thread. There is now also a Time Offset Estimator implemented in the Unity package, so you can also follow our Time Sync guide for precise & accurate timing. Let us know if you have any questions while updating your code!

And no need to apologize 😊

user-a4aa71 19 September, 2026, 09:21:14

Could you send me this new link to the package? When was it released? Thank you so much!

rob 19 September, 2026, 10:33:38

The link and instructions remain the same as before. Many of our packages are regularly updated, so whenever embarking on a new project, it would be worthwhile to briefly check the relevant Github repos, or simply download the latest updates.

To update it in your Unity app, simply delete the package from the Package Manager and then install it anew. You will then just need to rebuild and redeploy your app to the headset.

Just take note to update your config.json file to include these new parameters. If you enable useUdp, then that will allow streaming at up to 200 Hz.

End of September archive