πŸ’» software-dev


user-ebf6d1 01 October, 2018, 10:06:07

Good morning, folks! We're having an issue here, where we cannot get the second camera of the binocular to programmatically start streaming. I was hoping that someone could lend some advice.

Both cameras initiate just fine. We are capturing at [email removed]

The issue we encounter is that the call to start the second stream fails with a UVC_ERROR_IO error.

auto code = uvc_stream_start(stream, nullptr, this, 2.0, 0);

This is accompanied with a windows dialog, complaining that the USB controller does not have enough resources.

Any advice on this? We tried lowering the bandwidth etc, but to no avail.

N.b. The "Pupil Capture" demo works fine for us. Both cameras capture, no usb resource issue. So that's why we believe this is a software issue.

user-ebf6d1 01 October, 2018, 13:21:35

Just an addendum from what we've found today.

uvc_get_stream_ctrl_format_size(*devH, ctrl, UVC_FRAME_FORMAT_ANY, 320, 240, 30);

results in a large bandwidth being set:

Estimated / selected altsetting bandwith : 3072 / 3072.

If we amend the ctrl to use a different supported size (e.g. [email removed] The bandwidth is much lower (~800) and we dont get the usb resource issue.

papr 01 October, 2018, 13:24:57

@user-ebf6d1 Could you try [email removed] I think one issue is that [email removed] does not seem to be available

user-ebf6d1 01 October, 2018, 13:45:42

Hey @papr, yeah. I have looked at that. unfortunately the version of libuvc provided to us hasnt been built with the LIBUVC_HAS_JPEG flag set. Will we need a rebuild of libuvc? or do you think there is another means of getting the bgr data from from the frame other than uvc_any2bgr (which returns UVC_ERROR_NOT_SUPPORTED)

papr 01 October, 2018, 13:49:25

I dont have that level of insight into libuvc. I think (70% sure) that you will have to recompile libuvc including that flag.

user-ebf6d1 01 October, 2018, 14:39:11

Hey @papr, It looks like that flag was intentionally removed by you guys in https://github.com/pupil-labs/libuvc/commit/45e267d9c9dd3311e851496e38ffaf8438ae3512#diff-af3b638bc2a3e6c650974192a53c7291

Do you happen to know offhand what the suggested way to get the bgr data is, if the frame format fetched from the stream is UVC_FRAME_FORMAT_MJPEG?

papr 01 October, 2018, 14:40:06

Ah, we use turbojpeg to uncompress the mjpeg data.

user-ebf6d1 01 October, 2018, 14:42:19

ah okay, so we should grab the turbojpeg repo and decompress the uvc_frame_t data?

user-ebf6d1 01 October, 2018, 14:43:08

Do you know of any examples of this?

papr 01 October, 2018, 14:44:47

This is what we do in our uvc wrapper, pyuvc: https://github.com/pupil-labs/pyuvc/blob/master/uvc.pyx#L267

papr 01 October, 2018, 14:46:16

self._uvc_frame is of type uvc_frame_t

user-ebf6d1 01 October, 2018, 14:48:54

thanks πŸ˜ƒ

user-d3de40 02 October, 2018, 13:43:11

Hi all

user-d3de40 02 October, 2018, 13:43:23

I have just gotten my Pupil kit today

user-d3de40 02 October, 2018, 13:43:53

Trying to calibrate it but Pupil Capture seems to be crashing everytime i open it

papr 02 October, 2018, 13:44:38

Hey @user-d3de40 Welcome to the channel! Which version of Capture do you run? And on which operating system?

user-d3de40 02 October, 2018, 13:44:43

I've tried downloading the 3D and 2D calibration build but it fails everytime

user-d3de40 02 October, 2018, 13:45:18

Windows 10, Pupil v1.8

user-d3de40 02 October, 2018, 13:45:40

Obtained from here: https://github.com/pupil-labs/pupil/releases/tag/v1.8

papr 02 October, 2018, 13:45:50

What do you mean by 2d/3d build?

papr 02 October, 2018, 13:46:45

Do I understand it correctly, that you can see the live stream of all cameras in Capture and that the program crashes when you hit C for calibrate?

user-d3de40 02 October, 2018, 13:46:49

One sec, looking for the link

user-d3de40 02 October, 2018, 13:47:36

Here it is: https://github.com/pupil-labs/hmd-eyes/releases/tag/v0.5.1

user-d3de40 02 October, 2018, 13:47:42

Calibration guidance app

user-d3de40 02 October, 2018, 13:48:17

So i can get to the whole calibration part but it always fails

papr 02 October, 2018, 13:48:20

Ah, ok, so you got the HMD addon.

user-d3de40 02 October, 2018, 13:48:24

yep

user-d3de40 02 October, 2018, 13:49:16

Any idea why Capture is crashing?

user-d3de40 02 October, 2018, 13:49:40

Because i cant calibrate it

papr 02 October, 2018, 13:50:32

Unfortunately, I do not know if this unity plugin release is up-to-date. πŸ˜• Did you have a look at this: https://github.com/pupil-labs/hmd-eyes/tree/v0.5.1/unity_pupil_plugin_vr ?

papr 02 October, 2018, 13:51:32

Please also see our πŸ₯½ core-xr channel for further ar/vr related questions.

user-d3de40 02 October, 2018, 13:58:58

Okay I will. Thanks papr!

user-b91aa6 04 October, 2018, 07:38:28

How could we flip the eye image frame?

user-b91aa6 04 October, 2018, 07:38:31

Chat image

papr 04 October, 2018, 07:39:10

Do you mean flip it such that is recorded in the flipped manner?

user-b91aa6 04 October, 2018, 07:39:34

The pupil is detected in flipped image

user-b91aa6 04 October, 2018, 07:39:36

Chat image

user-b91aa6 04 October, 2018, 07:39:54

and also record it in a flipped manner

user-b91aa6 04 October, 2018, 07:41:15

I try to flip the gray of the frame, but the gray in frame is not writable

papr 04 October, 2018, 07:43:12

By default we write the original jpeg data to the file.

user-b91aa6 04 October, 2018, 07:43:43

for example frame.gray=np.fliplr(frame.gray)

papr 04 October, 2018, 07:44:47

Yes, I understand. But just because you modify it, ti does not mean that the system will record that data. πŸ™‚ So even if it was modifiable, it would not be saved since the default saves the original jpeg data.

papr 04 October, 2018, 07:44:58

This is what you can do:

papr 04 October, 2018, 07:47:18

Actually, I noticed that you need to change a lot of code to get this done. πŸ˜• May I suggest to use ffmpeg to post-process the video?

user-b91aa6 04 October, 2018, 07:48:16

For example, If I want the pupil to be detected in flipped image

user-b91aa6 04 October, 2018, 07:48:20

Is it complex?

papr 04 October, 2018, 07:52:44

Unfortunately, I need to leave for now, but when I come back I can lay out the frame processing steps that Pupil makes. This should help you to understand the complexity.

papr 04 October, 2018, 07:53:32

Generally: There is no need to flip the image. Pupil detection works the same, independently of the image being flipped or not.

user-b91aa6 04 October, 2018, 07:54:06

Basically, I need to do a visualization, which makes the pupil moves the same way as the gaze

papr 04 October, 2018, 07:54:53

In Player, you can flip the eye videos in the Vis Eye Overlay plugin.

user-b91aa6 04 October, 2018, 07:56:04

The thing is that If I can flip eye image directly, I don't need to flip the result

user-b91aa6 04 October, 2018, 07:56:11

detection result

user-b91aa6 04 October, 2018, 07:56:37

I haven;t understood why flipping image is complex?

papr 04 October, 2018, 07:56:57

I understand. But it is not as easy as flipping some decoded image buffer. You will need to flip the underlying jpeg buffer and its resulting yuv buffer

papr 04 October, 2018, 07:57:18

I need to leave now, sorry. Talk to you later!

user-b91aa6 04 October, 2018, 07:57:32

OK. Thanks

user-d3bdd1 04 October, 2018, 09:38:03

Hello, looking for reach blinks in Unity, I can’t subscribe to "blink" or β€œblinks” messages. I have read that you found a solution for this previously (https://github.com/pupil-labs/pupil/pull/1283).

The problem Is that I can’t find pupil_capture_settings/plugins in my pupil_capture_windows_x64_v1.8-26 folder. I'm sure I've missed some step but I do not know where. (I have found a plugin folder in utils/trainer but when I copy the blink_detection_fixed, I doesn’t appear in the pupil_capture/plugin_manager to launch it)

Thank you so much

papr 04 October, 2018, 09:39:11

Hey, the pupil_capture_settings/plugins should be in your home folder, not the pupil_capture_windows_x64_v1.8-26

user-d3bdd1 04 October, 2018, 09:43:54

Thank you! I thought I was going crazy πŸ˜…

user-d3de40 04 October, 2018, 14:20:04

Hi @papr, thanks for pointing me to the right direction, i've managed to get it working

user-d3de40 04 October, 2018, 14:20:36

Using the Unity plugin, is there a way for me to get the size of the pupil?

papr 04 October, 2018, 14:26:40

@user-d3de40 This is part of the pupil data. Either you subscribe to pupil explicitly or you can use the pupil data within the gaze data base_data field.

user-d3de40 04 October, 2018, 14:29:13

Thanks @papr. I'm sorry, but where can i find this>?

papr 04 October, 2018, 14:30:44

I think the unity plugin subscribes to the gaze data after calibration. This is used to visualize gaze within the scene. The base_data is part of that. I do not know the exact code location though.

papr 04 October, 2018, 14:31:17

This is an python example as reference: https://github.com/pupil-labs/pupil-helpers/blob/master/python/filter_messages.py

user-d3de40 04 October, 2018, 14:42:27

Okay, thanks a lot again @papr!

user-85f3ed 04 October, 2018, 18:29:30

Is there a way to make the pupil recordings save in multiple files? Like say I want files in 10 minute blocks - is that possible?

papr 04 October, 2018, 18:48:01

This is not possible yet

user-85f3ed 04 October, 2018, 21:08:57

Okay, thank you @papr

user-5509fe 05 October, 2018, 11:58:04

Morning, Is it possible read HTC Vive input in pupil world capture?

papr 05 October, 2018, 12:17:34

@user-5509fe The world window usually captures the scene video. The HTC addon does not have a scene camera. Therefore the world window stays grey when using the addon

user-5509fe 05 October, 2018, 12:25:06

Thank for the answer. It's not possible have HTC reg (and pupils reg) without modifying the source code of my VR application. Is that correct?

papr 05 October, 2018, 12:27:13

What do you mean by "reg"?

user-5509fe 05 October, 2018, 12:28:12

"recording", sorry

papr 05 October, 2018, 12:31:12

The gaze recording is independent of the unity recording. But your vr application needs to provide the coordinate system in which capture can estimate gaze. This is where our unity plugin comes in.

user-29e10a 05 October, 2018, 16:29:40

@papr is it possible to start pupil service (or capture) with another remoteport than 50020 via commandline args? So without the need to interact with the gui or to open it at least once with the standard port.

papr 05 October, 2018, 21:38:50

@user-29e10a this is not possible yet. Please create an issue for that.

user-d3bdd1 09 October, 2018, 10:25:19

Hi again guys. I have tested the blink plugin fixed and it wors really good. I think it only has a problem (maybe it’s my fault). This is my workflow:

Launch Pupil Caputure, start Blink plugin, launch Unity Calibration and Blink detection (everything ok), stop Unity, relaunch Unity. In this point the blink detection doesn’t work, I need to go to Pupil Capture Plugin and uncheck and check again the plugin.

Do you have any idea why this is happening? Could I do this plugin reset through Unity?

πŸ˜‹

papr 09 October, 2018, 12:39:47

@user-d3bdd1 Could you run this script while doing the described procedure and let us know about the output? https://github.com/pupil-labs/hmd-eyes/blob/master/python_reference_client/notification_monitor.py

user-d3bdd1 09 October, 2018, 14:17:26

I managed to launch the .py but, when I went to test pupil capture, one of the cameras doen't initialize. I only have installed python 2.7 and the libraries zqm and mgspack in a secondary folder. This is the error that I have when I try to turn on the eye1 (it appears in UVC Manager as unknown):

Running  PupilDrvInst.exe --vid 1443 --pid 37424
OPT: VID number 1443
OPT: PID number 37424
Running  PupilDrvInst.exe --vid 1443 --pid 37425
OPT: VID number 1443
OPT: PID number 37425
Running  PupilDrvInst.exe --vid 1443 --pid 37426
OPT: VID number 1443
OPT: PID number 37426
Running  PupilDrvInst.exe --vid 1133 --pid 2115
OPT: VID number 1133
OPT: PID number 2115
Running  PupilDrvInst.exe --vid 6127 --pid 18447
OPT: VID number 6127
OPT: PID number 18447
Running  PupilDrvInst.exe --vid 3141 --pid 25771
OPT: VID number 3141
OPT: PID number 25771
eye1 - [ERROR] video_capture.uvc_backend: Init failed. Capture is started in ghost mode. No images will be supplied.
eye1 - [INFO] camera_models: No user calibration found for camera Ghost capture at resolution [320, 240]
eye1 - [INFO] camera_models: No pre-recorded calibration available
eye1 - [WARNING] camera_models: Loading dummy calibration
eye1 - [WARNING] launchables.eye: Process started.
papr 09 October, 2018, 14:18:23

@user-d3bdd1 Wait, does Capture crash if you run the script?

papr 09 October, 2018, 14:18:55

unknown means that the drivers were not installed correctly for that camera

user-d3bdd1 09 October, 2018, 14:20:11

Now it crash always. I can't start the pupil capture correctly

user-d3bdd1 09 October, 2018, 14:21:03

(I have reboot the computer too)

user-d3bdd1 09 October, 2018, 14:21:49

(and restart default settings in the app)

papr 09 October, 2018, 14:22:51

Btw, the script above is not Python 2 compatible

user-d3bdd1 09 October, 2018, 14:32:56

It's strange, i am running with it. Maybe It is using internally other python version, I have a 3.6v installed with Visual Studio

Chat image

papr 09 October, 2018, 14:34:07

Well, yes then. This is the output I was looking for. πŸ™‚

papr 09 October, 2018, 14:35:24

Could you repeat that including

start Blink plugin, launch Unity Calibration and Blink detection (everything ok), stop Unity, relaunch Unity.

user-d3bdd1 09 October, 2018, 14:35:46

Ok, 1 minute

user-d3bdd1 09 October, 2018, 14:43:12
(u'notify.start_plugin', {u'topic': u'notify.start_plugin', u'name': u'Blink_Detection_Fixed', u'subject': u'start_plugin'})
(u'notify.set_detection_mapping_mode', {u'topic': u'notify.set_detection_mapping_mode', u'mode': u'2d', u'subject': u'set_detection_mapping_mode'})
(u'notify.eye_process.should_start.1', {u'topic': u'notify.eye_process.should_start.1', u'eye_id': 1, u'subject': u'eye_process.should_start.1'})
(u'notify.eye_process.should_start.0', {u'topic': u'notify.eye_process.should_start.0', u'eye_id': 0, u'subject': u'eye_process.should_start.0'})
(u'notify.eye_process.started', {u'topic': u'notify.eye_process.started', u'eye_id': 1, u'subject': u'eye_process.started'})
(u'notify.eye_process.started', {u'topic': u'notify.eye_process.started', u'eye_id': 0, u'subject': u'eye_process.started'})
(u'notify.set_detection_mapping_mode', {u'topic': u'notify.set_detection_mapping_mode', u'mode': u'2d', u'subject': u'set_detection_mapping_mode'})
(u'notify.set_detection_mapping_mode', {u'topic': u'notify.set_detection_mapping_mode', u'mode': u'2d', u'subject': u'set_detection_mapping_mode'})
(u'notify.eye_process.should_stop.1', {u'topic': u'notify.eye_process.should_stop.1', u'eye_id': 1, u'subject': u'eye_process.should_stop.1'})
(u'notify.eye_process.should_stop.0', {u'topic': u'notify.eye_process.should_stop.0', u'eye_id': 0, u'subject': u'eye_process.should_stop.0'})
user-d3bdd1 09 October, 2018, 14:43:31
(u'notify.eye_process.stopped', {u'topic': u'notify.eye_process.stopped', u'eye_id': 1, u'subject': u'eye_process.stopped'})
(u'notify.eye_process.stopped', {u'topic': u'notify.eye_process.stopped', u'eye_id': 0, u'subject': u'eye_process.stopped'})
(u'notify.set_detection_mapping_mode', {u'topic': u'notify.set_detection_mapping_mode', u'mode': u'2d', u'subject': u'set_detection_mapping_mode'})
(u'notify.eye_process.should_start.1', {u'topic': u'notify.eye_process.should_start.1', u'eye_id': 1, u'subject': u'eye_process.should_start.1'})
(u'notify.eye_process.should_start.0', {u'topic': u'notify.eye_process.should_start.0', u'eye_id': 0, u'subject': u'eye_process.should_start.0'})
(u'notify.eye_process.started', {u'topic': u'notify.eye_process.started', u'eye_id': 0, u'subject': u'eye_process.started'})
(u'notify.eye_process.started', {u'topic': u'notify.eye_process.started', u'eye_id': 1, u'subject': u'eye_process.started'})
(u'notify.set_detection_mapping_mode', {u'topic': u'notify.set_detection_mapping_mode', u'mode': u'2d', u'subject': u'set_detection_mapping_mode'})
(u'notify.set_detection_mapping_mode', {u'topic': u'notify.set_detection_mapping_mode', u'mode': u'2d', u'subject': u'set_detection_mapping_mode'})
papr 09 October, 2018, 14:44:57

And afterwards the you are not able to receive any blink data in unity anymore, correct?

user-d3bdd1 09 October, 2018, 14:45:07

yes

papr 09 October, 2018, 14:46:42

Are you able to see the blink visualizations in Capture, generally? You will need a second person to evaluate that

user-d3bdd1 09 October, 2018, 14:51:25

where do I should see this?

papr 09 October, 2018, 14:52:51

I think the visualiation darkens the world video if a blink onset is detected.

user-d3bdd1 09 October, 2018, 14:53:26

I only see this, when u do the blink, the red circle disappear, I cant see anything more

Chat image

papr 09 October, 2018, 14:53:51

Are you running Service?

user-d3bdd1 09 October, 2018, 14:54:27

No, I am using Capture with the service plugin

papr 09 October, 2018, 14:54:52

With the service plugin? Can you be more specific?

user-d3bdd1 09 October, 2018, 14:55:12

Pupil remote, sorry

papr 09 October, 2018, 14:55:41

Ok, what do you see in the world window? Is the background gray or colored?

user-d3bdd1 09 October, 2018, 14:55:56

gray

papr 09 October, 2018, 14:56:41

Ok, then the visualization does not work. Please select the UVC Manager icon on the right, select Test Image and click Activate Test Image

papr 09 October, 2018, 14:57:09

Afterwards you should see a blue/green gradient as a background.

user-d3bdd1 09 October, 2018, 14:57:49

yes

papr 09 October, 2018, 14:58:27

Now try to blink. The gradient should darken

user-d3bdd1 09 October, 2018, 15:01:03

Yes it does it, but when I turn off Unity and relaunch it, the darken gradient doesn't appear

user-d3bdd1 09 October, 2018, 15:01:33

If I restart the plugin manually ( check and unchek) it works

user-d3bdd1 09 October, 2018, 15:02:14

I could record a video if u want to check it

papr 09 October, 2018, 15:08:16

No I believe you, I just needed to make sure that blinks would actually not be detected

user-d3bdd1 09 October, 2018, 15:20:00

Yes, it should be a problem in te Blink detection fixed plugin. Maybe it breaks when the service runs out? I could explain why this only happens when I turn off Unity

papr 09 October, 2018, 15:26:09

I cannot reproduce the issue by turning the eyes off and on again

user-d3bdd1 09 October, 2018, 15:27:15

I have tried something else,

user-d3bdd1 09 October, 2018, 15:27:33

Maybe you can reproduce this:

user-d3bdd1 09 October, 2018, 15:29:01

-Fake Manager: Test Image -> Activate -Reboot Pupil Capture -Blinks will not be detected, instead you uncheck and check the blink Detection fixed plugin

user-d3bdd1 09 October, 2018, 15:29:27

Are you using the blink detection or the blink detection fixed?

papr 09 October, 2018, 15:29:59

I am running the currnt pupil master, so the fixed version

papr 09 October, 2018, 15:31:05

I cannot reproduce the issue with the alternative method either

papr 09 October, 2018, 15:31:21

Which bundle do you use?

user-d3bdd1 09 October, 2018, 15:32:30

1.8.26 with https://github.com/pupil-labs/pupil/pull/1283

papr 09 October, 2018, 15:34:31

Ok, I did this exact setup on Linux, same behaviour as before. Let me try the windows machine

papr 09 October, 2018, 15:45:00

Not reproducable on Windows either

papr 09 October, 2018, 15:45:25

Can you reproduce this whole thing without running Unity at all?

user-d3bdd1 09 October, 2018, 15:46:57

yes, im going to record it, maybe im doing something wrong

papr 09 October, 2018, 15:47:14

Unfortunately, I have to leave now. I might be able to answer question while on mobile later though.

papr 09 October, 2018, 15:48:48

You can use this as well to check if blinks can be received: https://gist.github.com/papr/18d7c36c8d811e9e25a0b21db1fbd57b

Note: This will not work after you restarted capture. In this case you need to restart the script as well

user-81072d 09 October, 2018, 20:05:29

Hey, gang - can anyone help me out?

When reading a norm_pos from a gaze.2d.0 topic, in what space do those coordinates exist?

user-81072d 09 October, 2018, 20:25:24

It must have some relation to the calibration, right?

user-81072d 09 October, 2018, 23:37:10

Is it possible to get normalized coordinates of the reference markers from calibration? It seems like I've found them in calibration.calibration_data under ref_list, but the points don't make sense to me. More specifically, I don't understand why screen_pos changes so much. I assume, and it appears, that this is the position of the marker screen coordinate pixels, but I have values like [644.0690746307373, 454.7461643218994] and [644.1794700622559, 454.43712425231934] right after each other. Are these actually the same point?

user-81072d 09 October, 2018, 23:50:21

I think I figured out that screen_pos represents the marker's position in the world camera's view. Is there any way to retrieve the reference point's screen coordinate?

papr 10 October, 2018, 08:47:56

@user-81072d You are on the right track! All coordinates are in relation to the world camera's coordinate system. screen_pos is the position within the world frame in pixels (origin top/left). norm_pos is the same but having the values scaled between 0 and 1 in their respecitive dimensions. Additionally the y-axis is flipped. Therefore the origin of the normalized coordinate system is in the bottom/left of the frame.

You need surface tracking if you want gaze/calibration/reference data in relation to an actual screen.

user-81072d 10 October, 2018, 15:15:11

Thanks, @papr! We've been using surface tracking, but it's very shaky. Participants in the present study are stationary, so we're exploring how reliably we can track screen-gaze w/out surface tracking

papr 10 October, 2018, 15:16:31

@user-81072d @user-41f1bf has a surface tracker that detects screens instead of surface markers. I don't know how well that performs though.

user-81072d 10 October, 2018, 15:17:09

@user-41f1bf - have a github link? ^

mpk 10 October, 2018, 15:17:48

@user-81072d can you share a world recording? Surface tracking can be quite robust actually.aybe markers are wrong or to small?

user-81072d 10 October, 2018, 15:18:07

Sure, give me a few minutes

papr 10 October, 2018, 15:18:36

@user-81072d https://github.com/cpicanco/capture_plugins

user-41f1bf 10 October, 2018, 15:19:41

If you are using stationary and a white backgroud it is very stable.

user-41f1bf 10 October, 2018, 15:21:33

Actually, the tracker was tested more extensively on pupil player and I did not implement multi thread detection, so you player will block until all frames being detected

user-41f1bf 10 October, 2018, 15:22:43

https://github.com/cpicanco/pupil-plugin-and-example-data

user-41f1bf 10 October, 2018, 15:23:28

This is a simplified and more comprehensive version.

user-81072d 10 October, 2018, 15:36:40

Is there a way to display surface tracking in pupil player?

user-81072d 10 October, 2018, 15:40:12

The offline surface tracker is much more stable than the online appeared, but I don't see how to display the surface which was being tracked live. Maybe I can just screne-cap the world view window live

user-81072d 10 October, 2018, 15:56:46

Ok, the screen capture software didn't want to grab my full screen, so I just recorded the monitor on my cell phone. Not the best, but it illustrates the problem we're having with the surface tracker.

https://photos.app.goo.gl/TSm1cQaJ1jJmFAzb7

user-81072d 10 October, 2018, 15:57:44

The image in that album shows the setup I used to record those videos. The pupil tracker is completely stationary. The first video I recorded was with the lights on, but in the study, the room will be dark, so the second video has the lights off

papr 10 October, 2018, 15:59:20

@user-81072d are you referring to the debug window that shows the current content of the surface?

user-81072d 10 October, 2018, 16:02:07

Yeah

user-81072d 10 October, 2018, 16:04:31

The surface tracking debug window or the world view with surface tracking visualizations turned on. Anyway, I think you can see the shakiness in the videos I shared

papr 11 October, 2018, 10:10:37

@user-81072d Yes, this is available in Player as well

mpk 11 October, 2018, 10:13:46

@user-81072d I saw the recording and I think the reason is a 'funny' learning of the surface. Can you remove the surface and re-add it in Pupil Player?

mpk 11 October, 2018, 10:14:12

your setup should be very easy to track robustly.

user-81072d 11 October, 2018, 14:35:06

@mpk - I'd be happy to try that, but we see similar results on different machines. @papr - is the surface tracker in Player performing the tracking during playback, or is it playing-back tracking which occurred during recording? I know it's probably the same code at it's base, but the surface tracker in Player seems much more consistent/stable

papr 11 October, 2018, 15:08:40

@user-81072d The surface tracker uses the same logic for online and offline tracking. It does not play back the recorded surfaces.

user-81072d 11 October, 2018, 15:52:44

@papr - So is there any reason why Player seems to be so much more consistent tracking surfaces?

user-81072d 11 October, 2018, 15:54:36

I've noticed that it can be a little difficult to get all of the fiducials focused simultaneously. There's a very small range, and outside of that, it starts losing fiducials intermittently. When it accurately tracks all of them, it seems pretty consistent

mpk 11 October, 2018, 15:56:08

@user-81072d its not different machines. Just that if the surface is learned in a funny way it may help to remove and re-add the surface in Pupil Player after the fact.

user-81072d 11 October, 2018, 16:11:42

@mpk - right. I've tried adding/removing the surface a few times now, and it didn't seem to make a difference. It seems like it's losing a fiducial or two intermittently. I noticed that the ones it was losing seemed a little out-of-focus, and adjusting the focus seemed to help, but it's hard to keep all of the fiducials well-focused simultaneously. Maybe we need even bigger fiducials?

mpk 11 October, 2018, 16:12:23

@user-81072d if you have this many markers it should not matter if we loose one ore two intermittently. The surface should remain stable.

user-81072d 11 October, 2018, 16:20:12

@mpk - that's what I thought, which is why I started with as many as I did. Although if it loses one of the corner markers, the tracked surface skews. If it loses two corner markers, it skews even more. It's much more stable if we only track the four center markers in our configuration, since it never seems to lose those

user-2686f2 11 October, 2018, 17:03:31

I'm trying to run Pupil Capture from source. I've followed the extensive setup for Windows dependencies, but I'm getting an error when I run pupil_capture.bat. The stack trace is here: https://pastebin.com/wKj5XcPL

wrp 12 October, 2018, 04:46:57

Hi @user-2686f2 May I ask what you are doing that requires building from source? Can you achieve you goals by using plugins or subscribing to the IPC? I ask because building all dependencies on Windows is (as you experienced) very tricky. Here are some Notes: 1. Build pupil detectors and optmization_calibration independently to debug any dependency issues prior to running capture. Go to the dir pupil_src/shared_modules/calibration_routines/optimization_calibration/ and with python3 run python setup.py build and do the same for /pupil_src/shared_modules/pupil_detectors 2. Once you have ensured that pupil detectors and calibration modules are properly built, you should use run_capture.bat to run Pupil Capture

user-2686f2 12 October, 2018, 04:54:20

@wrp I plan on developing various plugins. I assumed I needed to build from source for that. If not, could you point me to some documentation that would get me started there? (I'd also like to change the file names of certain files when they are exported from Pupil Player, as a convenience measure. I wasn't sure if that could be done by a plugin).

wrp 12 October, 2018, 04:58:51

@user-2686f2 you can just run the app bundle and put your plugins in the pupil_capture_settings/plugins folder (found in your User folder). Please see: https://docs.pupil-labs.com/#plugin-guide

wrp 12 October, 2018, 04:59:24

Of course, building from source will provide you with even more access, but you can already get lots of access via IPC from a plugin.

user-4580c3 12 October, 2018, 05:01:37

@wrp I tried it on Windows 7.It was normal.

user-4580c3 12 October, 2018, 05:02:20

What is reason?

wrp 12 October, 2018, 05:02:59

@user-4580c3 is this question a reference to your discussion in the πŸ‘ core channel?

wrp 12 October, 2018, 05:03:09

Please provide some context @user-4580c3

user-2686f2 12 October, 2018, 05:03:47

@wrp When I try to run python setup.py build for the pupil_detectors, I get this error: error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.15.26726\bin\HostX86\x64\cl.exe' failed with exit status 2

wrp 12 October, 2018, 05:04:48

@user-2686f2 just to be sure, are you using x64 Native Tools Command Prompt for VS 2017 Preview?

user-2686f2 12 October, 2018, 05:06:09

I'm using x64 Native Tools Command Prompt for VS 2017 (no Preview, I have the full VS 2017 community edition installed)

wrp 12 October, 2018, 05:06:14

ok

wrp 12 October, 2018, 05:06:27

are all paths correctly specified in setup.py?

user-4580c3 12 October, 2018, 05:11:47

@wrp do you know TeamViewer? Im sorry but, Can you confirm by remote control?

user-2686f2 12 October, 2018, 05:13:39

@wrp Yes, all those paths are correct. Though one warrants clarification: /ceres-windows/Eigen. What should be immediately inside that folder? The documentation wasn't clear exactly what should have been copied there.

wrp 12 October, 2018, 05:18:09

@user-2686f2 let me double check that

wrp 12 October, 2018, 05:21:38

Eigen is directly copied into ceres-windows

wrp 12 October, 2018, 05:22:21
Unzip Eigen and rename the contained eigen directory to Eigen
Copy the Eigen directory _(e.g. the entire directory and its contents)_ into ceres-windows
user-2686f2 12 October, 2018, 05:25:31

@wrp Right, that's where I was unclear. The zip file is "eigen-eigen-67e894c6cd8f.zip", which extracts to a folder called "eigen-eigen-67e894c6cd8f" I was unclear if I should rename that folder to "Eigen" and copy all of it's contents, which include other folders, like bench, blas, cmake, and a folder called Eigen....should I just be copying this sub-folder Eigen, or the whole thing?

wrp 12 October, 2018, 05:35:56

@user-2686f2 here's the Eigen folder that is within ceres-windows

Chat image

wrp 12 October, 2018, 05:36:06

hope this helps

user-2686f2 12 October, 2018, 05:43:26

@wrp Yep, well, it clears that part of the documentation up. I've switched that out and re-built the ceres stuff. Unfortunately, I'm still getting the same error. However, I believe I've just fixed the problem.

user-2686f2 12 October, 2018, 05:47:03

@wrp I'm using VS 2017, the full version, not the Preview. Any new devs that try this are probably going to be using the full version. I don't know that I can even find an old copy of the VS 2017 Preview. This means I'm stuck using the MSVS 14.15, instead of the version 14.1 from the Preview. VS 2017 v15.8 is a new update that came out a week or so ago. I was getting the following error in the large output when I tried 'python setup.py build':

user-2686f2 12 October, 2018, 05:47:14

error C2338: You've instantiated std::aligned_storage<Len, Align> with an extended alignment (in other words, Align > alignof(max_align_t)). Before VS 2017 15.8, the member type would non-conformingly have an alignment of only alignof(max_align_t). VS 2017 15.8 was fixed to handle this correctly, but the fix inherently changes layout and breaks binary compatibility (only for uses of aligned_storage with extended alignments). Please define either (1) _ENABLE_EXTENDED_ALIGNED_STORAGE to acknowledge that you understand this message and that you actually want a type with an extended alignment, or (2) _DISABLE_EXTENDED_ALIGNED_STORAGE to silence this message and get the old non-conformant behavior.

user-2686f2 12 October, 2018, 05:48:26

I added this line "#define _ENABLE_EXTENDED_ALIGNED_STORAGE" to the following 3 files in the folder '/pupil_src/shared_modules/pupil_detectors': detector_2d.cpp detector_3d.cpp singleeyefitter/EyeModelFitter.cpp

user-2686f2 12 October, 2018, 05:48:41

Now it builds fine.

wrp 12 October, 2018, 05:48:55

Thanks just for the notes @user-2686f2

wrp 12 October, 2018, 05:49:21

We will update docs with this feedback. Please make a PR with suggested changes and we can test

user-2686f2 12 October, 2018, 05:49:31

Will do.

user-2686f2 12 October, 2018, 06:12:38

@wrp On last comment. I needed to install torch as well, which is absent from the documents. I found the wheel here: https://pytorch.org/get-started/locally/, downloaded the wheel and installed with pip. Now Pupil Capture and Pupil Player both launch fine from the .bat files.

wrp 12 October, 2018, 08:06:17

@user-2686f2 if you have time, could you make a PR to https://github.com/pupil-labs/pupil-docs/ with your changes?

user-b91aa6 12 October, 2018, 08:54:31

Question 2: How the maturity is computed? How the confidence is computed? How the performance is computed?

user-b91aa6 12 October, 2018, 08:54:35

@papr

user-2686f2 12 October, 2018, 17:39:18

@wrp I intend to make a PR, but I've run into an issue. 2 of the files I changed are .cpp files, which are auto generated by some cython code and so not in source control. I don't know cython well enough to ensure the correct change gets made. I planned on looking into it tonight.

papr 13 October, 2018, 09:00:09

@user-2686f2 Remove them and make sure that they will be ignored using .gitignore in the future. Auto-generated code does not belong into the repository.

papr 13 October, 2018, 09:01:53

@user-b91aa6 The red sphere are potentially new models while blue is the current model. New models are fitted if new pupil observations doe not fit the old model anymore, as it is the case in your screenshot.

papr 13 October, 2018, 09:04:05

@user-b91aa6 irt to question 2: what do you mean by performance?

mpk 13 October, 2018, 09:56:09

@papr I think he is referring to the 3d model performance in the debug window

user-2686f2 13 October, 2018, 18:22:35

@papr Yes, the two files in question are already in .gitignore. The problem is that a recent update to Visual Studio introduced a new bug. If those two files don't have a specific #define flag in them, then the .cpp files can't compile, breaking the build process. I've tried to understand the .pyx/cython code, but I don't understand them well enough to make them auto-generate the .cpp files with the necessary #define flag.

papr 15 October, 2018, 07:34:25

@user-2686f2 I am not sure if I understand. The cpp code is generated by Cython when setup.py is executed. It is based on the pyx files. Therefore the only files in the repository should be the pyx file and the cpp files should be deleted.

user-ea779f 15 October, 2018, 08:35:47

a short question: can i only get pupil diameter with 3d detection mode?

user-f1eba3 15 October, 2018, 08:35:56

yeah

papr 15 October, 2018, 08:36:31

@user-ea779f Do you mean in mm?

user-ea779f 15 October, 2018, 08:37:18

Chat image

user-ea779f 15 October, 2018, 08:37:46

the dia values aren't changing in 2d detection mode

user-ea779f 15 October, 2018, 08:38:04

but yes, in the end i want to get my pupil size

papr 15 October, 2018, 08:41:49

@user-ea779f pupil diameter in 2d mode is only measured in pixels and can therefore vary based on eye camera distance to the eye.

user-ea779f 15 October, 2018, 08:46:00

I see, thanks for your quick response. so the best way is using 3d detection mode and subscribing to u8"pupil"? then i should get the dia values which are in mm?

papr 15 October, 2018, 08:50:00

@user-ea779f The graphs only show diameter_3d which is in mm and only available in 3d mode. Please be aware that the values' accuracy is subject to 3d model fittness and cornea refraction which is not modelled by our software yet.

papr 15 October, 2018, 08:50:29

Yes, if you want realtime access to these values you need to subscribe to pupil

user-ea779f 15 October, 2018, 14:05:05

i do not need any calibration to just subscribe pupil for the diameter_3d, do i?

mpk 15 October, 2018, 14:06:58

@user-ea779f thats correct!

user-ea779f 15 October, 2018, 14:07:15

thanks!

user-2686f2 15 October, 2018, 19:41:27

@papr I am not trying to add the cpp files to the repository. I'm aware they don't belong there. I know the pyx files generate the cpp files. Because of the bug I mentioned, the cpp files that are generated need to have a new line of code in them. I don't know how to modify the pyx files so that the auto-generated cpp files include the necessary extra line of code.

papr 15 October, 2018, 20:19:32

@user-2686f2 Thank you for the clarification! Did you try to simply add the required #define line of code to the pyx file?

user-2686f2 15 October, 2018, 20:38:45

@papr I just tried, but it didn't do anything (I suspect because #define starts with #, which is just the comment character for python, so it's ignored).

papr 15 October, 2018, 21:01:38

@user-2686f2 ah correct. Could you try this? https://stackoverflow.com/a/5705865

user-2686f2 15 October, 2018, 21:06:07

@papr This is the line that needs to be added: "#define _ENABLE_EXTENDED_ALIGNED_STORAGE", which is not an integer constant, so that doesn't appear to work.

user-ec0ec0 16 October, 2018, 08:34:56

I'm using a diy eye camera. I can't get some of the listed resolution in eye process when there are several available resolutions with same first dimension(such as 1280x720 and 1280x480). I found that function frame_size() in uvc_backed.py only check the first dimension of frame size. Maybe we can check both the first dimension and the second dimension?

papr 16 October, 2018, 08:40:50

@user-ec0ec0 Please create a Github issue for that. Please also link the line of code that you are referring to.

papr 16 October, 2018, 10:58:09

@user-2686f2 Did you create this issue? https://github.com/pupil-labs/pupil/issues/1331

user-96755f 16 October, 2018, 12:28:28

Hi! I need some info. I'm going to work with the Pupil DIY project. I've notice that while the program is ok on Linux, there is an issue with the microsoft hd cam. It's not detected. So am I obliged to use Win10 or iOs? Thanks for the reply

user-3f0708 16 October, 2018, 15:08:14

Has anyone used the mouse_control.py script and had a satisfactory result regarding mouse movement?

user-d45407 16 October, 2018, 15:29:41

I have trouble getting it installed correctly. What steps did you take?

user-2686f2 16 October, 2018, 21:55:43

@papr No, but that is the same issue I'm trying to fix (or rather, have fixed, just don't know how to apply it to cython).

