anchor.diff:   return max(min(base,inverse),sphere);
   }
   
  -float  DE(vec3 z) {
  +float  DE(vec3 z, float scale) {
     int i = 0;
  -  return DE2(z, i);
  +  return DE2(z, i, scale);
   }
   
   
   
   // Finite difference normal
  -vec3 getNormal(in vec3 pos) {
  +vec3 getNormal(in vec3 pos, float scale) {
     vec3 e = vec3(0.0,normalDistance,0.0);
   
     return normalize(vec3(
  -      DE(pos+e.yxx)-DE(pos-e.yxx),
  -      DE(pos+e.xyx)-DE(pos-e.xyx),
  -      DE(pos+e.xxy)-DE(pos-e.xxy)));
  +      DE(pos+e.yxx, scale)-DE(pos-e.yxx, scale),
  +      DE(pos+e.xyx, scale)-DE(pos-e.xyx, scale),
  +      DE(pos+e.xxy, scale)-DE(pos-e.xxy, scale)));
   }
   
   // Solid color with a little bit of normal :-)
  
positive.code: 
  
  
  vec3 offset = vec3(1.0+0.2*(cos(time/5.7)),0.3+0.1*(cos(time/1.7)),1.).xzy;
  
  
  float DE2(vec3 z, out int mat) { 
   float sphere = abs(length(z))-15.0;
   z*= scale;
   float base = (cos(z.x) * sin(z.y) + cos(z.y) * sin(z.z) + cos(z.z) * sin(z.x));
  
negative.code: 
    // Since our distance field is not signed,
      // backstep when calc'ing normal
    vec3 normal = getNormal(pos-dir*normalDistance*3.0, scale);
  
    int material = 0;
    DE2(pos, material, scale);
    
    vec3 color = getColor(normal, pos, material); 
    vec3 light = getLight(color, normal, dir, material);
  