I used a chord height calculation to work out the handle and scallop bits (matching tangents), and also for the upper curve. It's not quite an exact mesh when combining the upper surface with the fillets, but my eyeballing of the model suggests that it's not worth it to do the tangent matching for that as well.
The created models are for 5 arms, but it can be modified within OpenSCAD. It seems to work with fairly high arm counts, but there's a bit of playing round needed with the scallop depth and arm width to get it looking right.
Four different styles are available:
Inspired by an OpenSCAD mailing list problem posed by Thomas Richter.
The author marked this model as their own original creation.