papr 16 October, 2018, 21:58:21

@user-2686f2 Could you please comment in the issue that you are affected by this. Would be nice to have an overview over the affected users.

user-2686f2 16 October, 2018, 21:58:43

@papr Can do. (github name is also StevCode)

user-2686f2 16 October, 2018, 22:07:15

@papr https://github.com/pupil-labs/pupil/issues/1331#issuecomment-430418074

user-ec0ec0 17 October, 2018, 05:38:13

Is there any way to detect two pupils in one frame? My eye cameras are on the same device and the device can only be used by one eye process. Any ideas? Thanks.

mpk 17 October, 2018, 06:55:03

@user-ec0ec0 I think the best way would be to stream the video to both eye processes and then use the ROI feature to crop the left/right region. The video backend would need to be changed for that.

papr 17 October, 2018, 06:57:10

@mpk @user-ec0ec0 one could use ndsi to stream one eye cam to both processes as you suggested. This does not require any changes. I will link an example later.

mpk 17 October, 2018, 06:57:21

nice idea!

papr 17 October, 2018, 14:00:24

@user-ec0ec0 https://github.com/pupil-labs/pyndsi/blob/master/examples/uvc-ndsi-bridge-host.py I was not able to test it yet, but this script opens one uvc camera and provides it via ndsi.

