I have an alembic in which the point number changes per frame and I want to store in each point an attribute via Python.

Using the attr.data.foreach_set() gives me good results if the point number is constant during time, but once that changes, the attribute seems to appear only in the geometry node spreadsheet of the original object, not the evaluated one.

enter image description here enter image description here

Just to be clear, I'm reading an alembic from disk:

enter image description here

  • $\begingroup$ If you store attribute in original mesh, but then the mesh is replaced by a modifier, then the attribute is lost. $\endgroup$ Commented Feb 3 at 1:20
  • $\begingroup$ @MarkusvonBroady and there is no way to store it after the modifier? $\endgroup$
    – Artichoke
    Commented Feb 3 at 7:18
  • $\begingroup$ Yes there is - using another geonodes modifier that stores them. Geonodes could read data from a separate mesh for example. $\endgroup$ Commented Feb 3 at 9:39

1 Answer 1


If you want to add data on top (logically after; actually below, as seen in the Properties panel) of a modifier, you need to do it with another modifier, "dynamically". You can do so with Geometry Nodes, but question is, where do you read this data from. If it's arbitrary data, you can just store it on another mesh. Here's an example of Suzanne, which loads vertex color from a plane nearby - so you can arbitrary color the plane and see it affect the Suzanne. If you directly painted on the Suzanne, you would be able to control only the original vertices, before subdivision.

Suzanne is the original monkey with a vertex-color attribute named Color, a Subdivision Surface modifier and a Geometry Nodes modifier:

Keep in mind a simple Data Transfer modifier would do:


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .