At my internship at EDHV I worked together with Remco van de Craats, Lenneke Heeren and Jeroen Braspenning on a research about creating 3 dimensional objects from code and transforming them according to specific input.
After having generated a basic object, a texture was given to it by loading an image onto its surface. The imagedata (color, brightness, etc) was used as the input for the transformation/ distortion of the 3d object.
For instance, the x position of pixels with a high brightness-value could be doubled, so that they would extrude from the object, and the object would deform. A set of transformation rules was applied, and they get executed every time an image is loaded onto the object. This way, for every different image, a completely different form is generated.