I wanted to stick transforms on a mesh, and I was curious about the fastest solution in vanilla maya (no plugins). I was only interested in position, not orientation, as in my situation getting orientation from normals could be a bit unpredictable. Maya’s finally got a pointOnPoly node but interestingly it was the slowest solution. The old fallback was using follicle nodes, which is also slow. I didn’t try an old rivet script, which from memory uses quite a bit of history to convert edges to curves and such. To benchmark these I used a default polySphere with a locator set to follow every vertex, 382 in total. Interestingly, the best results are with one big expression running a bunch of pointPosition commands.
This is in Maya 2015:
pointOnPoly: 11.86 fps
pointOnPoly, disconnect rotate: 12.78 fps
Follicle: 16.31 fps
Expression per transform: 27.38 fps
One big expression: 38.33 fps
Is there a better solution for doing this?