This paper presents a novel modeling technique for reconstructing a triangular B-spline surface from a set of scanned 3D points. Unlike existing surface reconstruction methods based on tensor-product B-splines which primarily generate a network of patches and then enforce certain continuity (usually, G{1} or C{1}) between adjacent patches, our algorithm can avoid the complicated procedures of surface trimming and patching. In our framework, the user simply specifies the degree n of the triangular B-spline surface and fitting error tolerance ∊. The surface reconstruction procedure generates a single triangular B-spline patch that has C{n-1} continuity over smooth regions and C{0} on sharp features. More importantly, all the knots and control points are determined by minimizing a linear combination of interpolation and fairness functionals. Examples are presented which demonstrate the effectiveness of the technique for real data sets.