Jump to content


Verified Members
  • Posts

  • Joined

  • Last visited


3 Neutral

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Dear @maple I suppose that you faced the situation possibly due to the following two reasons. 1: Your computer does not have enough specification to get the data at 120Hz sampling rate. A computer with better specification could enable it to sample at 120Hz. 2. If you look at only the initial samples (i.e. first 30 seconds after you start sampling), you will see lower sampling rate than 120Hz. The following article may be helpful for you to understand these points. https://doi.org/10.3389/fpsyt.2020.572938 Best regards, imarin18
  2. Dear @prajaktakhandve I'm sorry for my late response. I could not get the notification from this thread. I recommend referring to the following research paper: https://doi.org/10.3389/fpsyt.2020.572938. The authors open the source code on GitHub: https://github.com/MotorControlLearning/SaccadeVR-mobile. Best regards, imarin18
  3. Dear @jboss Thank you very much for your response. I think your understanding is correct. We need to remember that Unity playing does not always work along with eye tracking. In your script posted previously, you wrote the code below. This stops only the playing of Unity, not eye tracking. Thus, if you want to stop the eye tracking in parallel, one of the workarounds would be to use UnixTime (i.e. SaccadeEndTime) as a trigger to stop the eye tracking, as designed in the GitHub page: https://github.com/MotorControlLearning/SaccadeVR-mobile. if (Application.isPlaying) { Application.Quit(); } Best regards, imarin18
  4. Dear @jboss The reason why you face the frozen Unity is that the eye tracker is still measureing the eye movements, while the process in void Update () is completed. As long as you continue to record the data of eye movements, Unity playing will not end. The GitHub page says as below. "Please be noted that you will see Unity seem to be frozen if you click the stop button on Unity for a specific case. Unity seems to be frozen in this situation because the sampling of eye tracking is still working on the background. As explained in the following algorithm flow chart, the sampling of eye tracking works independently from Unity. The playing of Unity is stopped automatically when all the saccade tasks are completed. We set the maximum sampling number of eye tracking to 120 Hz * 1800 seconds in line# 175: private const int maxframe_count = 120 * 1800; of C# script: Saccade_measure_rev1.cs. Therefore, if you click the stop button on Unity within maxframe_count time range, Unity seems frozen (actually not because the system still waits for the sampling of eye tracking to finish). On the other hand, if you click the stop button beyond maxframe_count time range, the playing of Unity stops immediately. The maximum number of maxframe_count can be adjusted accordingly." If you adjust the value of private const int maxframe_count on the script according to your preference, I suppose you can avoid the frozen Unity. Best regards, imarin18
  5. Dear @jboss That's great to know you were able to confirm the sampling interval properly after changing the laptop. I suppose that the eye tracking will run at 120Hz, even if you change the FPS since the eye tracking should work independently from Unity fps configuration. Best regards, imarin18
  6. Dear @jboss What measurement parameter did you check for the interval? As posted in another thread, time_stamp parameter recorded by SRanipal SDK does not provide the value properly (HTC also recognises the issue). Otherwise, it would be better for you to try with another laptop that meets the requirements recommended by HTC (https://developer.vive.com/resources/vive-sense/hardware-guide/vive-pro-eye-specs-user-guide/). Best regards, imarin18
  7. Dear @jboss As the paper reported, the longer sampling interval of 16/17 ms would be due to the clock timing of your laptop. Or if you evaluated the sampling interval for the initial 30 seconds, it would be better to check the data over 30 seconds after you start the recording. According to the script provided in the paper, the recording continues in a while loop for a specific number of samples (see the line # 175) regardless of whether you click Play or not. Thus, the editor may have been frozen because the while loop was not completed. Best regards, imarin18
  8. Dear @prajaktakhandve As people have mentioned already, Unity FPS and sampling frequency of eye tracking should be handled and considered separtely. The eye callback function that HTC provides enables you to sample eye data at 120Hz, while FPS changes depending on the VR environment you design. It seems the following article will be of a good help for you. https://www.frontiersin.org/articles/10.3389/fpsyt.2020.572938/full
  9. Dear @Tony PH Lin Thank you very much for your check and the information. It is really helpful. Best regards, imarin18
  10. Dear HTC team, I'm writing to ask you about the specification of HTC VIVE Pro Eye. The field of view is 110 degrees according to your information. Is 110 degrees for both vertical and horizontal or diagonal? Thank you very much for the information you could provide. Best regards, imarin18
  11. Dear @Asish and @shomik As @Corvus mentioned, we need to see Unity FPS and eye sampling seprately. These two parameters: frame rate and sampling frequency of eye tracker are indepedent from each other. For example, while the Unity FPS changes depending on the VR design and the computer specification (e.g. sometimes it is 50FPS and it changes to 100FPS at another time), the sampling frequency of eye tracker is basically consistent at a specific value. If you use the callback fucntion, the sampling frequency should be more or less at around 120Hz, whereas the Unity FPS may fluctuate. Specifically, while Unity Update() is running on one thread, Eye call back funciton is running on another thread. However, as I wrote in another thread ( ), it seems that the current SRanipal SDK does not properly output the time stamp data. Thus, it may be difficult to evaluate the sampling interval or frequency of eye tracker correctly, using the time stamp data. I instead used DateTime.Now.Ticks property on C# and observed that the sampling frequency was more or less at around 120Hz. I hope this helps. Best regards, imarin18
  12. Dear @Daniel_Y Thank you very much for your reply and the explanation. I understood. Best regards, imarin18
  13. Dear @Daniel_Y Thank you very much for your reply and the explanation. I understood. Is my understanding correct for the calculation of angle in degrees from the data of gaze vector, following the trigonometric functions? Best regards, imarin18
  14. Dear @Daniel_Y I think I figured out the calculation of angle in degrees. We simply need to follow the concept of trigonometric functions, don't we? For example, if we want to calculate the angle of our eye movements in X direction, we just need to get the arc tangent from the data in X and Z directions. Could you please explain what 0 and 1 mean in the normalised pupil position in terms of angle in degrees? Best regards, imarin18
  15. Dear @Daniel_Y Thank you very much for your reply and the information. First of all, I made a wrong description in my previous post. I was supposed to write "Data in degrees assuming that the normalised data are between -pi and pi.", not "Data in degrees assuming that the normalised data are between -pi/2 and pi/2." Could you please explain how the device normalises the gaze direction data? For example, what is the situation when the gaze direction on x-axis is 1? According to the technical specification, the trackable field of view of this headset is 110 degrees. I reckon that -1 of the gaze direction data means -55 degrees and 1 means 55 degrees. Is my understanding correct? I check the pupil position as well. Could you please explain the configuration of pupil position as well? Does 0 mean -55 degrees and 1 mean 55 degrees? Thank you very much for the information you could provide. Best regards, imarin18
  • Create New...