This paper considers the problem of placing mosaic tiles on a surface to produce a surface mosaic. We assume that the user specifies a mesh model, the size of the tiles and the amount of grout, and optionally, a few control vectors at key locations on the surface indicating the preferred tile orientation at these points. From these inputs, we place equal-sized rectangular tiles over the mesh such as to almost cover it, with controlled orientation. The alignment of the tiles follows a vector field which is interpolated over the surface from the control vectors, and also forced into alignment with any sharp creases, open boundaries, and boundaries between regions of different colors. Our method efficiently solves the problem by posing it as one of globally
optimizing a spring-like energy in the Manhattan metric, using overlapping local parameterizations.We demonstrate the
effectiveness of our algorithm with various examples.