Add minimalist creature sections, 50 black-and-white and 50 colored

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-23 12:57:10 +00:00
co-authored by Claude Opus 5.5
parent c4dd37f62c
commit 95c6ae7fb4
302 changed files with 2655 additions and 2 deletions
+29
View File
@@ -0,0 +1,29 @@
// chunky wombat digging nose-down into a dirt mound, paws scooping, clods flying back over its back
const{sin,cos,PI,max}=Math,T=2*PI
export const frames=24,delay=70
const B='#8a94a6',L='#c5cad3',A='#b5835a',D='#2b2633'
export default(c,t)=>{
const rk=.035*sin(T*t*2)
const fill=(col,f)=>{c.fillStyle=c.strokeStyle=col;c.lineWidth=6;c.beginPath();f();c.fill();c.stroke()}
c.translate(0,-14)
for(let k=0;k<3;k++){
const u=(t*2+k/3)%1,x=190-160*u,y=196-4*124*u*(1-u)+20*u,r=7-2*u
fill(A,()=>c.arc(x,y,r,0,T))
}
fill(A,()=>c.ellipse(46,212,28,10,0,0,T))
fill(A,()=>{c.moveTo(186,216);c.quadraticCurveTo(212,184,238,216);c.closePath()})
c.save();c.translate(160,210);c.rotate(rk);c.translate(-160,-210)
for(const[x,y]of[[70,206],[96,210]])fill(B,()=>c.ellipse(x,y,15,9,0,0,T))
for(const[k,o]of[[0,0],[1,PI]]){
const a=.7*sin(T*t*2+o)
c.save();c.translate(170+k*8,194);c.rotate(a);fill(B,()=>c.ellipse(10,12,9,15,-.4,0,T));c.restore()
}
fill(B,()=>c.ellipse(112,166,62,44,-.1,0,T))
fill(B,()=>c.arc(56,150,8,0,T))
for(const[x,r]of[[162,-.3],[176,.2]])fill(B,()=>c.ellipse(x,140,7,10,r,0,T))
fill(B,()=>c.ellipse(178,172,32,27,.25,0,T))
fill(L,()=>c.ellipse(198,182,14,12,.25,0,T))
c.fillStyle=D;c.beginPath();c.ellipse(205,180,9,7,.25,0,T);c.fill()
c.beginPath();c.arc(182,160,4.5,0,T);c.fill()
c.restore()
}