Bring the minimalist section to 50 with 46 new creatures, 500 total

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 14:52:04 +00:00
co-authored by Claude Opus 5.5
parent f25e39b727
commit 11965fb704
138 changed files with 1295 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
// silk moth fluttering: a fluffy white moth beats its little wings, sways its feathery antennae and blinks its big eyes
const{sin,cos,PI}=Math,T=2*PI
export const frames=24,delay=80,rim=3,rimColor='#111'
export default(c,t)=>{
const f=sin(T*t*3),bl=t>.62&&t<.68
c.fillStyle=c.strokeStyle='#fff';c.lineWidth=6
const shape=g=>{c.beginPath();g();c.fill();c.stroke()}
c.translate(0,4*sin(T*t*3+1.2))
for(const d of[-1,1]){
c.save();c.translate(128+d*12,132);c.scale(d,1);c.rotate(-.24*f-.04)
shape(()=>{c.moveTo(0,8);c.bezierCurveTo(34,6,62,22,56,46);c.bezierCurveTo(42,62,12,52,0,30)})
shape(()=>{c.moveTo(0,-8);c.bezierCurveTo(30,-40,70,-58,94,-52);c.quadraticCurveTo(92,-36,84,-30);c.bezierCurveTo(86,-6,60,14,0,16)})
c.strokeStyle='#111';c.lineWidth=3
c.beginPath();c.moveTo(66,-40);c.quadraticCurveTo(70,-14,50,4);c.stroke()
c.beginPath();c.moveTo(42,22);c.quadraticCurveTo(48,38,36,48);c.stroke()
c.restore()
}
c.lineWidth=3
for(const d of[-1,1]){
const s=4*sin(T*t*2+d),x0=128+d*12,y0=88,cx=128+d*22,cy=48,x1=128+d*50+s,y1=32
c.beginPath();c.moveTo(x0,y0);c.quadraticCurveTo(cx,cy,x1,y1);c.stroke()
for(let k=1;k<=5;k++){
const u=k/6,px=(1-u)**2*x0+2*u*(1-u)*cx+u*u*x1,py=(1-u)**2*y0+2*u*(1-u)*cy+u*u*y1,l=12-k
c.beginPath();c.moveTo(px-d*l*.7,py-l*.7);c.lineTo(px,py);c.lineTo(px+d*l*.7,py+l*.7);c.stroke()
}
}
c.lineWidth=6
shape(()=>c.ellipse(128,172,20,38,0,0,T))
for(const[x,y,r]of[[110,134,14],[146,134,14],[128,142,16]])shape(()=>c.arc(x,y,r,0,T))
shape(()=>c.arc(128,110,30,0,T))
c.fillStyle=c.strokeStyle='#111'
for(const d of[-1,1])if(bl)c.lineWidth=3.5,c.beginPath(),c.arc(128+d*15,108,7,.15*PI,.85*PI),c.stroke()
else c.beginPath(),c.ellipse(128+d*15,110,7,9,0,0,T),c.fill()
c.lineWidth=3;c.beginPath();c.arc(128,120,5,.2*PI,.8*PI);c.stroke()
for(const[y,w]of[[186,13],[198,10]])c.beginPath(),c.moveTo(128-w,y),c.quadraticCurveTo(128,y+5,128+w,y),c.stroke()
}