How do you group a collection of points before/after a Copy POP?

Hi everyone, I’m working with POPs and trying to get unique IDs for elements generated by Copy POP.

  1. I create two spheres (green/red) using Point Generator POP and assign colors via Attribute POP.
  2. I merge these into a single object.
  3. Then use a Copy POP to instance the object multiple times. (See attached images for setup).

What’s the best method to generate and transfer a unique ID attribute from the template so that it transfers to the new copies.


Hello, there are a couple different ways:

-on the template page of the copy POP there is a TemplateId parameter, which will add a TemplateId attribute to Points/Verts/Prims of the copies

There’s a similar parameter for a CopyId on the first page (you can have multiple copies on each template points, or copies only)

-you can also use the _DimI built-in attribute, for a full explanation of Dimensions see

Demonstrated in the toe file with a mathCombine POP, this should also work with a Math POP (or other POP supporting built-in attributes) but just noticing it’s currently broken, we will fix it.

-Last but not least you can copy any attribute from the template geometry using the template attributes page on the copy POP, however also noticing this is currently broken, we will fix it.

Let us know if that’s what you were looking for!

CopyTemplateId.3.toe (6.2 KB)

Oooooh okay. So the templateID gives each point a number based on the index of the copy template point its assigned to!

That makes sense, I didn’t realize that because only so many rows showed up in the Pop To DAT, I never saw templateID go over 0. :face_in_clouds:

Thanks @vincentDev

With this functionality, can Copy POPs replace traditional geometry instancing? When does it make sense to Geo Instance vs Copy POP?

You’re welcome, by default each point in each copy gets the same Id, depending what you’re doing with it you could choose Primitive in the menu, saves a bit of memory since each copy has fewer primitives than points. You’d see it change faster in POP to DAT, looking at primitive attributes

Instancing uses less GPU memory, since the geometry is not actually copied but only rendered multiple times, so unless you’re processing the copies further in POPs, it’s recommended to use instancing - or if you have plenty of memory to spare or the geo you’re copying is light and memory is less of a concern.

A bit of a different, more advanced case related to copies would be if you were using the GLSL Copy POP to do custom deformations per copy, that’s something you could as well with a GLSL MAT vertex shader, however using the GLSL Copy POP allows you to use the generic MATs instead of having to customize each MAT with the vertex deformation, so even if less efficient, useful for prototyping and look dev.

The GLSL Copy sounds interesting. Thank you!