1. A method comprising: accessing a first three-dimensional (3D) mesh of 3D vertices each represented in three dimensions, one of the three dimensions being a depth dimension that is normal to a viewing plane, two of the three dimensions each being normal to the depth dimension, the first 3D mesh being a first portion of a 3D model; flattening the first 3D mesh by assigning a first single value of the depth dimension to each of the 3D vertices in the first 3D mesh that is the first portion of the 3D model, the assigned first single value of the depth dimension identifying the flattened first 3D mesh distinct from a flattened second 3D mesh that is identified by a second single value of the depth dimension and is a second portion of the same 3D model; texturing the flattened first 3D mesh by mapping a two-dimensional (2D) image to at least some of the 3D vertices each represented in the three dimensions and each assigned the first single value of the depth dimension that is normal to the viewing plane; generating a first 2D frame of an animation by rendering the flattened and textured first 3D mesh to which the 2D image is mapped; modifying the flattened and textured first 3D mesh by repositioning a 3D vertex among the 3D vertices while maintaining the first single value of the depth dimension assigned to each of the 3D vertices, the repositioning of the 3D vertex while maintaining the first single value of the depth dimension of the 3D vertex includes determining a 3D vector of movement for the 3D vertex and ignoring a component of the 3D vector in the depth dimension, the modifying of the flattened and textured first 3D mesh distorting the 2D image that is mapped to at least some of the 3D vertices of the flattened and textured first 3D mesh, the modifying being performed by a processor of a machine; and generating a second 2D frame of the animation by rendering the flattened, textured, and modified first 3D mesh to which the distorted 2D image is mapped.