(1) Drag the mouse over the ball to rotate it.
(2) Drag the mouse over the black background to move texture in space
(3) Right-click to toggle texture size.
(4) Hold down the SPACE bar while dragging the mouse over the black background to rotate the noise texture's Z (third) coordinate into its W (fourth) coordinate.
All shading and texturing is being computed procedurally while you watch, in Java 1.1.
The texture is my 4D noise function, computed in real time from the X,Y,Z coordinates at the surface, plus an extra coordinate that the user can vary. Specifically, the demo uses an floating point implementation of my Improved Noise (SIGGRAPH 2002) algorithm.