user-ec0ec0 18 October, 2018, 01:39:27

@papr Good job! Thank you! I'll try it.

user-52cbe2 18 October, 2018, 23:10:42

Hello. I'm trying to build a basic Python application that gets gaze positions in world coordinates in real time. Here are the steps:

user-52cbe2 18 October, 2018, 23:12:32
  1. I do a screen marker calibration in Pupil Capture (the calibration seems to be successful, no error messages). After the calibration, I keep Pupil Capture running
user-52cbe2 18 October, 2018, 23:15:44
  1. In my Python program, I initialize ZMQ like in the filter_messages.py program, then subscribe to pupil messages
user-52cbe2 18 October, 2018, 23:17:03
  1. I then keep reading messages off the queue (using recv and recv_string) and translate them using msgpack.loads. So far so good.
user-52cbe2 18 October, 2018, 23:19:29
  1. I suppose that to get world coordinates I should look at msg['norm_pos']. Is that correct? But when I repeatedly glance around the edges of my monitor (the same one I calibrated on), I get data that looks like:
user-52cbe2 18 October, 2018, 23:20:41

Chat image

user-52cbe2 18 October, 2018, 23:23:32

NaΓ―vely I expected the x and y coordinates of norm_pos to go from 0 to 1 (since I'm glancing around the monitor edges), but that doesn't seem to be the case, looking at this data.

user-52cbe2 18 October, 2018, 23:24:49

In fact, it looks like my calibration wasn't applied. Maybe it's using some previous calibration, or maybe I'm looking at raw data of the pupil position?

user-52cbe2 18 October, 2018, 23:26:10

My question is how can I do this very basic task? How do I calibrate, and then get calibrated data in world coordinates?

user-52cbe2 18 October, 2018, 23:48:54

Re-reading the documentation, I suppose that when you subscribe to 'pupil', you get positions in pupil coordinates, not world coordinates. So what do you subscribe to in order to get world coordinates? Is there any example?

wrp 19 October, 2018, 00:29:24

@user-52cbe2 subscribe to the gaze topic

user-52cbe2 19 October, 2018, 12:09:53

Thank you, @wrp.

user-52cbe2 19 October, 2018, 12:12:32

I now subscribe to 'gaze' messages. However, just doing a screen marker calibration in Pupil Capture, I run my Python program and look at msg['norm_pos'], it's still nowhere near where I'm looking.

user-52cbe2 19 October, 2018, 12:15:09

I know this because I display a dot at norm_pos (assuming that (0,0) is the lower left-hand corner and (1,1) the upper right-hand one), and this dot -- although it does move when I make eye movements -- is nowhere near where I'm looking (and the amplitude of the dot's jumps during my saccades is much smaller than my saccade amplitude).

user-52cbe2 19 October, 2018, 12:16:40

Could anyone tell me what I'm doing wrong? Is there some way I need to tell the system to apply my last calibration? Am I looking at the wrong message, or the wrong part of the message?

user-52cbe2 19 October, 2018, 12:16:46

Thank you.

user-324a3b 24 October, 2018, 10:52:29

@wrp Could you please any comment this issue?https://github.com/pupil-labs/pupil/issues/1208

papr 24 October, 2018, 10:54:01

@user-52cbe2 could you share the code with me? I could have a look πŸ™‚

wrp 24 October, 2018, 10:55:58

@user-324a3b perhaps @user-2686f2 could provide you with some notes regarding recent setup from src on Windows there are some changes that need to be made for recent versions of MSVC

wrp 24 October, 2018, 10:56:30

we bundle with an older version of MSVC - so we have not encountered issues that newer users are facing with newer versions of MSVC.

wrp 24 October, 2018, 10:57:03

So any notes on env changes to developer notes should be made as a PR to https://github.com/pupil-labs/pupil-docs/

user-52cbe2 24 October, 2018, 12:02:13

@papr Here is the code. First the pupil_tracker class:

user-52cbe2 24 October, 2018, 12:03:05

pupil_tracker.py

user-52cbe2 24 October, 2018, 12:03:33

