displacement
cloth(float freq=500, depth=0.02)
{
    float d;
    point sN,PP;

    d = noise(freq*s) + noise(freq*t) - 1; /* from -1 to 1 */
    PP = transform("shader",P);
    sN = normalize(transform("shader",N)-transform("shader",(0,0,0)));
    P = transform("shader","current",PP + sN*depth*d);
    N = calculatenormal(P);
}