My smooth brain can’t seem to find a way to model it as one element through grasshopper to get the shape to accurately follow the outside curves. It has currently been modelled from 2 pieces: The top part a sweep2 and the bottom part sweep 1 that I then trimmed down with the outline curves. You’ll notice from the screenshot that the shape doesn’t quite follow the curves and is causing issues in my script.

Is there any other way I could model this as a seamless shape that somehow would be a lot more accurate and follow the outline curves?

@Birk_Binnard you were right! I was overcomplicating the whole script. Thanks so much for the neat solution.

One additional thought, because I will only use half of the shape I was wondering if it might be possible to alter the shape even further?
Ideally I would like the half tear to be a bit softer where it meets it’s half cut edge, if that makes sense? I can try and explain a bit better with diagram if that might help?

I don’t know what you mean by “a bit softer”. But be aware that there are only 2 things that determine the final shape: the shape of the curve that forms the surface of revolution, and the amount of scaling in the X direction. Those are really the only 2 things you can tweak to make the final shape different.

The GH script would be even simpler if your base curve had been defined at the origin. With GH it is always best to start at the origin if at all possible. Your base curve could be generated by individual points in the XZ plane, or it could be made some other more complicated way like connected circular arcs or some elegant equation. It all depends on what it is you are trying to achieve.