💻 software-dev


user-94f759 02 July, 2020, 13:42:53

Hi ! I would like to add a good looking icon to my plugin when it appears in the menu in the right, how do I do this?

papr 02 July, 2020, 13:52:11

@user-94f759 Unfortunately, that is not that easy to accomplish. We use a custom icon font that we ship with pylgui, our UI frame work.

papr 02 July, 2020, 13:52:20

https://github.com/pupil-labs/pupil-icon-font

user-94f759 02 July, 2020, 13:53:27

Thanks I'll give it a try we'll see

papr 02 July, 2020, 13:56:08

@user-94f759 I would not recommend modifying this font. Instead, it should be possible to register a custom font that you can ship with your plugin

user-94f759 02 July, 2020, 13:56:50

Ok thank you

papr 02 July, 2020, 13:59:34

@user-94f759 g_pool.gui.add_font(font_name, absolute_path_to_font). Then you should be able to define the font_name and the icon character in your plugin https://github.com/pupil-labs/pupil/blob/master/pupil_src/shared_modules/plugin.py#L54-L55

user-ddc8dd 06 July, 2020, 17:18:08

Hi again! I exported pupil player's fixation detector on 2 different computers (windows & ubuntu) & noticed the export produced slightly different results. And, when I'm directly calling detect_fixations() in my own code, my output is slightly different from both pupil player export results. (And, all 3 have the same parameters.) I'm wondering what could be causing the differences & how I can fix it? I can share the fixation files if that'll be helpful.

user-c5fb8b 06 July, 2020, 17:19:39

Hi @user-ddc8dd would it be possible to share the recording with us? If yes, please share it with data@pupil-labs.com

user-c5fb8b 06 July, 2020, 17:20:11

The fixation exports would also be helpful, let's start with the Windows vs Ubuntu ones

user-ddc8dd 06 July, 2020, 17:33:16

Hi @user-c5fb8b, I just emailed you! Thank you!!

papr 07 July, 2020, 07:11:17

@user-ddc8dd We have received your email. Unfortunately, it will take us a while to review this issue as this is probably related to very small details. We will try to come back to you and update you about the progress next week.

user-ddc8dd 07 July, 2020, 17:40:34

Sure, thank you @papr!

user-39c8c4 09 July, 2020, 09:40:19

Hello, how do I know the height and width of a surface I created ? And what is the unit of these parameters ?

papr 09 July, 2020, 09:42:30

@user-39c8c4 You can set a width and height for each surface in the surface tracking menu. It is mostly used to determine the heatmap aspect ratio. It does not have a unit, i.e. you can use the unit of your choice here. Internally, the surface uses a normalized coordinate system https://docs.pupil-labs.com/core/terminology/#surface-aoi-coordinate-system

user-39c8c4 09 July, 2020, 09:45:24

Thank you Papr, I understand where I have to modify these parameters, but I don't understand how to determine them. Can I, for example, measure the width and height on my screen and enter these information in the fields ?

user-c5fb8b 09 July, 2020, 09:46:22

@user-39c8c4 for the gaze mapping on surfaces, the dimensions you specify will also be used to calculate the gaze point on the surface in surface units. E.g. if your surface is a piece of paper with 40mm x 60mm and you set it up as 40x60, you will get gaze mapped in mm units. If your surface is a monitor with e.g. 1280x720 pixels resolution, you could set the surface up as 1280x720 and you will get gaze mapped in pixel units.

user-c5fb8b 09 July, 2020, 09:48:15

If you don't care about mapping to surface units and are fine with just normalized coordinates, you could enter any integers that correspond to the aspect ratio, e.g. 16:9 or 4:3 or whatever aspect ratio your monitor has.

user-39c8c4 09 July, 2020, 11:08:35

Thank you for your answer @papr I'll try like this !

user-94f759 10 July, 2020, 08:02:56

Hello how can I add my plugin data to the recordings?

user-c5fb8b 10 July, 2020, 08:06:22

Hi @user-94f759 do you mean how you can export data from a custom plugin?

