This paper explains the parametric uniform B-spline curve and surface representations. The parametric representation is discussed, the properties of the B-spline representation are described, and a detailed derivation of the B-spline basis functions is presented. Various end conditions and boundary conditions are described in order to enable the B-spline user to select which of the many options would be appropriate for a particular application. Efficient algorithms are designed and analyzed for B-spline basis function evaluation, and for the evaluation and perturbation of both B-spline curves and surfaces. Finally, difference techniques to accomplish this are also developed.