1. A computer implemented method for 3D shape retrieval comprising: determining, by one or more processors, a similarity between a query 3D model and one or more 3D models using a composite distance function based on a plurality of features of the query 3D model and corresponding features of the one or more 3D models, wherein a feature distance is computed between the query 3D model and the one or more 3D models for each feature, and the composite distance function is computed as an average of each feature distance or an aggregate of each feature distance according to a pre-determined weighting; retrieving, by the one or more processors, one or more similar 3D models based on the determining step; ranking, by the one or more processors, the one or more similar 3D models based on the similarity; computing a second feature distance between the query 3D model and the one or more 3D models for each feature, from a second set of features, associated with the query 3D model and the one or more 3D models; evaluating a second composite distance function using each second feature distance; and re-ranking the one or more query 3D models based on results of the evaluated second composite distance function.