A reversible watermarking scheme for 3D meshes based on prediction-error expansion is proposed in this paper. In our algorithm, we embed the watermark by slightly changing the positions of some vertices in the mesh model. For a vertex to be altered for embedding, the centroid of its adjacent vertices is calculated as datum position which is kept unchanged during both embedding and extracting processes. The prediction-error, that is, half the distance from the centroid to the vertex position, is expanded for data embedding. One of the most notable features of our algorithm is that the distortion can be easily controlled in spite of the complex topology of the mesh models. Further more, the watermarked model is capable of resisting such attacks as translation, rotation and random noise. Experimental results demonstrate high capacity and low distortion of the proposed data hiding scheme.