We present a technique for creating a smoothly varying sequence of procedural textures that interpolates between arbitrary input samples of texture. This texture transformation uses a library of procedural shaders and selects the correct shaders and associated parameters to accomplish the task. In general, selecting a procedural texture from a library, or finding the correct parameters to produce a smooth texture transition can be complex and time consuming. We propose a strategy for automating this process. While superficially this problem appears intractable for both humans and computational systems, its natural characteristics make a computational solution feasible. We present an algorithm and experimental results demonstrating this approach. Transformation between two textures can then be achieved procedurally, while enforcing perceptual similarity constraints between adjacent texture frames. We describe a technique for efficiently sampling the parameter domain of a shader based on a texture similarity function to create a smooth path through its texture range. In the case of evolving between several shaders, a method is described to obtain the best jump-points which can be used to connect different shaders smoothly in texture space. Several examples of the technique are shown, and future directions as well as potential problems are discussed.