When I was learning about BSpline curves, I created two iOS applications to help me visualize the curves that result from control points and knot vectors. The first application was a BSpline Curve drawing tool. You can lay down control points, experiment with the degree of the curve and edit the knot vector to control how the curve follows the control points.

A BSpline curve with degree 3 A BSpline curve with degree 11 Editing the knot vector Screenshots from the BSpline editor

The second application renders a BSpline Surface and uses the iOS accelerometer to allow the user to move the device around the shape to see it from different angles. It reads a surface definition file from a server, so I could edit the table of control points and knot vectors to change the shape.

A BSpline Surface from the side A different view of the surface using the accelerometer Screenshots from the BSpline surface viewer