We use coseismic surface displacement data to determine the slip distribution on the Chelungpu fault during the 1999 Chi-Chi, Taiwan, earthquake. The surface displacements were obtained from both GPS surveys and integrations of near-field strong ground motions. The fault rupture is taken as a series of dislocations along the Chelungpu fault in a homogeneous, elastic half-space. Using this assumption, we are able to find both a least-squares solution and optimal solutions from genetic-algorithm inversion with a step-wise rake constraint. Our results show that with the rake constraint, the resulting rupture features are more reasonable and more consistent with geologic observations than with the least-squares solution. We also evaluate the influence of fault geometry by calculating slip distributions on a simplified 2D fault plane and a more sophisticated 3D fault surface, noting that the 3D rupture model can greatly reduce model misfit when compared with the 2D rupture model. Both models do show, however, that slip dramatically increases from the hypocenter toward the northern end of the Chelungpu fault and that right-lateral slip is found at a large asperity near the southern end of the Chelungpu fault at depths below 10 km. Our models predict a much larger average slip than others derived from body-wave inversions. We interpret this inconsistency to be a result of partitioning of aseismic sliding due to mineral composition, state of stress, and/or frictional heat.