user-94f759 10 July, 2020, 08:06:40

yes

user-c5fb8b 10 July, 2020, 08:06:40

The recording is normally not modified by any plugin.

user-94f759 10 July, 2020, 08:07:05

I need to create a topic?

user-c5fb8b 10 July, 2020, 08:09:35

Player will send a notification to all plugins once you hit the export key:

notification = {
    "subject": "should_export",
    "range": export_range,
    "ts_window": export_ts_window,
    "export_dir": export_dir,
}

See at: https://github.com/pupil-labs/pupil/blob/df7000f6576a3e00f1a9ce5237d7632da0402c7b/pupil_src/launchables/player.py#L364-L369

user-c5fb8b 10 July, 2020, 08:10:18

You can filter for the "should_export" notification in you plugins on_notify and then put the export data into export_dir.

user-94f759 10 July, 2020, 08:10:59

Thanks lets go

user-c5fb8b 10 July, 2020, 08:12:06

ah wait

user-c5fb8b 10 July, 2020, 08:12:24

@user-94f759 or are you asking how a Pupil Capture plugin can record additional data?

user-c5fb8b 10 July, 2020, 08:12:39

I understood that you want to export data with a Pupil Player plugin

user-94f759 10 July, 2020, 08:12:45

yes it's more about that

user-c5fb8b 10 July, 2020, 08:13:01

ok then forget what I wrote above, this is for Player plugins, sorry

user-94f759 10 July, 2020, 08:13:04

i created a pupil capture plugin

papr 10 July, 2020, 08:16:07

@user-94f759 let me quickly write an example

papr 10 July, 2020, 08:24:48

@user-94f759 https://gist.github.com/papr/079a520a1f2a31b1b73963feb7037995

user-94f759 10 July, 2020, 08:27:24

Thank you @papr very nice of you

user-045b36 10 July, 2020, 09:30:10

Hello! I am a c ++ developer. I have a problem. On the version pupil capture 1.18, I could connect to the topic "gaze." and get structures with all information about gaze. On the new version 2.0, I connect to the topic "gaze.", but I get no information. What needs to be changed to receive data?

user-c5fb8b 10 July, 2020, 11:29:19

Hi @user-045b36, did you calibrate? Before calibration, no gaze data will be published.

user-045b36 11 July, 2020, 12:25:23

@user-c5fb8b No, I did not calibrate. In pupil capture 1.18, data goes regardless of calibration. Is there a calibration dependency in new versions?

papr 11 July, 2020, 12:29:50

@user-045b36 In previous versions, Pupil Capture shipped with a "dummy gaze mapper" which was active as long the user had not calibrated yet. It mapped the pupil positions ont-to-one to gaze coordinates which resulted in two invalid gaze points being displayed. We removed the dummy gaze mapper as this behavior resulted in new users being confused about the meaning of these dummy gaze points.

user-49b34e 14 July, 2020, 06:49:30

On that note, could you reccommend resources or previous work to help me implement calibration in C++ in the simplest way possible? I am able to use the Network API to access gaze data.

papr 14 July, 2020, 06:59:53

@user-49b34e Hey, sorry if I missed it, but how are you planning on running your c++ code? As part of an HMD/VR setup? Or as a stand-alone application that needs to start/stop the built-in calibration of Pupil Capture?

user-49b34e 14 July, 2020, 07:05:43

Thanks for the help @papr, I should have been more specific! I want to run the c++ code as part of a VR set-up aka I can't use the built-in calibration of Pupil Capture. All good rendering my own calibration dots, but not sure the best way of feeding this information back...

papr 14 July, 2020, 07:11:22

Understood. Unfortunately, our hmd-calibration-example python script is out-of-date at the moment. It will be fixed at the start of next week. You will be able to use it as a template for your c++ code. Until then, you might be able to use the hmd-eyes calibration model as a template: https://github.com/pupil-labs/hmd-eyes/blob/master/plugin/Scripts/Calibration.cs

user-49b34e 14 July, 2020, 07:42:08

