pastagang blog

pastagang lore: characters

over time, pastagang came up with a bunch of characters that keep evolving, often recurring in different forms and shapes. here’s an attempt to document them

cawcaw

todo: characterization of cawcaw(s). i think they like to cause trouble, and they’re into heavy bass music to bang their beaks

cawcaw

example code caution: to keep the cawcaw spirit alive, it is recommended you come up with your own version of cawcaw
// little cawcaw
const bangTo = "bass";
//head base
shape(99, 0.15)
  // beaks
  .add(
    shape(3, 0.1)
      .rotate(Math.PI + 3 / 2)
      .scale(0.3, 3, 1)
      .scroll(-0.1, 0)
      .rotate(() => fft(0, 1, "caw") * 0.25)
  )
  .add(
    shape(3, 0.1)
      .rotate(Math.PI + 3 / 2)
      .scale(0.3, 3, 1)
      .scroll(-0.1, 0)
      .rotate(() => fft(0, 1, "caw") * -0.15)
  )

  // eye
  .mask(
    shape(99, 0.07)
      .scale(0.3)
      .scale(1, 1, P("<1!64 .3>*16"))
      .scroll(-0.02, 0.02)
      .scrollX(() => Math.sin(time / 4) * 0.02)
      .invert()
  )

  //head banging
  .rotate(() => fft(0, 1, bangTo) * 1.5)
  .rotate([-0.2, 0.2].ease("easeInOutQuad").fast(1 / 4))
  .scroll(0.01, [0.04, 0].ease("easeInOutQuad").fast(1 / 23))
  // body
  .add(shape(99, 0.2).scale(1, 2).rotate(-0.8).scroll(0.14, -0.14))
  // tail
  .add(
    shape(4, 0.1)
      .scale(0.2, 7, 1)
      .rotate((Math.PI * 2) / 3)
      .rotate(0)
      .scroll(0.3, -0.25)
      .add(
        shape(99, 0.2)
          .scale(0.2, 7, 1)
          .rotate((Math.PI * 2) / 3)
          .rotate(0.1)
          .scroll(0.324, -0.27)
      )
      .add(
        shape(99, 0.3)
          .scale(0.2, 4, 1)
          .rotate((Math.PI * 2) / 3)
          .rotate([-0.12, 0.12].ease("easeInOutQuad").fast(1 / 22))
          .scroll(0.29, -0.25)
      )
      // tail bang
      .scroll(-0.2, 0.2)
      .rotate(() => fft(0, 1, bangTo) * 0.4)
      .scroll(0.2, -0.2)
  )

  // banging
  .scroll(-0.2, 0.2)
  .rotate(() => fft(0, 1, bangTo) / 1.4)
  .scroll(0.2, -0.2)

  // legs
  .add(
    shape(2, 0.001)
      .mask(shape(4, 0.2))
      .rotate(Math.PI / 2)
      .scroll(0.15, -0.3)
  )
  .add(
    shape(2, 0.001)
      .mask(shape(4, 0.2))
      .rotate(Math.PI / 2)
      .scroll(0.16, -0.31)
  )
  .mask(shape(4, 1))

  // positioning
  .scale(0.7)
  .scroll(0.16, -0.16)
  .out(o3);


of course, cawcaw can come in many colors and shapes:

cawcaw2


cawcaw is often paired with s("crow") and or other types of extreme bird glorification

cawnames

little guy

todo

more

what else?


blog post by pastagang