Devices such as videocameras, VCRs, microphones, and fax machines have had a great impact on society because they allow various aspects of the physical world to be acquired, stored, transmitted, and reinstantiated. An important physical form that has received little attention is that of 3D shape. Emerging technologies allowing the acquisition and reinstantiation of 3D shape (3D laser scanners and solid freeform fabrication) are motivating numerous applications, including reverse engineering, traditional non-CAD design, and 3D faxing. However, for 3D scanning to realize its full potential, software must be developed to allow the reconstruction of useful 3D geometric models from the raw data that scanners produce. This work addresses surface reconstruction: the recovery of concise, accurate piecewise smooth surface models from scanned 3D points. We present a surface reconstruction method that is significantly more general than previous ones. Neither the topological type of the surface, its geometry, nor the location of its sharp features are known in advance -- all are inferred from the data points. A key ingredient is the introduction of a new class of subdivision surfaces allowing the representation of sharp features such as creases and corners. Finally, we demonstrate the effectiveness of the method using both simulated and real data.