ParametricPlot3D[{Cos[t](2+Sin[s]),Sin[t](2+Sin[s]),s},{t,0,2 Pi},{s,0,2 Pi}]

ParametricPlot3D[{Cos[t](2+(s^2)),Sin[t](2+(s^2)),s},{t,0,2 Pi},{s,-1,1}]

ParametricPlot3D[{Cos[t](2+Cos[s]),Sin[t](2+Sin[s]),s},{t,0,2 Pi},{s,0,2Pi}]

ParametricPlot3D[{Cos[t](2+Cos[s]),Sin[t](2+Sin[s]),Cos[s]},{t,0,2 Pi},{s,0,2Pi}]

ParametricPlot3D[{Cos[t](3+Sin[s]),Sin[t](3+Sin[s]),Cos[s]},{t,0,2 Pi+0.001},{s,0,2 Pi+0.001},PlotPoints->{128,128},Mesh->{Range[0,2 Pi,(Pi/12)],Range[0,2 Pi,(Pi/12)]},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-5,5],Range[-5,5],Range[-5,5]}]

Manipulate[ParametricPlot3D[{Cos[t](3+Sin[s]),Sin[t](3+Sin[s]),Cos[s]},{t,0,2 Pi+0.001},{s,0,ss+0.001},PlotPoints->{128,128},Mesh->{Range[0,2 Pi,(Pi/12)],Range[0,2 Pi,(Pi/12)]},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-5,5],Range[-5,5],Range[-5,5]}],{{ss,Pi},0.1,2Pi},ControlPlacement->Top]

Manipulate[ParametricPlot3D[{Cos[t](b+a Sin[s]),Sin[t](b+a Sin[s]),a Cos[s]},{t,0,2 Pi+0.001},{s,0,2 Pi+0.001},PlotPoints->{64,64},Mesh->{Range[0,2 Pi,(Pi/12)],Range[0,2 Pi,(Pi/12)]},PlotRange->{{-5,5},{-5,5},{-3,3}},Ticks->{Range[-5,5],Range[-5,5],Range[-5,5]}],{{a,1},0.1,2},{{b,2},1,3},ControlPlacement->Top]

Now I will show how the unit sphere is transformed into a torus

Manipulate[ParametricPlot3D[{((2.9/Pi)Min[b,Pi]+Sin[s])(Cos[t]),((2.9/Pi)Min[b,Pi]+Sin[s])(Sin[t]), Cos[s]},{t,0,2 Pi+0.01},{s,0,Max[Pi,b]+0.01},PlotPoints->{64,64},Mesh->{Range[0,2 Pi,(Pi/16)],Range[0,2 Pi,(Pi/16)]},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-6,6],Range[-6,6],Range[-6,6]},FaceGrids->{{0,0,1},{0,0,-1}},ImageSize->400],{b,0,Pi+Pi,(Pi/8)},ControlPlacement->Top]

Manipulate[ParametricPlot3D[{((2.9/Pi)Min[b,Pi]+Sin[s])(Cos[t]),((2.9/Pi)Min[b,Pi]+Sin[s])(Sin[t]), Cos[s]},{t,0,2 Pi+0.01},{s,0,Max[Pi,b]+0.01},PlotPoints->{64,64},PlotStyle->{Opacity[0.75]},Mesh->{Range[0,2 Pi,(Pi/16)],Range[0,2 Pi,(Pi/16)]},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-6,6],Range[-6,6],Range[-6,6]},FaceGrids->{{0,0,1},{0,0,-1}},ImageSize->400],{b,0,Pi+Pi,(Pi/8)},ControlPlacement->Top]

As we move the meridians away from the z-axes we can extend the range of s as to cover more of the circle:

Manipulate[ParametricPlot3D[{((2.9/Pi)Min[b,Pi]+Sin[s])(Cos[t]),((2.9/Pi)Min[b,Pi]+Sin[s])(Sin[t]), Cos[s]},{t,0,2 Pi+0.01},{s,-ArcSin[Min[b,1]],Pi+ArcSin[Min[b,1]]+0.01},PlotPoints->{64,64},PlotStyle->{Opacity[0.75]},Mesh->{Range[-Pi,2 Pi,(Pi/16)],Range[-Pi,2 Pi,(Pi/16)]},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-6,6],Range[-6,6],Range[-6,6]},FaceGrids->{{0,0,1},{0,0,-1}},ImageSize->400],{b,0,Pi+Pi,(Pi/8)},ControlPlacement->Top]

b=0.999;ParametricPlot3D[{(Min[b,Pi]+Sin[s])(Cos[t]),(Min[b,Pi]+Sin[s])(Sin[t]), Cos[s]},{t,0,2Pi},{s,-ArcSin[Min[b,1]],Pi+ArcSin[Min[b,1]]},PlotPoints->{64,64},PlotStyle->{Opacity[0.75]},Mesh->False,PlotRange->{{-2.4,2.4},{-2.4,2.4},{-1,1}},Ticks->{Range[-6,6],Range[-6,6],Range[-6,6]},ImageSize->400]

Curves on surfaces

On each surface we can identify interesting curves.

This is a helix on a vase:

Show[ParametricPlot3D[{Cos[t](2+Sin[s]),Sin[t](2+Sin[s]),s},{t,0,2 Pi},{s,0,2 Pi},PlotStyle->{Opacity[0.5]}],ParametricPlot3D[{Cos[s](2+Sin[(s/2)]),Sin[s](2+Sin[(s/2)]),(s/2)},{s,0,4 Pi},PlotStyle->{RGBColor[0,0,0.5],Thickness[0.01]}]]

Show[ParametricPlot3D[{Cos[t](3+Sin[s]),Sin[t](3+Sin[s]),Cos[s]},{t,0,2 Pi+0.001},{s,0,2 Pi+0.001},PlotPoints->{128,128},Mesh->{Range[0,2 Pi,(Pi/12)],Range[0,2 Pi,(Pi/12)]},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-5,5],Range[-5,5],Range[-5,5]},PlotStyle->{Opacity[0.5]}],
ParametricPlot3D[{Cos[(t/5)](3+Sin[t]),Sin[(t/5)](3+Sin[t]),Cos[t]},{t,0,10 Pi+0.001},PlotPoints->{128,128},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-5,5],Range[-5,5],Range[-5,5]},PlotStyle->{RGBColor[0,0,0.5],Thickness[0.01]}]]

w=4;Show[ParametricPlot3D[{Cos[t](3+Sin[s]),Sin[t](3+Sin[s]),Cos[s]},{t,0,2 Pi+0.001},{s,0,2 Pi+0.001},PlotPoints->{128,128},Mesh->{Range[0,2 Pi,(Pi/12)],Range[0,2 Pi,(Pi/12)]},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-5,5],Range[-5,5],Range[-5,5]},PlotStyle->{Opacity[0.5]}],
ParametricPlot3D[{Cos[(t/w)](3+Sin[t]),Sin[(t/w)](3+Sin[t]),Cos[t]},{t,0,2*w* Pi+0.001},PlotPoints->{128,128},PlotRange->{{-4,4},{-4,4},{-1,1}},Ticks->{Range[-5,5],Range[-5,5],Range[-5,5]},PlotStyle->{RGBColor[0,0,0.5],Thickness[0.01]}]]