A general paradigm for recognizing 3D objects is offered, and applied to some geometric primitives (spheres, cylinders, cones, and tori). The assumption is that a curve on the surface, or a pair of intersecting curves, was measured with high accuracy (for instance, by a sensory robot). Differential invariants of the curve(s) are then used to recognize the surface. The motivation is twofold: the output of some devices is not surface range data, but such curves. Also, a considerable speedup is obtained by using curve data, as opposed to surface data which usually contains a much higher number of points. We survey global, algebraic methods for recognizing surfaces, and point out their limitations. After introducing some notions from differential geometry and elimination theory, the differential and "semi-differential" approaches to the problem are described, and novel invariants which are based on the curve's curvature and torsion are derived.