Code

float[][] eggpoints = {{0.207,-0.707},{0.26,-0.647},{0.307,-0.587},{0.353,-0.52},{0.393,-0.453},{0.427,-0.38},{0.453,-0.307},{0.473,-0.233},{0.487,-0.153},{0.5,-0.08},{0.5,0.0},{0.493,0.08},{0.473,0.153},{0.447,0.227},{0.407,0.293},{0.353,0.353},{0.293,0.407},{0.227,0.447},{0.153,0.473},{0.08,0.493},{0.0,0.5},{-0.08,0.493},{-0.153,0.473},{-0.227,0.447},{-0.293,0.407},{-0.353,0.353},{-0.407,0.293},{-0.447,0.227},{-0.473,0.153},{-0.493,0.08},{-0.5,0.0},{-0.5,-0.08},{-0.487,-0.153},{-0.473,-0.233},{-0.453,-0.307},{-0.427,-0.38},{-0.393,-0.453},{-0.353,-0.52},{-0.307,-0.587},{-0.26,-0.647},{-0.207,-0.707},{-0.147,-0.753},{-0.073,-0.787},{0.0,-0.793},{0.073,-0.787},{0.147,-0.753}};
float[][][] letters = {{{23.0,22.0,28.0},{41.5,0.5,15.0},{34.5,0.5,8.0}},{{39.5,0.5,25.0},{33.0,1.0,10.0},{26.5,0.5,9.0}},{{2.5,0.5,32.0},{14.0,1.0,30.0},{27.5,0.5,34.0}},{{15.5,0.5,1.0},{8.0,1.0,29.0},{13.5,0.5,30.0}},{{35.0,1.0,3.0},{30.5,0.5,8.0},{25.0,1.0,14.0}},{{24.0,1.0,37.0},{3.0,1.0,35.0},{31.5,0.5,7.0}},{{8.5,0.5,31.0},{13.5,0.5,6.0},{11.5,0.5,21.0}},{{37.0,1.0,23.0},{3.5,1.5,15.0},{31.5,0.5,9.0}},{{1.0,1.0,39.0},{20.5,0.5,43.0},{24.5,0.5,17.0}},{{3.0,1.0,18.0},{16.5,0.5,23.0},{29.0,1.0,21.0}},{{37.5,0.5,23.0},{1.5,0.5,30.0},{12.0,1.0,31.0}},{{37.0,1.0,21.0},{23.0,1.0,14.0},{15.5,0.5,12.0}},{{27.0,1.0,40.0},{42.5,1.5,20.0},{15.0,1.0,0.0}},{{24.0,1.0,37.0},{37.0,1.0,14.0},{15.5,0.5,1.0}},{{39.5,0.5,45.0},{26.5,0.5,19.0},{14.5,0.5,20.0}},{{38.5,0.5,23.0},{36.0,1.0,6.0},{30.5,0.5,5.0}},{{15.5,0.5,32.0},{17.5,0.5,13.0},{22.5,22.5,41.0}},{{38.0,1.0,5.0},{30.5,0.5,6.0},{15.0,1.0,33.0}},{{3.0,1.0,34.0},{11.5,1.5,33.0},{25.5,0.5,12.0}},{{19.5,0.5,42.0},{37.5,0.5,3.0},{15.5,0.5,21.0}},{{25.0,1.0,38.0},{24.0,1.0,16.0},{6.0,1.0,17.0}},{{22.5,1.5,37.0},{19.0,1.0,2.0},{22.5,0.5,19.0}},{{23.0,1.0,36.0},{21.5,1.5,44.0},{20.0,1.0,6.0}},{{37.0,1.0,15.0},{26.5,0.5,3.0},{13.5,0.5,17.0}},{{37.0,1.0,8.0},{2.0,1.0,18.0},{20.5,0.5,17.0}},{{36.0,1.0,5.0},{27.5,0.5,4.0},{14.0,1.0,29.0}}};
int[][] word = {{0,1,2,3,4,5},{6,7,8,9,10,11},{12,13,14,15,16,17},{18,19,20,21,22,23},{24,25}};
//int[][] word = {{17,0,13,2,8,3}};   //just a bit...
int let;

