Capped cylinder, quick and simple.
sync on
sync rate 60
backdrop on
autocam off
position camera 0, 0, -25
make object sphere 1, 10, 3, 30
make mesh from object 1, 1
delete object 1
lock vertexdata for mesh 1
vertcnt = get vertexdata vertex count()
for i=0 to vertcnt-1
set vertexdata position i, get vertexdata position x(i), 0, get vertexdata position z(i)
next i
unlock vertexdata
make object cylinder 1, 10
add limb 1, 1, 1
scale limb 1, 1, object size x(1)*360.0/31.0, 100, object size z(1)*360.0/31.0
offset limb 1, 1, 0, -5, 0
add limb 1, 2, 1
scale limb 1, 2, object size x(1)*360.0/31.0, 100, object size z(1)*360.0/31.0
offset limb 1, 2, 0, 5, 0
delete mesh 1
do
xrotate object 1, wrapvalue(object angle x(1)+1.0)
sync
loop