selladiscimmia[u_,v_]:={u,v,u^3-3u*v^2}

paraboloideiperbolico[u_,v_]:={u,v,u*v}

ParametricPlot3D[{(1+v/2*Cos[1/2*u])*Cos[u],(1+v/2*Cos[1/2*u])*Sin[u],v/2*Sin[u/2]},{u,0,2*Pi},{v,-1,1}]

ParametricPlot3D[{(1+v/2*Cos[1/2*u])*Cos[u],(1+v/2*Cos[1/2*u])*Sin[u],v/2*Sin[u/2]},{u,0,2*Pi},{v,-1,1}, Mesh->None, BoxRatios->{1,1,1}, Boxed -> False, Axes -> False]

iper1flsta[u_,v_] := {Cosh[v]Cos[u],Cosh[v]Sin[u], 2*Sinh[v]}

toro[u_, v_]:={Cos[u] (2+Cos[v]),Sin[u] (3+Cos[v]),Sin[v]}

toretto[a_,b_][u_,v_] :={Cos[u]*(a+Cos[v]), Sin[u]*(b+Cos[v]), Sin[v]}

ParametricPlot3D[paraboloideiperbolico[u,v], {u,-3,3},{v,-3,3}, PlotStyle -> {RGBColor[0.79,0.62,0.6], Opacity[.7]}, PlotRange->5]

ContourPlot3D[x^2+y^4== z^4, {x,-10, 10}, {y, -10, 10}, {z, -4, 4}]

ParametricPlot3D[selladiscimmia[u,v],{u,-1,1}, {v,-1,1}]

sfera[u_, v_] := {Sin[u]Cos[v],Sin[u]Sin[v], Cos[u]}

pt[x_][u0_,v0_][u_,v_]:=x[u0,v0]+D[x[uu0,vv0],uu0]*u+D[x[uu0,vv0],vv0]*v /. {uu0->u0,vv0->v0}

pianotangente[sigma_][u0_,v0_][u_,v_] := sigma[u0,v0]+D[sigma[uu,vv], uu]*u+D[sigma[uu,vv],vv]*v /. {uu-> u0,vv-> v0}

unitnormal[sigma_][u_,v_]:=Block[{xu,xv,N1},
xu=D[sigma[uu,vv],uu];
xv=D[sigma[uu,vv],vv];
N1=Cross[xu,xv];
Return[FullSimplify[N1.N1]^(-1/2)*N1 /. {uu->u,vv->v}];
]

Show[{
ParametricPlot3D[sfera[u,v],{u,0,Pi},{v,-Pi,Pi}],
ParametricPlot3D[pianotangente[sfera][Pi/7,-Pi/4][u,v],{u,-.4,.4},{v,-.4,.4},Mesh->None]
}]

Show[{ParametricPlot3D[toro[u,v], {u, 0, 2Pi}, {v, 0, 2Pi}, PlotStyle -> Opacity[.3]],
ParametricPlot3D[pianotangente[toro][Pi,Pi][u,v],{u,-.8,.8},{v,-.8,.8},Mesh->None]
}]

Show[{
ParametricPlot3D[sfera[u,v],{u,0,Pi},{v,-Pi,Pi}, PlotRange->1.5, PlotStyle->{Blue, Opacity[.3]}], Graphics3D[Arrow[{sfera[Pi/3,-Pi/5],sfera[Pi/3,-Pi/5]+unitnormal[sfera][Pi/3,-Pi/5]/2}]],
ParametricPlot3D[pianotangente[sfera][Pi/3,-Pi/5][u,v],{u,-.4,.4},{v,-.4,.4},Mesh->None],Graphics3D[Arrow[{sfera[0,-Pi/5],sfera[0,-Pi/5]+unitnormal[sfera][0.00001,-Pi/5]/2}]],
ParametricPlot3D[pianotangente[sfera][0.00001,-Pi/5][u,v],{u,-.4,.4},{v,-.4,.4},Mesh->None]
}]