How to make shape-keyed particles behave independently?

Let's say we have a mesh object with a Shape Key deformation, and it's driven by a Driver based on its distance from an Empty. It works as expected. But then if we want to make a Particle System of that mesh object, the particles won't respond independently based on their individual distances from the Empty, because they share the same mesh data.

We can Make Instances Real (to make the particles into their own objects), and then Make Single User - Object & Data (so each will have their own mesh data). But the Driver data remains unchanged, still based on the distance between the Empty and that first original particle mesh object.

To make each (now single-user) mesh respond to the Empty, it was necessary to select the object's name (...005), and type a unique variable name - twice per Shape Key, per mesh!

What I want is for each particle to "think for itself" and be driven according to its own distance from the Empty. This way the Empty will have a sweeping effect as it passes near the particles. Here is an example, although I prepared it by updating each particle mesh's driver data by manually typing it in - the impracticality becomes obvious once dealing with any substantial number of "particles" (technically they're not particles anymore at this point):

Is there a way to make them all unique using Python scripting? Or maybe with Animation Nodes or Geometry nodes? I am open to various approaches. Thanks.

• While I'm not interested in developing a full answer here, one option for the situation you've described might be do it in material nodes, by baking your shapekey to a .exr object-space vector displacement map, and then using true displacement. Feb 25 '21 at 17:57
• @Nathan That's an interesting idea as a workaround. I do have doubts about how practical it would be to set up each time I want to use Shape Keys on particles. Nonetheless, I like that you're thinking outside the box. I'll keep it in mind and perhaps play with that if no other solutions arise. It's possible that some interesting displacements could come from playing with and mixing the colors. Thanks for the suggestion! Feb 26 '21 at 4:11
• Yeah, I think it'd be more practical than scripting or animation nodes for a single shapekey and a single set of particles, but for multiple shapekeys or multiple instances, it would probably fall behind. One of the reasons I wasn't interested in developing a full answer is because it's not really clear how much this example actually represents your end goal. Feb 26 '21 at 4:26
• @Mentalist Hi. With the help of Animation Nodes, you can make each particle independent with its shapekeys: blender.stackexchange.com/a/168007/62606 Feb 28 '21 at 17:13
• @3DSinghVFX Thank you!!! That may be exactly what I need. I look forward to trying it out very soon. Mar 1 '21 at 14:51