We have investigated the problem of removing objects from a heap without having recourse to object models. This capability is useful for ``intelligent singulation'', i.e., the decomposition of a heap into isolated objects. As we are exclusively relying on geometric information, the use of range data is a natural choice. To ensure that we see opposite patches of the object surfaces, we use up to three range views from different directions. These views are triangulated using the data points as vertices. After merging the views, the resulting surface description is segmented, i.e., partitioned into large sets of contiguous triangles which correspond to objects or object components in the scene. The system then tries to detect grasping opportunities. Two heuristics guide the selection of a ``focus of action'' which consists of a suitable component. For this component, good grasping point pairs are found by using an intelligent search technique. If no pairs are found due to impending collisions or bad grasping quality another component is checked. Finally the robot performs the grasping. Force sensing allows the correction of inaccuracies of the vision system and the handling of collisions.