How to apply an object's modifiers *after* it is used as a particle?

I want to place some objects seamlessly on another. I used the second technique described here (at 5m 53s):

So far so good, but I want to place dozens of them as particles. So I create a particle emitter, use the whole group as the particle, set up the correct rotation aaand… it doesn’t work. The modifiers are processed on the main object, before the particles are emitted, so the resulting emitted particles do not deform themselves to the surface as they should; instead, they all copy the modifiers of their prototype object already applied.

Is there to eat my cake and still have it? Preferably without applying the particle modifier.

The modifier has a convert button which doesn’t remove the particle system, so with a bit of organization it’s not that big of a workflow issue if more or less particles are needed. But that’s not the biggest problem with the setup.

Objects consist of object data, which is mesh in this case. Modifiers belong to the object but they modify object data.

Particle system duplication uses instancing which references the whole object, and is the reason why the setup doesn’t work for you. Making duplicates real or converting the particle system would give separate objects which share object data (linked duplicate) that is needed for the modifiers to modify each differently, and point to different deform objects.

The problem with that is the surface deform modifier that doesn’t get its corresponding deform plane assigned in the modifier, and the surface deform needs to be bound to that object geometry. Neither of those things can be done for multiple objects at a time with the interface tools, which means you would have to go through them with python.

So basically what you’re saying is that I can do this with a custom addon? Was considering starting coding for Blender sooner or later, might as well start here.