And the program that tries getting the gaze data:

user-52cbe2 24 October, 2018, 12:07:27

gaze1.py

user-d45407 24 October, 2018, 17:02:48

I am looking for a way to export the pupil player as a video with where the person is looking as well. I can get the head mounted camera to export, but not the location of the eye. is there a way to do this?

papr 24 October, 2018, 17:34:13

@user-d45407 You might need to use offline calibration to generate gaze data. See the docs for details.

user-d45407 24 October, 2018, 17:47:49

I have the gaze data, I can't get it to convert to mp4. I used a screen recorder and just played the pupil play, but I would like a better solution.

papr 24 October, 2018, 17:50:04

Simply hit e or the export button on the left. If the video export launcher is enabled, it will export a mp4 video with the visualizations

user-d45407 24 October, 2018, 17:50:36

It currently only exports the world video.

papr 24 October, 2018, 17:51:25

Correct. We will release an eye video exporter with the next release

papr 24 October, 2018, 17:51:46

Sorry, I misread your initial comment

user-d45407 24 October, 2018, 17:52:29

its alright, thanks for your help!

user-911c89 25 October, 2018, 02:30:14

@papr Hello, I am trying to extract and view gaze positions in real-time at a very basic level using python. I believe the filter_messages.py script in the pupil_helpers repo should accomplish this (correct? https://github.com/pupil-labs/pupil-helpers/blob/master/python/filter_messages.py ) after un-commenting line 24. I place this file in the ./pupil_capture_settings/plugins folder and launch Pupil Capture but the Capture terminal stops after the third line (System Info). After using a KeyboardInterrupt the most recent call that shows up is: FIle "zmq\backend\cython\checkrc.pxd", line 12, in zmq.backend.cython.checkrc._check_rc. So it appears there is a back end error that must be occurring in the python scripts infinite loop? Any advice on this would be helpful.

wrp 25 October, 2018, 02:46:14

@user-911c89 Yes, the filter_messages.py script is the correct script to use to subscribe to different topics like gaze, pupil, notifications, and more. This is a script that is intended to be run independently and not as a plugin. It is not intended to be saved in the plugins folder. Instead, you should just start Pupil Capture and then run the filter_messages.py script in another terminal

user-324a3b 25 October, 2018, 08:37:46

@user-2686f2 Hi, did you use the VS 2017 community (not preview), and boost with 1_64_0-msvc-14.1.64.exe as shown as description?

user-d45407 25 October, 2018, 15:03:47

do you have a doc saying what will be in the next release?

user-d45407 25 October, 2018, 15:24:52

@papr thank you! also I was looking to recreate this: https://pupil-labs.com/blog/2014-07/pupil-player/

user-d45407 25 October, 2018, 15:25:23

but the heat surface doesn't change based on where I am looking.

user-d45407 25 October, 2018, 16:04:23

this is an example. the green dot is my eye, but the red surface doesn't change color.

Chat image

mpk 25 October, 2018, 16:34:37

@user-d45407 what needs to be changed is the surface size. (see submenue for that surface) then the heatmap will update and look better.

user-d45407 25 October, 2018, 16:40:14

ah, thank you! why does it not update as the video plays?

mpk 25 October, 2018, 16:41:17

It's an agregate of all gaze of the video so it should not change.

user-d45407 25 October, 2018, 16:42:14

is there a way to get it so it isn't an aggregate

user-3c03d9 25 October, 2018, 17:06:15

Hey guys, I just learned about Pupil and looking at its Github master branch I found a lot of header files and a few cpp ones, C++ files are only 15% of the repository. Looks like most of the low level stuff come from Eigen and Ceres, is that right? I'm aiming to integrate it with UE4 projects. Any advice?

papr 25 October, 2018, 17:07:40

@user-3c03d9 there has been previous work on that. Not sure if it was published already

papr 25 October, 2018, 17:08:42

On a similar note: You want to use our network interface to fetch data from Capture. See the Pupil Helpers repository for examples

user-3c03d9 25 October, 2018, 17:17:48

Thank you @papr , I'm aiming to track which in game object is the user looking at in order to get statistics. Maybe running the capture service and reading the data from an UE4 application using localhost. Is that a possibility?

mpk 25 October, 2018, 18:24:36

@user-3c03d9 thats more or less the idea. You can get all Pupil ang gaze data in realtime over localhost from Pupil Capture/Service.

user-3c03d9 25 October, 2018, 18:41:39

Thank you @mpk

user-d45407 25 October, 2018, 20:29:37

Hello, whenever I generate the fixations_on_surface files they are empty. Are they supposed to be that way or am I setting something up wrong?

user-d45407 25 October, 2018, 21:11:15

Never mind, I labeled the surface and everything came up.

user-96755f 26 October, 2018, 14:10:14

hello. i'm working on Ubuntu 18.04.1 , I've succeeded installing all the indipendencies. The player starts as well but eventually goes in "ghost mode". I'm using the diy kit. Webcams are listed as uknown and apparently are blocked or in use. What can I do?

papr 26 October, 2018, 14:11:28

@user-96755f make sure that your user is in the plugdev(?) group.

user-96755f 26 October, 2018, 14:12:07

ok I'll check. Should I restart after?

papr 26 October, 2018, 14:18:32

That should help, yes

user-96755f 26 October, 2018, 14:19:55

It works! Thanks a lot!

user-2686f2 27 October, 2018, 01:19:35

@user-324a3b @wrp Sorry for the late reply. I don't have a suggestion for this. I began with a clean install and have only installed the most up-to-date Visual Studio 2017 Community Edition. I don't have an older version of MSVC to contend with. (The folder C:\Program Files (x86)\Microsoft Visual Studio 14.0\ doesn't exist on my machine). I can only recommend uninstalling the Preview version and using the Community Edition.

user-2686f2 27 October, 2018, 01:20:17

@wrp I've done a pull request for updated Windows Dependencies for all the issues I ran into. https://github.com/pupil-labs/pupil-docs/pull/223

user-2686f2 27 October, 2018, 01:22:25

@papr @wrp With regards to actually being able to compile the source code, this is still an issue: https://github.com/pupil-labs/pupil/issues/1331, however the author closed it after I posted a comment about a work around.

user-2686f2 27 October, 2018, 01:23:13

I'd be happy to include the work around in an updated section of the Windows Dependencies docs, but I don't know how to actually fix the underlying issue.

wrp 27 October, 2018, 08:25:03

Thanks @user-2686f2 - I will review and test changes after the forthcoming release and look into resolving the issue for recent versions if msvc

user-324a3b 29 October, 2018, 00:56:10

@user-2686f2 Thanks for your reply. I will format windows and install the most up-to-date Visual Studio 2017 Community Edition. then I will be come back.

user-2686f2 29 October, 2018, 01:08:30

@user-324a3b I've updated the Windows Dependencies doc to include a few other issues I ran into while getting the source to run. My pull request won't be accepted until after the new release, so you can check it out here: https://github.com/pupil-labs/pupil-docs/blob/a3436b4fcd5fc9817c45b5e9e4b6115cbaa1432d/developer-docs/windows.md

user-324a3b 29 October, 2018, 04:47:15

@user-2686f2 Thanks for your kindness again. I re-installed windows 10 pro 64 bit and VS2017 community (not preview) after format. and I've followed carefully your revised instruction. I meet the problem when I input command 'python setup.py build'. the error detail is "do not detect the 'boost_python3-vc140-mt-1_64.lib'. because the boost generated 'boot_python3-vc141-mt-1_64.lib' in 'c:\work\boost\stage\lib'. when I faced with same the problem before, I revised the user-config.jam in boost, using msvc : 14.1 ; => using msvc : 14.0 ;. so boost generated the 'boost_python3-vc140-mt-1_64.lib' and I got the error " fatal error C1007: unrecognized flag '-Ot' in 'p2' " before. I do not revise the user-config.jam 14.1 -> 14.0 yet. How can I solve it? ps: I update from ceres-2015.sln to VS2017, I agreed the windows SDK version 10.0.17134.0. is it right?

user-324a3b 29 October, 2018, 04:47:22

Chat image

user-2686f2 30 October, 2018, 02:54:56

@user-324a3b Unfortunately, I'm not sure I can be much more help with this issue. I never had a problem with boost specifically, it just several other things that affected my build. I can say that my user-config.jam does have 'using msvc : 14.1;'.

user-2686f2 30 October, 2018, 02:55:47

In reply to your P.S., yes, I believe that's what I did.

user-911c89 31 October, 2018, 00:03:51

@papr @mpk we have an example script that publishes a notification to the IPC backbone and we can successfully receive that notification using the filter_messages.py script when running the two scripts via the terminal, however once we use this function inside Vizard, the whole program crashes on the "pub_port = req.recv_string()". Any ideas on why this may be? We have heard you guys are in the process of integrating with Vizard currently.

End of October archive