Pixel flickering when rendering point cloud on iPhone

I am rendering a 3D point cloud map from a LiDAR sending data from the host machine via ROS and I’ve tested it on Android, a Windows laptop and and an Iphone 12. On the Iphone I get these weird flickering pixels that appear like they are rendered right in front of the camera and it makes the viewing experience really poor. In addition to that, I’ve noticed sometimes when I zoom in on the the phone, the whole point cloud disappears until I zoom back out.

The host machine that is running the algorithm generating the point cloud is an NVidia Jetson Xavier AGX that has its own OS image based on Ubuntu 18.04.
My library version is 0.133.1.
Any ideas what might be causing these issues?

Can you reproduce the issue outside of your application? E.g. with this live demo?


It would be also helpful if you explain in more detail the expected and current behavior. I am not sure what you mean by “flickering pixels that appear like they are rendered right in front of the camera”. A video that shows the issue and the normal behavior would be a good start.

Hey, I tried the fiddle that you posted on my IPhone and it works as expected, no weird flickering or anything. Please check out this link for a short video of what the issue looks like. I am using ROSLib to interface with my LiDAR and get the data from ROS, the guys from RobotWebTools have also made a library which is more like a wrapper on top of three.js called ros3djs which I am currently using because it seems to already have a built-in ability to handle point clouds coming in from ROS. I believe the video should give you a better idea of what the “flickering” I am talking about means, I am kinda new to all things webGL and 3d rendering so if you need more info please tell me I’d be happy to try and elaborate

I can’t watch the video without an account. Can you please make the video public?

Hey, sorry, I had to give it a rating on vimeo to be able to watch it without an account, try now please

Geez! That looks indeed buggy. But frankly I have not idea so far what could be the root cause for this issue (except of a GPU driver or Webkit bug).

What version of iOS does your iPhone use?

Is it possible to access your app via a live link?

Indeed it does haha! My iOS version is 15, I am not entirely sure if I’d be able to get a live page going quickly, since right now I am streaming the point cloud data over websocket from another machine in the office that is running ROS locally and also hosting the webapp, I will try to think if there is a way for me to sketch something out quickly, but my initial guess is it’s probably something to do with ros3djs code, because the fiddle you sent earlier with just pure three.js code works fine on my iPhone

I’m afraid we won’t be able to fix this unless you can reproduce the glitch with a simplified live example. If it turns out to be a WebKit bug, you need such a test case in any event.

Yea it makes sense, I will do my best to find the time next week to get a working demo of it