4. Wheel

enne1[u_, v_, 
        n_] := 
{u - Sin[n]*v*Sin[v] + 
          u v^2, 
v - Cos[n]*u*Cos[v] + 
          v u^2, 
v*Sin[u]*
          Cos[v]*(3 - Cos[u]*Sin[v])}

Table[
        g1 = ParametricPlot3D[
            Evaluate[
              enne1[u, v, Sin[n]]], 
{u, - .5 Pi,  .5  
                Pi}, {v, - .5 Pi,  .5  
                Pi}, 
BoxRatios -> {1, 
                1,  .5}, 
Axes -> 
              True, 
Boxed -> 
              True, 
DisplayFunction  ->  
              Identity], 
{n, -Pi, -Pi, 
          Pi}];

enne2[u_, v_, 
        n_] := 
{u - Sin[n]*v*Sin[v] + 
          u v^2, 
v - Cos[n]*u*Cos[v] + 
          v u^2, 
-v*Sin[u]*
          Cos[v]*(3 - Cos[u]*Sin[v])}

Table[
        g2 = ParametricPlot3D[
            Evaluate[
              enne2[u, v, Sin[n]]], 
{u, - .5 Pi,  .5  
                Pi}, {v, - .5 Pi,  .5  
                Pi}, 
BoxRatios -> {1, 
                1,  .5}, 
Axes -> 
              True, 
Boxed -> 
              True, 
DisplayFunction  ->  
              Identity
], 
{n, -Pi, -Pi, Pi}];

wheel = 
Table[
          Show[
g1, 
            g2, 
SphericalRegion -> 
              True, 
BoxRatios -> {1, 
                1,  .1 + 
                  Sin[m/2]}, 
ViewPoint -> 
{2.6  Sin[ .25  m], 2.6  Cos[ .25  m], 
                1}, 
LightSources -> 
{{{-1,  .5,  .5}, 
                  RGBColor[ .1*m/(2*Pi), 
                    1,  .1]}, 
{{-1,  .3, 
                    m/(2*Pi)}, 
                  RGBColor[ .5, 0, 1]}, 
{{ .5, 0,  .1}, 
                  RGBColor[ .3,  .1 m/(2*
                            Pi),  .5]}}, 
AmbientLight  ->  GrayLevel[ .4], 
Background  ->  
              GrayLevel[ .9], 
Axes -> 
              False, 
Boxed -> 
              False, 
DisplayFunction  ->  $DisplayFunction], 
{m, 0, 
            2  Pi -  .25  Pi,  .25  
              Pi}];