Genetic programming is used to automatically synthesize procedural textures for 3D surfaces. The GP system evolves textures with similar colour and surface characteristics as training textures sampled on 3D models. The texture language includes mathematical operators, colour and noise functions, as well as surface information for the point being rendered, such as coordinates, normal, and gradie...