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

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:

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

little guy
todo
whaly
// in basil
// "whale"
s 3
rot .75
scale .24 2
rot .35
y .05
+ (s 99 .2 # y .1 # rot <:() => fft() * -.2 + Math.cos(time) * -.08:> # x .04
)
+ (s 99 # scale .4 2 # x -.07
// tail
+ (s 7 # scale .16 2 # rot -.7
+ (s 3 # scale .15 1.7 # rot .3 # x -.034 # y .047
mask (s 3 .022 # scale .8 8 # rot .3 # x -.034 # y .064 # inv)
rot <: () => fft() * .3 + Math.sin(time) * .3:>
)
rot .1 # scale 1.2 1.2 # y -.01
rot <: () => Math.sin(time) * .4 :> # x -.16 # y .025
)
)
mask ( s 99 .3 # - (s 99 .31 # y (> fft # * .1 # + .01)) # scale .6 # x .13 # y .13 # + (s 99 .02 # x .1 # y .12) # inv)
// c 0 0 1
more
what else?
blog post by pastagang