Here's another just for the Geometry Nodes. :)
The tree is a bit too big for a single screenshot, so the file is below.
The main part of the body is here:
The idea for the body is to scatter points on the input mesh, and then remesh using the points to volume node. From there, it is simply assembly from instances and curve primitive nodes.
Here is the hat:
In 3.1 the curve parameter seems to have been replaced by spline parameter.
Here are the rest of the frames that complete the node tree:
click to enlarge
And this is the complete tree. click to enlarge
Here's the file to play with: