Surfaces & subdivision curves

1. Find a transition surface with border curves (Subscript[a, 0])(v) ={-2+(v^2),-v,2 v}, v ∈ [1,3], (Subscript[a, 1])(v) = {2 v,1+(v^2),(v/3)+(v^2)}, v∈ [-1,2].

2. Consider a control mesh mesh1.
a) Plot a Bezier surface (Subscript[f, 1])(t,s) given by the control mesh. What is the degree of the surface?
b) Plot a B-Spline surface (Subscript[f, 2])(t,s) of degree (2,3) given by the control mesh and knot vectors {0,0,0,1/2,1,1,1} and {0,0,0,0,1/2,1,1,1,1}
c) Plot a B-Spline surface (Subscript[f, 3])(t,s) of degree (2,2) given by the control mesh and knot vectors {0,0,0,1/2,1,1,1} and {0,0,0,1/4,3/4,1,1,1}
d) Plot a NURBS surface (Subscript[f, 4])(t,s) of degree (2,2) given by the control mesh, knot vectors {0,0,0,1/2,1,1,1} and {0,0,0,1/4,3/4,1,1,1} and some weights.

mesh1= Transpose[{{{0,-2,1},{0,-1,1},{0,0,1},{0,1,1}},{{1,-2,1},{1,-1,1},{1,0,1},{1,1,1}},{{2,-2,1},{2,-1,1},{2,0,1},{2,1,1}},{{3,-2,1},{3,-1,1},{3,0,1},{3,1,1}},{{4,-2,1},{4,-1,1},{4,0,1},{4,1,1}}}+Table[Table[{RandomReal[{-0.2,0.2}],RandomReal[{-0.2,0.2}],RandomReal[{-1,1}]},{i,1,4}],{j,1,5}]];
MatrixForm@mesh1

3. Use DeCasteljau algorithm to find a point B((1/2),(2/3),) on a Bezier surface B of degree (3,3) with a control mesh mesh2.

mesh2=Table[Table[{RandomReal[{j-0.2,j+0.2}],RandomReal[{i-0.3,i+0.3}],RandomReal[{-1,1}]},{i,0,3}],{j,0,3}];
mplot=Show[Graphics3D[{Blue,Thick,Table[Line[mesh2[[i]]],{i,1,4}]}],
Graphics3D[{Green, Thick,Table[Line[mesh2[[All,i]]],{i,1,4}]}],
Graphics3D[{PointSize[0.02],Point[Flatten[mesh2,1]]}]
]

4. Write a function for some subdivision algorithm for curves , (Chaikin algorithm, four-point-scheme...). Try out several iterations on a polygon with vertices A = [0,0], B = [2,0], C = [3, 3], D = [-1, 4].