without seeing how you obtain the normals it is hard to imagine where the error is in your script. I would suggest to
ShrinkTrimmedSrf your geodesic sphere first, then run this script on the polysurface without exploding:
BrepFaceNormals.py (1.6 KB)
It creates some lines with arrowheads pointing in the normal direction of every face in the polysurface (brep). I’ve also commented out some code to show how to create the extrusions using these lines.
To see where a potential error is with obtaining the normal of every surface in the brep, run the above script on your geodesic sphere without using
ShrinkTrimmedSurface before. It should mess things up.