Surface filtering algorithms using Fourier, Gaussian, wavelets, etc, are well-established for simple Euclidean geometries. However, these filtration techniques cannot be applied to today's complex freeform surfaces, which have non-Euclidean geometries, without distortion of the results. This paper proposes a new multi-scale filtering algorithm for freeform surfaces that are represented by triangular meshes based on a mesh relaxation scheme. The proposed algorithm is capable of decomposing a freeform surface into different scales and separating surface roughness, waviness and form from each other, as will be demonstrated throughout the paper. Results of applying the proposed algorithm to computer-generated as well as real surfaces are represented and compared with a lifting wavelet filtering algorithm.