surface
stripe ( float Ka = 0.5, Kd = 0.75, Ks = 0.25, roughness = 0.1;  
			color specularcolor = 1, 
			stripe1Color = color "rgb" (.9, 0, .9), 
			stripe2Color = color "rgb" (.3,.9,.5);    
		      float width = 0.2)
{
  normal Nf;
  color surfaceColor;
  point PP;
  float tt, ss;
  float frame = 2*width;

  PP = transform ("shader", P);
  ss = mod(xcomp(PP), frame);
  tt = mod(ycomp(PP), frame);

  if (ss < width) {
	surfaceColor = stripe1Color;
  }
  else 
	surfaceColor = stripe2Color;
  
  Nf = faceforward (normalize(N),I);
  Oi = Os;
  Ci = Os * ( surfaceColor * (Ka*ambient() + Kd*diffuse(Nf)) +
	      specularcolor * Ks*specular(Nf,-normalize(I),roughness));
}