Procedurally Bump-Textured Sphere

LUMPY:  .03 * noise(8*x,8*y,8*z);
CRINKLY: -.10 * turbulence(x,y,z);
MARBLED:  .01 * stripes(x + 2*turbulence(x,y,z), 1.6);

double stripes(double x, double f) {
   double t = .5 + .5 * Math.sin(f * 2*Math.PI * x);
   return t * t - .5;
}
double turbulence(double x, double y, double z) {
   double t = -.5;
   for (double f = 1 ; f <= W/12 ; f *= 2)
      t += Math.abs(noise(f*x,f*y,f*z) / f);
   return t;
}

Source code: Sphere extends MISApplet

-Ken Perlin