@marc Hello, I don't quite understand the meaning of the following settings. What is the appropriate value? thank you. Maximum Dispersion; Minimum Duration; Maximum Duration
@user-4bc389 Are you using this with Pupil Invisible recordings? Those settings are for a dispersion-based fixation filter that we use for Pupil Core. It is not yet compatible with Pupil Invisible. We are actively working on providing fixation detection for Pupil Invisible, but do not have a release date just yet.
@nmt I see. I'm using pupil invisible recordings to analyze in player and see this setting, so I'm a little confused. Thank you for your reminding
Hey, we have received similar feedback in the past. Starting with version v3.2, Pupil Player will only enable plugins that are suitable for the active recording type.
You can download the latest software release here https://github.com/pupil-labs/pupil/releases/latest
What version of Player do you have installed?
@nmt Pupil Player v2.6.19
@papr thank you
Hello! how can I access the IMU+Accelerometer data from a recording made on Invisible?
Hi @user-5543ca! You have a couple of options:
1) The easiest: In our upcoming cloud release next week it will become possible to download IMU data in CSV format from cloud. You could wait for that.
2) You could read the raw binary data: The IMU data is stored in the extimu ps<part number>.raw
files. The according timestamps are in the .time
files of similar name. See the following gist on how to open those files in Python:
https://gist.github.com/marc-tonsen/d230301c6043c4f020afeed2cc1f51fe
3) Use a custom plugin for Pupil Player: This plugin visualizes IMU data in Player's timeline and adds the IMU data to the export (in CSV format): https://gist.github.com/N-M-T/ec8071bd211db287f4879e0b48874505
Thanks a lot, Marc! Highly appreciate your quick response.
Your welcome! 👍 Let me know if you have further questions!
I would like to go with option "3) Use a custom plugin for Pupil Player: This plugin visualizes IMU data in Player's timeline and adds the IMU data to the export (in CSV format):"
Could you tell me how I can add the plugin to Player? (I'm on windows now)
Thanks!
Hi Pupil team! We would like to use the Invisible glasses for another type of task based on a study by Kaseci et al. (2014): https://tvst.arvojournals.org/article.aspx?articleid=2120946. There, subjects had to walk through a supermarket aisle and gather marked objects on both sides of the aisle. We'd like to do a similar task, but in a library (easier to access currently) and with subjects wearing the Insivible. We are primarily interested in the left-right exploration. I have 2 questions on this: 1. Would it be possible to do any type of surface tracking and/or head position tracking with this setup? 2. If gaze data without surface tracking is all we can get from this, how could we infer overall left-right exploration from it, because if I understand right each gaze point will refer to gaze position on the scene image at a specific time (i.e. in a specific frame)? Your input would be much appreciated!
Hi @user-16e6e3! Your are correct, the gaze data is initially available only in scene camera coordinates and mapping/aggregating this data on a real-world object (e.g. a shelf) is a separate step in processing. There are different options for you on how to do this:
1) Marker Mapper in Pupil Cloud (or Surface Tracker in Pupil Player): Using this enrichment you can track surfaces in the scene video and automatically map gaze data onto the surface. In your case you could track the front surface of the relevant shelves and map gaze data onto them, which would give you gaze data in "shelf coordinates". This enrichment does however require you to place markers on the shelves that facilitate the tracking, which is a problem for some applications.
2) Reference Image Mapper in Pupil Cloud: This is a new feature we will release this week. It is similar to the Marker Mapper, but it does not require Markers. Instead, you would need to take a picture of the shelf and the enrichment would automatically map gaze data onto this image. This yields gaze data in coordinates of the reference image. This would require you to get the entire shelf on a single image or you'd have to take multiple images.
3) Head Pose Tracker in Pupil Player: This plugin is also based on markers. It is tracking the head-pose in 3D, but it does not directly tell you how gaze falls onto objects in this 3D world. This would only be interesting for you if you want to also track how subjects are moving through the 3D space and maybe how they switch between different shelves. It is not easy to map gaze onto individual shelves using this.
Thanks @marc ! Looking forward to the Reference Image Mapper 🙂
Released! Check out announce for more details 😸
great stuff! how do we activate this? it does not show in my account
@user-94f03a can you try a hard refresh (cmd + shift + r)? You should be able to see new enrichments when you click "new enrichment"
thanks @wrp it works now
@marc I dragged the log file into the player, but the fixation detector and blink detector did not appear in the plug-in management. This is why, the player version is 3.2.20,thank you.
Hi guys, I have a question regarding the newly released reference image mapper. I was trying to figure out how it works and recorded 3 objects separately, a small shelf, a closet as well as a paused TV screen. I did the whole procedure as noted on Cloud, recorded the object from various angels without wearing the glasses for a duration of almost 1 minute and at the second step uploaded a .jpg file from the object. Unfortunately, none of the enrichments could be computed and I received an error mentioning please call Pupil lab. I would be thankful if you let me know what the source of problem could be? Thanks a lot!
Hi @user-17da3a! Your approach sounds fine and the error message probably hints more towards an internal error. I'll check with our engineering team and get back to you when I know more!
Hey @user-17da3a! Did I understand you correctly that the error message you get is the one that asks you to contact [email removed] for help? If so, then the error you see was due to a lack of support for reference images that feature an alpha channel (i.e. PNG files can include an "alpha channel", which contains information on transparency in the image). This support has in the mean time been added. Could you try recreating the enrichments you made and compute them again?
Hi @marc! Thanks, I just tried it again. I still receive the error to contact Pupil labs as you can see attached. But the point is, after some time, I see another error on same enrichment says please use another image or recording.
@user-17da3a thanks for trying again! In that case, this would mean that the algorithm could not successfully build a model based on your scanning video and reference image. Could you maybe share the reference images you have used with me in a DM, so I can get an idea of how the scene looked like?
Hi @marc When I analyzed the data recorded by invisible on the cloud platform, I found that the exported data has no fixation time. When will this function go online? After all, this data is very important, thank you
Hi @user-4bc389! We are actively working on a fixation detector for Pupil Invisible and are amking progress on that, but I can not give you a precise release date for that yet. It will be more than 2 months from now.
Hello everyone, is it possible to use the invisible glasses in a unity mobile application. ? I don't intend to particularly use AR features but rather connect them to a unity android app and receive captured images.
Hi @user-b40ac0! All the data Pupil Invisible generates (including video and gaze data) can be accessed in real-time from the local network. Thus, you Unity application could receive that data if the respective host is on the same wifi as the Companion device. See the documentation here for details: https://docs.pupil-labs.com/developer/invisible/#network-api
Hi i have a problem with putting the video into the pupil player. After i filmed it and download it from the cloud and put it into the pupil player i get an error.
Hi, could you let us know the exact error?
but on the phone it is a good video so it seems to be a problem in my computer
Do I understand it correctly, that the issue is that the scene video is not showing?
yes it is just a grey screen
And is the video being played back correctly in cloud?
yes there is no problem there
Can you delete the folder, unzip the downloaded file again, and share a screenshot of the folder content with us (before opening it in Pupil Player)
ok, perfect, so the download includes the scene video. 👍 Could you now open the recording folder in Player and make another screenshot of the folder content once the main Player window shows?
now it dont open it
The first time, do you get an explicit error or does just nothing happen? Do you stop Pupil ~~~Capture~~ Player and restart it again?
the second time it does
however it is the grey screen again
i use pupil player, it doesnt give an error just shut it down
By shut down, do you mean that all windows close, including the terminal-like window?
Or does just the drop-recording-here window close?
it shut down the pupil player and the black sreen with all the error information
The issue is, that the recording is only processed partially. You can see in the second screenshot that some videos where processed, e.g. the eye videos; but the scene video is untouched. In the second run, Player assumes the recording to be processed correctly but cannot find the scene video which is why it shows the gray background instead.
To solve this issue, we need to find out what causes the error during processing.
Does the black screen close, too?
and if i open a old video it still works
yes the black screen does shut down also, both screens
ok, great. In this case, could you please perform these steps:
1. Delete the folder
2. Unzip the original download file again
3. Open it in Player; wait for all windows to close
4. Do not start Player again
5. In the File Explorer, go to Home directory -> pupil_capture_settings
(You can also search for the pupil_capture_settings
folder)
6. Share the included player.log
file with us. It contains the same information as the black screen did before closing.
But that is only the first time the second time i open it is just a grey screen
ok, perfect. As you can see, there is a permission error while the software attempts to rename the scene video file. Can you confirm that you did not open the scene video in a program like Media Player before opening the extracted recording?
i can confirm that
only checked it in the cloud and on the phone
@user-82e5bd Could you share the downloaded zip file with [email removed] such that we can try to reproduce the issue? In the mean time, could you try extracting the recording to a different folder, e.g. your download folder, and opening the recording from there?
still doesnt work
of course
i will send the two files that gave a problem
it will be a wetransfer message
could it be the case that it is the problem that i use another pupil invisible
No, my current theory is that another program is accessing the file, e.g. a anti-virus software, which causes the permission error when attempting to rename it.
because the other video`s that i made were from another gaze tracker. It is still uploading the email
i send the file
I was able to open the recording without issue. I fear this issue is related to your local computer setup. 😕 This makes it very difficult for me to tell what causes it. As mentioned above, an other software like an ani-virus software scanning the file might be at fault.
shut down my avast works
so thanks a lot!!!
Since invisible is connected with a usb to the mobile device, could I somehow collect the captured images without wifi connection ?
Another app that runs on the same Companion phone could still access all the data via localhost
So that would be the same thing just through localhost rather than a wifi
You are looking for access in real-time, right?
not exactly , also loading captured images on demand will work for me. What I am trying to achieve is to connect the glasses with an android app (made with unity) and have the user, capture images (by interacting with the mobile app) and then have the app load that image in order to run some computer vision tasks.
I see! The two possible ways of accessing the data are
1) in real-time via the network API as mentioned above
2) post-hoc through recordings. Recordings are saved to the Android file system and can be accessed from other apps. (The recommended workflow is to export the recordings to an export folder which requires UI interaction in the Companion app though). Recordings need to have finished completely to be accessible in this way.
Alright thanks for the response and clarifications. Just one last question concerning the first approach. In order for the android app to collect the real-time recordings it needs to be connected to the same local host as the glasses. If that is the case, then the android phone's wifi will not participate in the communication process, right ?. In other words, I would be able to connect my phone's wifi to available routers for www access.
Yes, that should be correct. But we have never tested it explicitly.
Hi there, well now i have a new problem, every time i want to export a video the pupil players crashis
Could you please share the player.log file again, after reproducing the crash?
Thanks, this is a permission error again (i.e. it is specific to your setup). Did you turn on the anti-virus back on?
Wow problem solved
I am very sorry, that there seem to be so many compatibilities issues between your anti-virus and the Pupil Core software. Our software should definitively be more resilient against permission errors. Nonetheless, it looks like even if the software did not crash, the export would not be working as expected. Usually, anti-virus software has the possibility to mark other software as trust-worthy. Maybe this is possible for your software as well. If this is the case, I recommend configuring Pupil Player as trust-worthy to avoid any future incompatibilities.
Hi guys! I have a question regarding surface definition in Pupil Player. If I keep the width and height of the surface on default (1.0*1.0), does that mean the surface is quadratic? because our surface should be representation of a rectangular plain. Thanks!
Hey @user-17da3a! Independent of the size you set there you will always also get mapped gaze in normalized coordinates where the bottom left corner of the surface is (0,0)
and the top right one is (1,1)
. You can always use those normalized coordinates and scale them to the unit you want to use no matter what the aspect ratio of your surface is. Setting the height and width in Player is a shortcut to do that as the scaled output will be available additionally. Besides that, the surface size is only used for calculating the binning of the heatmap, where the aspect ratio is used to ensure square bins.
Is it possible to use the PupilInvisible via a created WLAN Hotspot? I created one from my computer, the mobile device is connected, but die PupilInvisible is not recognized. Is it necessary to use a router?
This should be working. We have run a similar setup in the past. Could some sort of anti-virus software on the computer potentially be blocking the communication?
I guess that out WLAN and LAN networks are "divided", so they are running on different subnetworks...this might cause the problem. I will check this, thanks for your answer
Hi, firstly hope everyone is safe and well? As our research is predominately in medical education and medical technology as you can imagine we haven’t been able to get access since the start of the pandemic but this now staring to change. Therefore we are behind the developments as regarding updates etc for Invisible and are now in the process of catching up. At the beginning of last year there was a messaging on here saying not to update the Android operating system of the Invisible mobile phone as this could affect the operation of Invisible software is this still the case? Also is there any other issues we should know about before updating the Invisible software? Thanks Gary
Hi @user-057596! We are all doing pretty well, hope you do too! I am glad to hear that things are starting to pick up again in your domain! Regarding your questions, there are no known issues in the current version of the Companion app and we do recommend updating to the newest app version for the highest stability.
Regarding the Android version it depends on the companion phone you are using. The following combinations are supported: OnePlus 6: Android 8 and 9 OnePlus 8: Android 11
Android 10 contains a USB bug which prevents the app from connecting to the cameras and is thus not compatible.
Thanks Marc glad hear your doing well.
Hi, a quick question for the Pupil team: if I understand correct, it used to be necessary to upload to the pupil cloud (and then download to analyse in Pupil Player or otherwise) because the gaze was 60 instead of 200Hz. With the new export feature in the Pupil Companion this is addressed? i.e the export is 200Hz? - thanks! btw its great you implemented this feature
Hi, unfortunately not. You still need to upload your recordings to Pupil Cloud for a densified 200 Hz gaze signal. The Pupil Invisible Companion export feature has been added to ensure data format consistency.
I see, so this would be 60Hz or so?
is there a timeline for fixation detection etc with Pupil data or is this not going to be implemented?
Fixations for Pupil Invisible data - in progress; no time estimate to share currently.
Gaze data on OnePlus8 is ~66Hz. For OnePlus6 companion devices gaze data is ~55Hz
thanks @wrp!
Hi everyone, A general question: what software do people use to present and synchronise desktop stimuli with pupil? Psychopy? any other alternatives out there?
I recommend using the stimuli software which you are most comfortable with. Important for you is to know how its clock/timing works in order to implement proper time sync.
How to synchronize time depends on which software you use for exporting the recordings. Pupil Cloud downloads contain Unix-epoch timestamps in nanoseconds. This allows you to use Pyhton's time.time_ns()
in PsychoPy to record synchronized timestamps. Pupil Player converts these timestamps to Pupil Core format (seconds, arbitrary starting-point). This transformation can be reversed to Unix-epoch timestamps in nanoseconds format with custom export post-processing.
can i record using pupil recorder too?
I am not sure what you are referring to, exactly. Could you provide a link to this software?
sorry meant pupil capture
Pupil Capture does not support the Pupil Invisible product. It is meant for Pupil Core and the AR/VR add-ons.
Good Morning 🙂 As far as I know the IMU data is not yet streamed live from the PupilInvisible, am I right? But can I get access (e.g., via a created .csv file similar to the gaze_position) via PupilPlayer?
@user-fb5b59 you can get imu data as csv using the Raw Data Exporter in Pupil Cloud - https://docs.pupil-labs.com/cloud/enrichments/#export-format-4
Thanks! So it is necessary to upload the data to the cloud and not possible by just copying the folder from the mobile device to the computer and then putting it into the player?
@user-fb5b59 Using Pupil Cloud would be the easiest way. See my message here for a full overview of alternatives: https://discord.com/channels/285728493612957698/633564003846717444/827204804148461628
Hi! I have a question. I want to compare the data from the pupil invisible with another eye-tracker. The data exported by pupil cloud contains the gaze data in pixels, but to compare it, I need to translate the data to degrees. What is the best option for converting the data?
Hi. I have four question about pupil invisible app. 1) Is there anyway to change the name/rename of the recording folder without plugging in with computer? 2) Is there anyway to change/get the name of the recording folder via ndsi network? 3) Is there any chance to charge the phone and recording with OTG turn on at the same time? 4) Can we transfer the recording data via Bluetooth?
@user-2d66f7 To calculate error in degrees you need to convert the 2D gaze points in scene camera coordinates into 3D gaze rays, which you then can calculate angles between. This is a geometric problem that requires the camera intrinsics of the scene camera. Do you know how camera projection and intrinsics work?
You can access the intrinsic of your device in OpenCV format through the pupil cloud API. To do that you need to be currently logged into Pupil Cloud in your browser. Then call this URL
https://api.cloud.pupil-labs.com/hardware/<serial>/calibration.v1?json
Make sure to insert the serial number of your scene camera at the right location in the URL! You find the serial can be found on the camera itself on the side facing the glasses frame.
The conversion to gaze rays is essentially an unprojection of the points, which can be done using the undistortPoints
function in OpenCV
I could point you to places in Pupil Capture/Player that implement those steps as an example.
Hi @user-b10192!
1) After you have exported the recording from the Companion app, the folder is fully available on the Android filesystem. You could use a filebrowser in Android to rename that folder. There is no way to do this from within the Companion app.
2) The recording name is solely determined by the selected template. The folder name is the recording id, which is automatically generated. Neither can be set or received via NDSI currently.
3) No, charging the phone while using the USB connection the way we do is blocked by the Android OS, so there is unfortunately no way of using Pupil Invisible and charging at the same time. We usually recommend hot swapping to a freshly charged phone to extend battery life.
4) Since the recording data is available on the filesystem you should be able to do that with an appropriate 3rd party app. We have not tried that ourselves yet.
Thanks for answering 🙂
Hi Marc. Thank you for the info. A bit, but it would be nice if you maybe have an example. Also for the undistortPoints function.
To get an idea of how the theory works I can recommend reading the "Detailed Description" section in the OpenCV docs here: https://docs.opencv.org/3.4/d9/d0c/group__calib3d.html
We utilize OpenCV to compute the unprojection of gaze points in Pupil Player/Core here: https://github.com/pupil-labs/pupil/blob/master/pupil_src/shared_modules/camera_models.py#L621
We do accuracy calculation in the accuracy visualizer plugin. This code may not be super easy to grasp, but the step of calculating the angular errors from the 3D gaze rays is here: https://github.com/pupil-labs/pupil/blob/eb8c2324f3fd558858ce33f3816972d93e02fcc6/pupil_src/shared_modules/accuracy_visualizer.py#L407
Hope this helps!
Thank you! I will look into it
Hi guys! I want to double check something about head_pose_tracker, to be sure I am doing the analysis correctly. I want to know which rotation axis would give us the left-right movement of the head? X_axis, right? And Y_axis is the vertical rotations? Thanks!
Hey @user-17da3a! The coordinate system of the head-pose tracker is not centered in head, but with the defining markers. You need to specify one origin marker and this will marker will span the coordinate system. The axis for left-right rotation of the head thus depends on the pose of the head in the "3D marker-world"
In a previous answer I tried to summarize the coordinate system definition as follows. Does that make sense to you?
The origin is the markers bottom left corner, x-axis is pointing to the right, y-axis is pointing upwards and z-axis is pointing upwards from the marker (instead of pointing "through" it).
Thanks @marc for clarification! Yes, in my head_pose_model, I defined the marker on the bottom left corner, so, rightward from the origin marker is x_axis and upward from origin marker is y_axis. The z_axis is then pointing out toward outside of the screen. Thanks a lot, I see now.
Hi i have some questions about uploading something from the phone to the computer. On the phone i can see a movie. However if i want to upload it on the pc i see that other videos are loaded but if i want the other that i can see on the phone is stil procceding? and i cant open it
And i removed it from the cloud so can i upload it again? It is weird because i can see the video on the phone but not on the pc
Even when i upload it with ecporting the file
@user-82e5bd Are you transferring the files from phone to computer via USB connection? This should be similar to transferring files from a USB stick and all the files you could open on the phone should be openable on the computer as well. Regarding cloud, after a recording was uploaded to cloud once, the phone will not try to upload it again. Could you maybe share a screen shot of what files you see after transferring a recording to your computer?
@user-82e5bd Thanks! I can see both eye videos and world video exists. Which file do you have trouble with opening? Or are you wondering what software to use to open those recordings in genereal?
so it is weird because i cannot open it in the player but can see it with the phone
What happens if you try to open the recording with Pupil Player?
it shuts the program down
Which version of Pupil Player are you using?
and i switch of my virusprotector that gave also some problemes with it
I see, so the software crashes without showing an error
Yeah that is the problem
Yes
V.3.2.20
Could you please follow these steps:
1. Open Player
2. Attempt to open the recording
3. Once the software closes, do not restart it.
4. Go to Home directory -> pupil_player_settings
and share the player.log
file with us.
2021-04-26 10:26:00,966 - MainProcess - [DEBUG] os_utils: Disabling idle sleep not supported on this OS version. 2021-04-26 10:26:01,939 - player - [INFO] numexpr.utils: NumExpr defaulting to 6 threads. 2021-04-26 10:26:30,059 - player - [ERROR] launchables.player: Process player_drop crashed with trace: Traceback (most recent call last): File "launchables\player.py", line 934, in player_drop File "pupil_recording\recording_utils.py", line 40, in assert_valid_recording_type File "pupil_recording\recording_utils.py", line 59, in get_recording_type File "pupil_recording\recording_utils.py", line 119, in _is_pupil_invisible_recording File "pupil_recording\info\recording_info_utils.py", line 90, in read_info_json_file File "json__init__.py", line 299, in load File "json__init__.py", line 354, in loads File "json\decoder.py", line 342, in decode json.decoder.JSONDecodeError: Extra data: line 2 column 1 (char 688)
Would you mind sharing the info.json
file from this particular recording with me via a direct message?
Hey! I have problems to open a data set (duration: 2:09h) in Pupil Player. Could that be due to the duration? Another file with 12 sec duration can be opened without any problems...
Yes, the duration is too long, indeed. Player is not designed to open recordings of that length.
ok so the only solution is to shorten the duration of recording, right? What`s a manageable length for Pupil Player?
We are working on some long-term solutions but we are just at the beginning for those. In the meantime, I recommend recordings up to 20 minutes. The actual performance depends on your computer specs, though. More memory and CPU frequency helps.
okay thank you for the information and your support! 🙂
So if this solution works it's totally fine. stopping and restarting recordings several times per participant
As a follow up, may I ask why using Player over Pupil Cloud? Your experience is likely to be much better for Invisible recordings using Pupil Cloud.
I don't have the glasses here and just get the "raw data files". So I' just signed in to the Cloud but I can't upload data right?
Unfortunately, it is only possible to upload the recordings from the phone at the moment. Maybe you could coordinate the upload to a common account such that you can have access to all Pupil Cloud features?
Guys, just got my invisible and a minor point, but I'm dissapointed that the $6000 device came with a UK power brick. Was that a mistake?
(I'm in the US, and it was shipped to the US)
Hi @user-b14f98! Unfortunately it is not feasible for us to provide the correct charger for all countries and we ship only EU chargers (we should communicate that better on the website). You can use any other USB charger you might have at hand though. If you do not have an appropriate charger available, please contact [email removed] and we will find a solution!
Thanks. Of course, there will be some variability in how your customers interpret "not feasible." Thanks.
Hi guys! Would you mind please letting me know if citation of Pupil Labs eye trackers has any specific format? Thanks!
Hi @user-17da3a! Please cite one of the white papers depending on what hardware you are referencing: Pupil Invisible: https://arxiv.org/abs/2009.00508 Pupil Core: https://dl.acm.org/doi/abs/10.1145/2638728.2641695
Hi! I am wondering whether it is possible to do monocular recordings with the Pupil Invisible? I am running an experiment that requires monocular viewing of the stimuli, so we need to completely cover one eye. By doing so, this also blocks the camera near that eye from recording the eye movements, which seems to mess up the gaze reconstruction. In order for the PI to be useful in the experiment we need to either be able to record monocularly, or be able to discard the data from the covered eye to still get a good gaze reconstruction using only the data from the uncovered eye. Is this possible in any way? Thanks!
Hi @user-997dee. Pupil Invisible performs best when both eyes are visible to the eye cameras. I would leverage the fact that Pupil Invisible’s lenses can be removed and/or covered. With some minor modifications you can easily occlude vision from one eye this way without obscuring the view of the eye camera.
Thank you for your reply. That was our plan B already, so I guess we'll go with that. It's just a bit more work as not only the lens should be covered, but also the area around the lens (to block pretty much all light coming into the covered eye), so it would've been easire if we could just turn one camera off. But we'll simply be creative with cardboard then!
Hi! I am using Python to obtain the gaze from the mobile phone using the script available in your documentation. I receive an array [coordinate(x), coordinate(y), timestamp]. When I upload the video to Pupil Cloud and download it and open in Pupil Player, the timestamp does not correspond. My question is, how can I correlate the timestamp I am receiving in Python with the timestamp after the download from Pupil Cloud? Thanks
Therefore, player_timestamp_seconds
corresponds to the time since recording start in seconds.
The download from Cloud continues to have the same timestamps as before. But Player transforms the recording to a different format. Part of that transformation is a timestamp conversion:
# see info.json/info.invisible.json
S = start_time_nanoseconds
# Conversion
T = invisible_timestamp_nanoseconds
player_timestamp_seconds = (T - S) / 1e9
Thanks for the answer. I tried to convert it back: T = player_timestamp_seconds + S I obtained S from the file info.player.json["start_time_system_s"] but still does not match the data I obtained in Python (which is in the order of 10 to 5; example: 11004.046498000002)
Ah, I misunderstood!
Please use info.invisible.json
not info.player.json
in this case.
start_time_system_s
is in seconds which is why the conversion fails.
T = int(player_timestamp_seconds * 1e9) + S
(please read S
from info.invisible.json
) @user-0defc6
I guess is this start_time, but stills does not work the conversion. Even if I take the number in magnitude of 1e9
start_time
is correct. From where are you taking player_timestamp_seconds
?
Here the attempted conversion and what I obtained in Python...
start_time
is an integer. Your value seems to have a floating point.
in the image from before I just put the decimal point in 1e9 because the value was very big. Here was my first conversion attempt.
Generally, the numbers in column B look correct to me
Yes, it is expected to be big as it represents the number of nanoseconds between recording start and 00:00:00 UTC on 1 January 1970.
Is your spreadsheet software converting the number to E+18 format?
I am taking player_time_stamp_seconds from gaze_timestamp
I do not know if this is just for visualization purposes, but if the number is converted internally to floats (E+x is a float format) then you might be loosing time precision
Current unix time in nanoseconds: 1619787056987142000 1619787056987142000 / 1e18 = 1.619787056987142
1619787056987142000 = 1.619787056987142E+18
So then I do not understand what I am receiving in the timestamp from Python (together with the coordinates x and y). Order of value is 1e5 (Column C)
~~Where does this column come from? Are you using https://github.com/pupil-labs/pupil-tutorials/blob/master/08_post_hoc_time_sync.ipynb ?~~ Could yo clarify from where you receive this data:
I receive an array [coordinate(x), coordinate(y), timestamp]
Here is the part of the code where I receive Gaze data and Timestamps, on the right I am printing the values.
You should see timestamp values around 1619788341.9911768
ok, could you repeat your data collection while running a recording on the phone? I have a hunch but would like to have it confirmed first.
I've been recording all the time and I was obtaining the data I showed you, but now it is exactly happening what you said. Why was that? (Thanks by the way)
ok, this is good to hear. What you are getting now are unix epoch timestamps in seconds. So to convert exported timestamps, you need to:
player_timestamp_seconds + S / 1e9
I will forward the issue of the unexpected timestamps to our Android development team
Could you let me know which app version you are using?
1.0.3-prod
I'll try this. Thank you very much
I have just noticed that this is an older version. Please consider upgrading the app and let us know if you encounter the issue again with the latest version.