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?
@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.
Thanks I'll give it a try we'll see
@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
Ok thank you
@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
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.
Hi @user-ddc8dd would it be possible to share the recording with us? If yes, please share it with data@pupil-labs.com
The fixation exports would also be helpful, let's start with the Windows vs Ubuntu ones
Hi @user-c5fb8b, I just emailed you! Thank you!!
@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.
Sure, thank you @papr!
Hello, how do I know the height and width of a surface I created ? And what is the unit of these parameters ?
@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
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-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.
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.
Thank you for your answer @papr I'll try like this !
Hello how can I add my plugin data to the recordings?
Hi @user-94f759 do you mean how you can export data from a custom plugin?
yes
The recording is normally not modified by any plugin.
I need to create a topic?
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,
}
You can filter for the "should_export"
notification in you plugins on_notify
and then put the export data into export_dir
.
Thanks lets go
ah wait
@user-94f759 or are you asking how a Pupil Capture plugin can record additional data?
I understood that you want to export data with a Pupil Player plugin
yes it's more about that
ok then forget what I wrote above, this is for Player plugins, sorry
i created a pupil capture plugin
@user-94f759 let me quickly write an example
@user-94f759 https://gist.github.com/papr/079a520a1f2a31b1b73963feb7037995
Thank you @papr very nice of you
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?
Hi @user-045b36, did you calibrate? Before calibration, no gaze data will be published.
@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?
@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.
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.
@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?
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...
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
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)
https://github.com/pupil-labs/hmd-eyes/blob/master/python_reference_client/hmd_calibration_client.py And yes, it will be updated in-place.
Thank you!
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
@user-2be752 gratulations! I will add your project to the community repository when I am in the office.
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.Dictionary
2[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
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?
@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
@user-a6cc45 Please check out https://docs.pupil-labs.com/core/best-practices/ for more information
ty @papr apparently adding a new package changed that