float w = 50;
float xpadding,ypadding;

//crack variables
float minchaos = 1;
float maxchaos = 4;
float crackdensity = .22;
float crackrate = 1.08;
int crackprob = 200;
float probrate = 2;
int maxwait = 3000;

//yolk variables
float yolkmax = 80;
float yolkmin = 30;
float yolkspeed = .005;

egg[] eggies;

boolean smoo = false;

void setup(){
  size(400,400);
  ellipseMode(CENTER_DIAMETER);
  for(int i=0;i<word.length;i++){
    for(int j=0;j<word[i].length;j++){
      let++;
    }
  }
  eggies = new egg[let];
  int n = 0;
  ypadding = (400-((word.length-1)*(w*1.3+10)))/2;
  xpadding = (400-((word[0].length-1)*(w+10)))/2;
  for(int i=0;i<word.length;i++){
    for(int j=0;j<word[i].length;j++){
      eggies[n] = new egg(xpadding+j*(w+10),ypadding+i*(w*1.3+10),word[i][j]);
      n++;
    }
  }
}

void loop(){
  background(50);
  if(smoo==true){
    smooth();
  }
  //draw yolk first
  noStroke();
  fill(75,75,60,240);
  for(int i=0;i<eggies.length;i++){
    for(int j=0;j<3;j++){
      eggies[i].cracks[j].yolk();
    }
  }
  //draw eggs second
  for(int i=0;i<eggies.length;i++){
    strokeWeight(2.3);
    stroke(105,105,60,150);
    eggies[i].show();
    //draw cracks last
    noStroke();
    fill(155,155,100,150);
    for(int j=0;j<3;j++){
      eggies[i].cracks[j].show();
      eggies[i].cracks[j].hatch();
    }
  }
}

class egg{
  float x,y;
  int l;
  crack[] cracks = new crack[3];
  egg(float x1,float y1,int l1){
    x = x1;
    y = y1;
    l = l1;
    float temp = random(maxwait);
    for(int i=0;i<3;i++){
      cracks[i] = new crack(x+w*eggpoints[int(letters[l][i][0]+letters[l][i][1])][0],y+w*eggpoints[int(letters[l][i][0]+letters[l][i][1])][1],x+w*eggpoints[int(letters[l][i][0]-letters[l][i][1])][0],y+w*eggpoints[int(letters[l][i][0]-letters[l][i][1])][1],x+w*eggpoints[int(letters[l][i][2])][0],y+w*eggpoints[int(letters[l][i][2])][1]);
      cracks[i].wait = temp;
    }
  }
  void update(){
    float temp = random(maxwait);
    for(int i=0;i<3;i++){
      cracks[i] = new crack(x+w*eggpoints[int(letters[l][i][0]+letters[l][i][1])][0],y+w*eggpoints[int(letters[l][i][0]+letters[l][i][1])][1],x+w*eggpoints[int(letters[l][i][0]-letters[l][i][1])][0],y+w*eggpoints[int(letters[l][i][0]-letters[l][i][1])][1],x+w*eggpoints[int(letters[l][i][2])][0],y+w*eggpoints[int(letters[l][i][2])][1]);
      cracks[i].wait = temp;
    }
  }
  void show(){
    //draw egg
    beginShape(POLYGON);
    for(int i=0;i<eggpoints.length;i++){
      fill(255,255,170+i);
      vertex(x+w*eggpoints[i][0],y+w*eggpoints[i][1]);
    }
    endShape();
  }
}