Ohh that's great. Could you point me in the direction of the hmd-calibration-example python script? (assuming that it will be updated in place)

papr 14 July, 2020, 07:42:46

https://github.com/pupil-labs/hmd-eyes/blob/master/python_reference_client/hmd_calibration_client.py And yes, it will be updated in-place.

user-49b34e 14 July, 2020, 07:49:21

Thank you!

user-2be752 16 July, 2020, 04:10:11

Hi all, we've just finished implementing a python preprocessing pipeline that takes in the pupil labs subject data and outputs cleaned fixation, saccades and blinks. It also has a surface detection & mapping option. Hopefully some of you will find it useful! 🙂 You can find it here: https://github.com/teresa-canasbajo/bdd-driveratt/tree/master/eye_tracking/preprocessing

papr 16 July, 2020, 06:24:41

@user-2be752 gratulations! I will add your project to the community repository when I am in the office.

user-1af2b3 28 July, 2020, 17:50:10

Hey I'm working in Unity with pupil labs eye tracking device and it was working fine in my project for months, but a few days ago I started getting this error whenever it would attempt to connect: FormatterNotRegisteredException: System.Collections.Generic.Dictionary2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]] is not registered in this resolver. resolver:StandardResolver MessagePack.FormatterResolverExtensions.GetFormatterWithVerify[T] (MessagePack.IFormatterResolver resolver) (at Assets/Plugins/Pupil/3rd-party/MessagePack/IFormatterResolver.cs:35) MessagePack.MessagePackSerializer.Serialize[T] (T obj, MessagePack.IFormatterResolver resolver) (at Assets/Plugins/Pupil/3rd-party/MessagePack/MessagePackSerializer.cs:64) MessagePack.MessagePackSerializer.Serialize[T] (T obj) (at Assets/Plugins/Pupil/3rd-party/MessagePack/MessagePackSerializer.cs:55) PupilLabs.RequestController+Request.SendRequestMessage (System.Collections.Generic.Dictionary2[TKey,TValue] data) (at Assets/Plugins/Pupil/Scripts/Request.cs:110) PupilLabs.RequestController.Send (System.Collections.Generic.Dictionary`2[TKey,TValue] dictionary) (at Assets/Plugins/Pupil/Scripts/RequestController.cs:185) PupilLabs.RequestController.StartEyeProcesses () (at Assets/Plugins/Pupil/Scripts/RequestController.cs:206) PupilLabs.RequestController.Connected () (at Assets/Plugins/Pupil/Scripts/RequestController.cs:157) PupilLabs.RequestController+<Connect>d__28.MoveNext () (at Assets/Plugins/Pupil/Scripts/RequestController.cs:143) UnityEngine.SetupCoroutine.InvokeMoveNext (System.Collections.IEnumerator enumerator, System.IntPtr returnValueAddress) (at C:/buildslave/unity/build/Runtime/Export/Coroutines.cs:17)

any idea whats causing this? its not connecting in Unity anymore but the pupil capture works fine and so does the unity example app from pupil labs

user-a6cc45 29 July, 2020, 16:46:29

Hello everyone, I want to make sure if my understanding is correct:

https://docs.pupil-labs.com/core/software/pupil-capture/#gaze-mapping-and-accuracy

With the 2D Gaze Mapping, you should easily be able to achieve tracking accuracy within the physiological limits (sub 1 deg visual degrees). Using the 3D Gaze Mapping you should achieve 1.5-2.5 deg of accuracy.

this means that 2D method gives better accuracy?

papr 30 July, 2020, 08:36:23

@user-1af2b3 I am not sure if this is the issue, but please give this a try:

Due to an issue with MessagePack, the default project setting for ProjectSettings/Player/Configuration/API Compatibility Level is not supported and needs to be set to .NET 4.x

papr 30 July, 2020, 08:37:07

@user-a6cc45 Please check out https://docs.pupil-labs.com/core/best-practices/ for more information

user-1af2b3 31 July, 2020, 18:11:25

ty @papr apparently adding a new package changed that

End of July archive