This paper presents an algorithm for optimal grasp planning and fixture synthesis. The object surface is depicted by a number of discrete points, which are used as the candidate contact points. This algorithm consists of two procedures. The first procedure selects a minimal subset of contacts from the candidates so as to construct a form-closure grasp or fixture, which is to determine a minimal subset of contact wrenches such that their convex hull forms a simplex containing the origin of the wrench space as an interior point. The second procedure adjusts the contact positions or alters the selected contact wrenches to maximize the minimum distance from the origin to the facets of the simplex, which enhances the capability of the grasp or fixture to immobilize and balance the object. As this algorithm does not employ any general optimization techniques and utilizes recursive formulas for most computations, it runs very fast. Its effectiveness and efficiency are demonstrated with illustrative examples.