class crack{
  float m1,m2,b1,b2,chaos,x,inc,crackage,prob,wait;
  int cracks;
  float[][] crackpoints1;
  float[][] crackpoints2;
  float[][] yolks;
  crack(float pAx,float pAy,float pBx,float pBy,float pCx,float pCy){
    //determine line properties
    m1 = (pAy-pCy)/(pAx-pCx+.01);
    m2 = (pBy-pCy)/(pBx-pCx+.01);
    b1 = pAy-pAx*m1;
    b2 = pBy-pBx*m2;
    //add some crackage
    cracks = int(floor(sqrt(sq((pAx+pBx)/2-pCx)+sq((pAy+pBy)/2-pCy))*crackdensity/3)*3);
    chaos = minchaos+random(maxchaos-minchaos);
    //setup cracks
    x = pAx;
    inc = (pCx-pAx)/cracks;
    crackage = 0.01;
    prob = crackprob;
    crackpoints1 = new float[cracks+1][2];
    crackpoints1[0][0] = pAx;
    crackpoints1[0][1] = pAy;
    for(int i=1;i<cracks;i++){
      crackpoints1[i][0] = x+random(-chaos,chaos);
      crackpoints1[i][1] = m1*x+b1+random(-chaos,chaos);
      x += inc;
    }
    crackpoints1[cracks][0] = pCx;
    crackpoints1[cracks][1] = pCy;
    x = pBx;
    inc = (pCx-pBx)/cracks;
    crackpoints2 = new float[cracks+1][2];
    crackpoints2[0][0] = pBx;
    crackpoints2[0][1] = pBy;
    for(int i=1;i<cracks;i++){
      crackpoints2[i][0] = x+random(-chaos,chaos);
      crackpoints2[i][1] = m2*x+b2+random(-chaos,chaos);
      x += inc;
    }
    crackpoints2[cracks][0] = pCx;
    crackpoints2[cracks][1] = pCy;
    //setup yolks
    yolks = new float[2][4];
    yolks[0][0] = pCx;
    yolks[0][1] = pCy;
    yolks[0][2] = 0;
    yolks[0][3] = (yolkmin+random(yolkmax-yolkmin))/2;
    yolks[1][0] = (pAx+pBx)/2;
    yolks[1][1] = (pAy+pBy)/2;
    yolks[1][2] = 0;
    yolks[1][3] = yolkmin+random(yolkmax-yolkmin);
  }
  void hatch(){
    if(crackage<1){
      if(millis()>wait&&random(prob)<1){
        crackage *= crackrate;
        if(crackage>1){
          crackage = 1;
        }
        prob /= probrate;
      }
    }
  }
  void show(){
    /*
    //this would work if the polygon rendering didn't suck
    beginShape(POLYGON);
    for(int i=0;i<int(floor((cracks+1)*crackage));i++){
      vertex(crackpoints1[i][0],crackpoints1[i][1]);
    }
    for(int i=max(0,int(floor((cracks+1)*crackage)-1));i>=0;i--){
      vertex(crackpoints2[i][0],crackpoints2[i][1]);
    }
    endShape();
    */
    beginShape(TRIANGLE_STRIP);
    for(int i=0;i<int(floor((cracks+1)*crackage));i++){
      vertex(crackpoints1[i][0],crackpoints1[i][1]);
      vertex(crackpoints2[i][0],crackpoints2[i][1]);
    }
    endShape();
  }
  void yolk(){
    if(crackage>.5){
      yolks[0][2] += (yolks[0][3]-yolks[0][2])*yolkspeed;
      yolks[1][2] += (yolks[1][3]-yolks[1][2])*yolkspeed;
      ellipse(yolks[0][0],yolks[0][1],yolks[0][2]*2,yolks[0][2]*2);
      ellipse(yolks[1][0],yolks[1][1],yolks[1][2]*2,yolks[1][2]*2);
    }
  }
}
void keyPressed(){
  if(key=='s'||key=='S'){
    if(smoo==true){
      smoo = false;
    }else{
      smoo = true;
    }
  }
}

023 -- Intermorphable Alphabet Complete: Your Complete Alphabet

Statement:Show your complete alphabet on a single 400x400 canvas.
i changed mine because eggs are pretty

hide statement