A picking mechanism (pointing and indicating) with the cursor is essential for any direct-manipulation application. The windowing systems, under which control a direct-manipulation application runs, provide facilities that together with special utility routines allow identifying which object within the region the user is pointing at. Such picking algorithms have been widely used for selecting objects under a 2D mouse cursor. In this paper, we present a simple yet effective application-independent 3D picking algorithm for 3D input devices. We also discuss a differential geometry based surface constraint that can be applied to the 3D cursor position for improving points matching. In order to demonstrate the techniques, two sample applications using a 3D input device are shown.