surface orange_girl(float    Kfb = 1,
                            position = 0.3,
                            amp = 0.07,
                            freq = 20,
                            radius1 = 0.15,
                            radius2 = 0.17,
                            radius3 = 0.47,
                            s1 = 0.5,
                            s2 = 0.5,
                            s3 = 0.5,
                            s4 = 0.25,
                            s5 = 0.25,
                            t1 = 0.7,
                            t2 = 0.63,
                            t3 = 0.5,
                            t4 = 0.2,
                            t5 = 0.55,
                            a = 0.2,
                            eyeradius = 0.07,
                            thickness = 0.03;
                    color    facecolor1 = color(1, 0.98, 0.96),
                            facecolor2 = color(1, 0.9, 0.8))
{
  
float mask = sqrt((s-0.5)*(s-0.5) + (t-0.5)*(t-0.5)) * 2;
color    surfcolor = mix(facecolor1, facecolor2, mask*mask);
  
//mouth    
if (((s-s1)*(s-s1) + (t-t1)*(t-t1) <= radius1*radius1) && ((s-s2)*(s-s2) + (t-t2)*(t-t2) >= radius2*radius2))
    surfcolor = color(1, 0.28, 0.57);
  
//hair
if ((s-s3)*(s-s3)*0.7 + (t-t3)*(t-t3) >= radius3*radius3)
    surfcolor = color(0.3, 0.2, 0);
    
//bang
if (t - position <= amp*cos(s*freq))
    surfcolor = color(0.3, 0.2, 0) ;
  
//bow    
float ss = s - s4;
float tt = t - t4;
    
if (ss*ss*ss*ss <= a*a*(ss*ss - tt*tt))
    surfcolor = color(1, 0, 0);
    
  
//right eye
if  ((s-s5)*(s-s5)*0.7 + (t-t5)*(t-t5) <= eyeradius*eyeradius)    
    surfcolor = color(0,0,0);
    
if  ((s-s5)*(s-s5)*0.7 + (t-t5)*(t-t5) <= (eyeradius-thickness)*(eyeradius-thickness))    
    surfcolor = color(1,1,1);
    
  
//left eye
if  ((s-(1-s5))*(s-(1-s5))*0.7 + (t-t5)*(t-t5) <= eyeradius*eyeradius)    
    surfcolor = color(0,0,0);
    
if  ((s-(1-s5))*(s-(1-s5))*0.7 + (t-t5)*(t-t5) <= (eyeradius-thickness)*(eyeradius-thickness))    
    surfcolor = color(1,1,1);
  
  
Oi = Os;
  
Ci = Oi * Cs * surfcolor * Kfb;
}