Build up a POP point cloud from multiple frames of iPhone lidar scans

Hey folks, I’m playing with POPs to create point clouds from “Lidar” scans with the iPhone Pro using the app “StrayScanner”.

So far I’m able to bring in all the data (depth, color, confidence) along with the camera position using TOP to POP and attributes, which is great!

What I’d like to create next is a “builder” interface that would have a slider to scrub through the timeline and a button to “add points” from particular frames of the scan, to build up a “master” POP of the entire scene.

I’ve played so far with the cache and merge POP, but this doesn’t feel like a scalable solution. I also have a python script that can do this, sampling every n’th frame and outputting a .ply file, which I could bring in via a DAT. I could probably also build it up using POP to DAT that gets appended with new data. But I’d like to make it with POPs if possible!

Any ideas here would be appreciated… thnx!

Hello @michaeljohnson.tv
I’m not sure if this approach will scale for your use case, but one simple way to accumulate points over time is by inputting point clouds into a Particle POP. You need to set a high maximum number of particles and a long life expectancy. A birth attribute should determine when particles are emitted.

PointCloudAccumulation.toe (6.5 KB)

thanks @Guillaume.L this was helpful and gave me some other new ideas also

Are you building one big ply file from parts of point clouds originating from single frames of your iPhone stray scanner app?

Assuming you get good world-space values of points using the camera info, you may want to select chunks of the point clouds using the Field POP ,and hten merge them together - I’m just guessing.

Hi @greg you’re in the right ballpark :slight_smile: I’m trying to create the “big PLY” directly in POPs by selecting individual frames from the scanner data (depth and colour images via TOPtoPOP) and adding the points from that frame to a “master POP”, one frame at a time. (yes, the scanner app outputs good world-space camera data (x-y-z qx-qy-qz-qw))

I was looking for ways to “accumulate” points in POPs. Thanks to @Guillaume.L for the example, I played with it some more and came up with another method - a pulsed Feedback POP feeding a Merge. I can then hit 1 on the keyboard to add points! (and unlike the particle example, it stays as a POP so I can do more operations to it downstream). I’ve attached the updated toe here.

PointCloudAccumulation-FeedbackMerge.toe (7.0 KB)

Another idea came out of this:

  • would it make sense to have a “Pulse” button on the Feedback POP? This example uses a 1-frame trigger signal to drive the “Play” parameter but might be nice to have a Pulse also.

Thanks for the help and ideas.

Yes a pulse beside the Play to guarantee only 1 frame is accumulates would be useful… we’ll see.

Another avenue… The Cache POP can hold a bunch of point clouds, you can pulse adding a new snapshot to the set, and you can craft which parts of which cached frames that you select out to build your master point cloud. Though it’s similar to using a bunch of Point File In POPs. i.e. if you make a mistake, you can adjust your blend.

Use Cache Select to puck a snapshot, trim it down all you wnt, and merge it to the final.

1 Like