GLM-5.2
RANK 07 · MEOWSCORE 85.3 · current · CN · open
minimal
“Draw a minimal, flat-design cat as an SVG.”
GLM-5.2 · minimal · attempt 1 · score 7.8
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400">
<rect width="400" height="400" fill="#F5E9D7"/>
<g id="cat">
<ellipse cx="200" cy="300" rx="90" ry="30" fill="#E8DCC6" opacity="0.6"/>
<path d="M 130 260 L 130 180 Q 130 110 200 110 Q 270 110 270 180 L 270 260 Q 270 290 240 290 L 160 290 Q 130 290 130 260 Z" fill="#3A4A5C"/>
<path d="M 140 180 L 145 130 L 175 160 Z" fill="#3A4A5C"/>
<path d="M 260 180 L 255 130 L 225 160 Z" fill="#3A4A5C"/>
<path d="M 148 158 L 152 142 L 168 156 Z" fill="#F2A9B7"/>
<path d="M 252 158 L 248 142 L 232 156 Z" fill="#F2A9B7"/>
<ellipse cx="200" cy="225" rx="55" ry="45" fill="#E8DCC6"/>
<ellipse cx="200" cy="225" rx="40" ry="32" fill="#F5E9D7"/>
<circle cx="178" cy="175" r="8" fill="#F5E9D7"/>
<circle cx="178" cy="175" r="4" fill="#2A3138"/>
<circle cx="176" cy="173" r="1.5" fill="#FFFFFF"/>
<circle cx="222" cy="175" r="8" fill="#F5E9D7"/>
<circle cx="222" cy="175" r="4" fill="#2A3138"/>
<circle cx="220" cy="173" r="1.5" fill="#FFFFFF"/>
<path d="M 192 205 Q 200 212 208 205" stroke="#2A3138" stroke-width="2.5" stroke-linecap="round" fill="none"/>
<path d="M 200 210 L 200 218" stroke="#2A3138" stroke-width="2" stroke-linecap="round"/>
<path d="M 200 218 L 188 222" stroke="#2A3138" stroke-width="2" stroke-linecap="round"/>
<path d="M 200 218 L 212 222" stroke="#2A3138" stroke-width="2" stroke-linecap="round"/>
<line x1="155" y1="195" x2="130" y2="190" stroke="#D4C5A8" stroke-width="1.2"/>
<line x1="155" y1="205" x2="128" y2="208" stroke="#D4C5A8" stroke-width="1.2"/>
<line x1="245" y1="195" x2="270" y2="190" stroke="#D4C5A8" stroke-width="1.2"/>
<line x1="245" y1="205" x2="272" y2="208" stroke="#D4C5A8" stroke-width="1.2"/>
<path d="M 270 220 Q 320 230 310 270 Q 305 290 285 280" fill="#3A4A5C"/>
<path d="M 320 250 Q 325 240 318 235 Q 315 245 320 250" fill="#F2A9B7"/>
</g>
</svg>GLM-5.2 · minimal · attempt 2 · score 0.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400">
<rect width="400" height="400"fill="#FAF3E0"/>
<!-- Tail -->
<path d="M 290 280 Q 350 270 345 220 Q 340 185 310 195" fill="none" stroke="#4A4A4A" stroke-width="22" stroke-linecap="round"/>
<!-- Body -->
<ellipse cx="200" cy="270" rx="100" ry="80" fill="#4A4A4A"/>
<!-- Front legs -->
<rect x="160" y="310" width="26" height="55" rx="13" fill="#4A4A4A"/>
<rect x="214" y="310" width="26" height="55" rx="13" fill="#4A4A4A"/>
<!-- Head -->
<circle cx="200" cy="160" r="75" fill="#4A4A4A"/>
<!-- Ears -->
<path d="M 140 130 L 130 70 L 180 110 Z" fill="#4A4A4A"/>
<path d="M 260 130 L 270 70 L 220 110 Z" fill="#4A4A4A"/>
<path d="M 148 122 L 144 88 L 170 108 Z" fill="#F4A6A6"/>
<path d="M 252 122 L 256 88 L 230 108 Z" fill="#F4A6A6"/>
<!-- Eyes -->
<ellipse cx="172" cy="155" rx="7" ry="11" fill="#FAF3E0"/>
<ellipse cx="228" cy="155" rx="7" ry="11" fill="#FAF3E0"/>
<!-- Nose -->
<path d="M 192 178 L 208 178 L 200 188 Z" fill="#F4A6A6"/>
<!-- Mouth -->
<path d="M 200 188 L 200 194 M 200 194 Q 188 202 182 196 M 200 194 Q 212 202 218 196" fill="none" stroke="#FAF3E0" stroke-width="2.5" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#FAF3E0" stroke-width="1.8" stroke-linecap="round">
<line x1="150" y1="180" x2="110" y2="174"/>
<line x1="150" y1="190" x2="110" y2="194"/>
<line x1="250" y1="180" x2="290" y2="174"/>
<line x1="250" y1="190" x2="290" y2="194"/>
</g>
<!-- Belly accent -->
<ellipse cx="200" cy="285" rx="45" ry="40" fill="#6B6B6B"/>
</svg>GLM-5.2 · minimal · attempt 3 · score 8.5
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400">
<rect width="400" height="400" fill="#F5F1E8"/>
<!-- Tail -->
<path d="M 120 290 Q 70 290 70 240 Q 70 200 110 200"
fill="none" stroke="#7E6B5C" stroke-width="22" stroke-linecap="round"/>
<!-- Body -->
<path d="M 130 310
Q 130 210 200 210
Q 270 210 270 310
Z"
fill="#A89380"/>
<!-- Belly -->
<path d="M 165 310
Q 165 245 200 245
Q 235 245 235 310
Z"
fill="#F5E6D3"/>
<!-- Front legs/feet -->
<rect x="160" y="295" width="35" height="22" rx="11" fill="#A89380"/>
<rect x="205" y="295" width="35" height="22" rx="11" fill="#A89380"/>
<!-- Head -->
<circle cx="200" cy="160" r="62" fill="#A89380"/>
<!-- Ears -->
<path d="M 150 125 L 138 78 L 178 110 Z" fill="#A89380"/>
<path d="M 250 125 L 262 78 L 222 110 Z" fill="#A89380"/>
<path d="M 156 118 L 150 92 L 172 110 Z" fill="#F2A89E"/>
<path d="M 244 118 L 250 92 L 228 110 Z" fill="#F2A89E"/>
<!-- Eyes -->
<circle cx="178" cy="158" r="6.5" fill="#2B2622"/>
<circle cx="222" cy="158" r="6.5" fill="#2B2622"/>
<circle cx="180" cy="156" r="2" fill="#FFFFFF"/>
<circle cx="224" cy="156" r="2" fill="#FFFFFF"/>
<!-- Nose -->
<path d="M 195 178 L 205 178 L 200 185 Z" fill="#D98A7E"/>
<!-- Mouth -->
<path d="M 200 185 Q 200 192 194 192 M 200 185 Q 200 192 206 192"
fill="none" stroke="#2B2622" stroke-width="1.6" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#2B2622" stroke-width="1.4" stroke-linecap="round" opacity="0.75">
<line x1="160" y1="178" x2="125" y2="172"/>
<line x1="160" y1="184" x2="125" y2="188"/>
<line x1="240" y1="178" x2="275" y2="172"/>
<line x1="240" y1="184" x2="275" y2="188"/>
</g>
<!-- Cheek blush -->
<circle cx="165" cy="180" r="6" fill="#F2A89E" opacity="0.6"/>
<circle cx="235" cy="180" r="6" fill="#F2A89E" opacity="0.6"/>
</svg>GLM-5.2 · minimal · attempt 4 · score 8.5
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
<rect width="200" height="200" fill="#f4e4d4"/>
<!-- Body -->
<ellipse cx="100" cy="135" rx="55" ry="38" fill="#3a3a4a"/>
<!-- Tail -->
<path d="M 152 140 Q 180 140 178 110 Q 176 90 162 95" fill="none" stroke="#3a3a4a" stroke-width="12" stroke-linecap="round"/>
<!-- Head -->
<circle cx="100" cy="85" r="42" fill="#3a3a4a"/>
<!-- Ears -->
<path d="M 68 60 L 62 30 L 88 52 Z" fill="#3a3a4a"/>
<path d="M 132 60 L 138 30 L 112 52 Z" fill="#3a3a4a"/>
<!-- Inner ears -->
<path d="M 72 52 L 70 40 L 82 50 Z" fill="#e8a4a4"/>
<path d="M 128 52 L 130 40 L 118 50 Z" fill="#e8a4a4"/>
<!-- Eyes -->
<circle cx="84" cy="82" r="5" fill="#f4e4d4"/>
<circle cx="116" cy="82" r="5" fill="#f4e4d4"/>
<circle cx="84" cy="83" r="3" fill="#1a1a2a"/>
<circle cx="116" cy="83" r="3" fill="#1a1a2a"/>
<!-- Nose -->
<path d="M 97 96 L 103 96 L 100 100 Z" fill="#e8a4a4"/>
<!-- Mouth -->
<path d="M 100 100 Q 95 105 90 103 M 100 100 Q 105 105 110 103" fill="none" stroke="#f4e4d4" stroke-width="1.5" stroke-linecap="round"/>
<!-- Whiskers -->
<line x1="75" y1="98" x2="55" y2="95" stroke="#f4e4d4" stroke-width="1.2" stroke-linecap="round"/>
<line x1="75" y1="102" x2="55" y2="105" stroke="#f4e4d4" stroke-width="1.2" stroke-linecap="round"/>
<line x1="125" y1="98" x2="145" y2="95" stroke="#f4e4d4" stroke-width="1.2" stroke-linecap="round"/>
<line x1="125" y1="102" x2="145" y2="105" stroke="#f4e4d4" stroke-width="1.2" stroke-linecap="round"/>
<!-- Paws -->
<ellipse cx="75" cy="168" rx="10" ry="6" fill="#2a2a3a"/>
<ellipse cx="125" cy="168" rx="10" ry="6" fill="#2a2a3a"/>
</svg>realistic
“Draw a realistic sitting cat with visible fur shading as an SVG.”
GLM-5.2 · realistic · attempt 1 · score 8.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 700" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bg" cx="50%" cy="45%" r="70%">
<stop offset="0%" stop-color="#efe6d6"/>
<stop offset="100%" stop-color="#cdbfa6"/>
</radialGradient>
<linearGradient id="furBody" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#e8a36a"/>
<stop offset="45%" stop-color="#d98a4e"/>
<stop offset="100%" stop-color="#a85f30"/>
</linearGradient>
<linearGradient id="furHead" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#efb078"/>
<stop offset="60%" stop-color="#d98a4e"/>
<stop offset="100%" stop-color="#b96b35"/>
</linearGradient>
<linearGradient id="furLeg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#d98a4e"/>
<stop offset="100%" stop-color="#8f5024"/>
</linearGradient>
<linearGradient id="furTail" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#c97b3e"/>
<stop offset="100%" stop-color="#7d4421"/>
</linearGradient>
<radialGradient id="chest" cx="50%" cy="40%" r="60%">
<stop offset="0%" stop-color="#fbf3e2"/>
<stop offset="70%" stop-color="#ecd9b6"/>
<stop offset="100%" stop-color="#d9bf90"/>
</radialGradient>
<radialGradient id="eye" cx="40%" cy="40%" r="60%">
<stop offset="0%" stop-color="#9bd86a"/>
<stop offset="55%" stop-color="#5a9b3a"/>
<stop offset="100%" stop-color="#244d18"/>
</radialGradient>
<radialGradient id="shadow" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#000" stop-opacity="0.28"/>
<stop offset="100%" stop-color="#000" stop-opacity="0"/>
</radialGradient>
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="1.2"/>
</filter>
<symbol id="furStreak" viewBox="0 0 10 10">
<path d="M0 5 Q5 0 10 5" stroke="#7d4421" stroke-width="0.8" fill="none" opacity="0.5"/>
</symbol>
</defs>
<!-- background -->
<rect width="600" height="700" fill="url(#bg)"/>
<ellipse cx="300" cy="640" rx="220" ry="28" fill="url(#shadow)"/>
<!-- TAIL behind body, curling around to the front right -->
<g id="tail">
<path d="M330 560 C 470 560, 530 480, 510 400 C 495 340, 445 320, 410 350
C 440 345, 470 380, 460 430 C 450 490, 400 520, 330 540 Z"
fill="url(#furTail)"/>
<!-- tail fur strokes -->
<g stroke="#5e3014" stroke-width="1.4" fill="none" opacity="0.55" stroke-linecap="round">
<path d="M470 360 q6 -4 12 -2"/>
<path d="M480 380 q7 -3 13 -1"/>
<path d="M488 405 q7 -2 13 0"/>
<path d="M488 430 q7 0 13 3"/>
<path d="M480 460 q6 2 12 5"/>
<path d="M465 488 q5 4 10 8"/>
<path d="M440 510 q4 5 8 10"/>
<path d="M405 528 q3 6 5 12"/>
</g>
<g stroke="#f0c089" stroke-width="1" fill="none" opacity="0.5" stroke-linecap="round">
<path d="M455 365 q-6 -3 -12 -1"/>
<path d="M465 388 q-7 -2 -13 0"/>
<path d="M472 412 q-7 -1 -13 1"/>
<path d="M472 438 q-7 1 -13 3"/>
<path d="M463 466 q-6 3 -11 6"/>
<path d="M445 492 q-5 5 -9 9"/>
<path d="M418 514 q-3 6 -6 11"/>
</g>
</g>
<!-- BODY: large rounded sitting form -->
<g id="body">
<path d="M210 560
C 175 470, 175 380, 215 320
C 250 270, 350 270, 385 320
C 425 380, 425 470, 390 560
Z"
fill="url(#furBody)"/>
<!-- body shading: left shadow -->
<path d="M210 560 C 175 470, 175 380, 215 320
C 235 295, 270 285, 295 288
L 295 560 Z"
fill="#000" opacity="0.13"/>
<!-- body right highlight -->
<path d="M360 300 C 380 310, 400 340, 410 380
C 420 430, 415 500, 395 555
L 350 555 C 370 490, 375 420, 365 360 Z"
fill="#fff" opacity="0.07"/>
<!-- tabby stripes -->
<g stroke="#6f3818" stroke-width="3" fill="none" opacity="0.45" stroke-linecap="round">
<path d="M250 340 q20 6 38 0"/>
<path d="M320 340 q20 6 38 0"/>
<path d="M240 380 q22 7 42 0"/>
<path d="M325 380 q22 7 42 0"/>
<path d="M232 425 q24 8 46 0"/>
<path d="M328 425 q24 8 46 0"/>
<path d="M225 475 q26 9 50 0"/>
<path d="M330 475 q26 9 50 0"/>
<path d="M222 525 q28 10 54 0"/>
<path d="M332 525 q28 10 54 0"/>
</g>
<!-- soft fur flicks across body -->
<g stroke="#7d4421" stroke-width="0.9" fill="none" opacity="0.4" stroke-linecap="round">
<path d="M250 320 q3 -8 8 -10"/>
<path d="M270 312 q3 -8 8 -10"/>
<path d="M290 308 q3 -8 8 -10"/>
<path d="M315 308 q3 -8 8 -10"/>
<path d="M340 312 q3 -8 8 -10"/>
<path d="M360 320 q3 -8 8 -10"/>
<path d="M245 365 q-2 -8 2 -12"/>
<path d="M265 360 q-2 -8 2 -12"/>
<path d="M340 360 q2 -8 -2 -12"/>
<path d="M360 365 q2 -8 -2 -12"/>
<path d="M240 415 q-2 -8 2 -12"/>
<path d="M350 415 q2 -8 -2 -12"/>
<path d="M235 465 q-2 -8 2 -12"/>
<path d="M355 465 q2 -8 -2 -12"/>
</g>
</g>
<!-- CHEST fluff -->
<g id="chest">
<path d="M250 360
C 240 410, 245 470, 270 520
C 285 545, 315 545, 330 520
C 355 470, 360 410, 350 360
C 335 345, 310 340, 300 340
C 290 340, 265 345, 250 360 Z"
fill="url(#chest)"/>
<!-- chest fur strands -->
<g stroke="#b89868" stroke-width="0.8" fill="none" opacity="0.6" stroke-linecap="round">
<path d="M260 380 q5 18 0 36"/>
<path d="M275 372 q6 22 1 42"/>
<path d="M290 368 q6 24 1 46"/>
<path d="M305 368 q-6 24 -1 46"/>
<path d="M320 372 q-6 22 -1 42"/>
<path d="M335 380 q-5 18 0 36"/>
<path d="M268 410 q4 18 -1 36"/>
<path d="M285 405 q5 22 0 44"/>
<path d="M305 405 q-5 22 0 44"/>
<path d="M325 410 q-4 18 1 36"/>
</g>
<g stroke="#f4e6c5" stroke-width="0.7" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M270 385 q3 12 -1 24"/>
<path d="M285 380 q4 14 0 28"/>
<path d="M300 378 q4 14 0 28"/>
<path d="M315 380 q-4 14 0 28"/>
<path d="M328 385 q-3 12 1 24"/>
</g>
</g>
<!-- FRONT LEGS -->
<g id="legs">
<!-- left front leg -->
<path d="M255 470 C 248 510, 246 550, 252 575
L 290 575 C 294 550, 292 510, 285 470 Z"
fill="url(#furLeg)"/>
<!-- right front leg -->
<path d="M315 470 C 322 510, 324 550, 318 575
L 355 575 C 361 550, 359 510, 352 470 Z"
fill="url(#furLeg)"/>
<!-- paw shading -->
<ellipse cx="271" cy="578" rx="22" ry="8" fill="#5e3014" opacity="0.5"/>
<ellipse cx="336" cy="578" rx="22" ry="8" fill="#5e3014" opacity="0.5"/>
<!-- paw toes -->
<g stroke="#3d1e0c" stroke-width="1" fill="none" opacity="0.55">
<path d="M260 575 q4 6 8 0"/>
<path d="M272 577 q4 6 8 0"/>
<path d="M283 575 q4 6 8 0"/>
<path d="M325 575 q4 6 8 0"/>
<path d="M337 577 q4 6 8 0"/>
<path d="M348 575 q4 6 8 0"/>
</g>
<!-- leg highlights -->
<path d="M262 480 C 257 515, 256 545, 261 568 L 268 568 C 263 545, 264 515, 269 480 Z"
fill="#fff" opacity="0.12"/>
<path d="M322 480 C 327 515, 328 545, 323 568 L 330 568 C 335 545, 334 515, 329 480 Z"
fill="#fff" opacity="0.12"/>
<!-- leg fur flicks -->
<g stroke="#5e3014" stroke-width="0.8" fill="none" opacity="0.5" stroke-linecap="round">
<path d="M260 490 q-3 -6 1 -10"/>
<path d="M275 488 q-3 -6 1 -10"/>
<path d="M320 488 q3 -6 -1 -10"/>
<path d="M335 490 q3 -6 -1 -10"/>
<path d="M258 520 q-3 -6 1 -10"/>
<path d="M338 520 q3 -6 -1 -10"/>
</g>
</g>
<!-- HEAD -->
<g id="head">
<!-- ears -->
<path d="M225 240 L 215 165 L 275 215 Z" fill="url(#furHead)"/>
<path d="M375 240 L 385 165 L 325 215 Z" fill="url(#furHead)"/>
<!-- inner ears -->
<path d="M232 232 L 226 185 L 264 215 Z" fill="#d98a8a"/>
<path d="M368 232 L 374 185 L 336 215 Z" fill="#d98a8a"/>
<path d="M238 225 L 234 198 L 256 215 Z" fill="#b56060" opacity="0.6"/>
<path d="M362 225 L 366 198 L 344 215 Z" fill="#b56060" opacity="0.6"/>
<!-- ear fur flicks -->
<g stroke="#7d4421" stroke-width="1" fill="none" opacity="0.5" stroke-linecap="round">
<path d="M225 200 q-4 -8 0 -14"/>
<path d="M235 185 q-2 -8 2 -14"/>
<path d="M375 200 q4 -8 0 -14"/>
<path d="M365 185 q2 -8 -2 -14"/>
</g>
<!-- head shape -->
<path d="M215 250
C 215 215, 245 195, 300 195
C 355 195, 385 215, 385 250
C 392 290, 380 330, 350 350
C 330 362, 270 362, 250 350
C 220 330, 208 290, 215 250 Z"
fill="url(#furHead)"/>
<!-- head shading: left -->
<path d="M215 250 C 215 215, 245 195, 300 195
L 300 360 C 270 360, 250 350, 240 335
C 215 305, 208 280, 215 250 Z"
fill="#000" opacity="0.13"/>
<!-- right cheek highlight -->
<path d="M340 200 C 365 210, 385 230, 385 255
C 388 285, 378 315, 358 335
C 365 310, 368 280, 362 250
C 358 225, 350 210, 340 200 Z"
fill="#fff" opacity="0.08"/>
<!-- forehead tabby stripes (M shape + stripes) -->
<g stroke="#6f3818" stroke-width="3" fill="none" opacity="0.55" stroke-linecap="round">
<path d="M280 215 q10 -12 20 -2"/>
<path d="M300 213 q10 -10 20 0"/>
<path d="M260 235 q12 -8 24 -2"/>
<path d="M316 235 q12 -8 24 -2"/>
<path d="M250 260 q14 -6 28 -2"/>
<path d="M322 260 q14 -6 28 -2"/>
</g>
<!-- cheek fluff -->
<g stroke="#7d4421" stroke-width="0.9" fill="none" opacity="0.45" stroke-linecap="round">
<path d="M225 290 q-10 -4 -16 -10"/>
<path d="M228 305 q-10 -2 -17 -6"/>
<path d="M232 320 q-10 0 -16 -4"/>
<path d="M375 290 q10 -4 16 -10"/>
<path d="M372 305 q10 -2 17 -6"/>
<path d="M368 320 q10 0 16 -4"/>
</g>
<g stroke="#f0c089" stroke-width="0.7" fill="none" opacity="0.5" stroke-linecap="round">
<path d="M230 295 q-8 -2 -14 -7"/>
<path d="M233 310 q-8 -1 -14 -5"/>
<path d="M370 295 q8 -2 14 -7"/>
<path d="M367 310 q8 -1 14 -5"/>
</g>
<!-- white muzzle area -->
<path d="M255 320 C 265 340, 335 340, 345 320
C 345 305, 335 295, 300 295
C 265 295, 255 305, 255 320 Z"
fill="#fbf3e2" opacity="0.85"/>
<!-- EYES -->
<g id="eyes">
<!-- left eye -->
<path d="M255 275 Q 275 263 295 275 Q 280 292 255 275 Z" fill="#1a1a1a"/>
<path d="M257 276 Q 275 266 293 276 Q 280 288 257 276 Z" fill="url(#eye)"/>
<ellipse cx="278" cy="276" rx="2.6" ry="9.5" fill="#0c0c0c"/>
<ellipse cx="271" cy="272" rx="2.2" ry="1.6" fill="#fff" opacity="0.9"/>
<ellipse cx="283" cy="280" rx="1" ry="0.8" fill="#fff" opacity="0.6"/>
<!-- right eye -->
<path d="M305 275 Q 325 263 345 275 Q 330 292 305 275 Z" fill="#1a1a1a"/>
<path d="M307 276 Q 325 266 343 276 Q 330 288 307 276 Z" fill="url(#eye)"/>
<ellipse cx="328" cy="276" rx="2.6" ry="9.5" fill="#0c0c0c"/>
<ellipse cx="321" cy="272" rx="2.2" ry="1.6" fill="#fff" opacity="0.9"/>
<ellipse cx="333" cy="280" rx="1" ry="0.8" fill="#fff" opacity="0.6"/>
<!-- eye upper lid shadow -->
<path d="M255 275 Q 275 263 295 275" stroke="#3d1e0c" stroke-width="1.4" fill="none" opacity="0.7"/>
<path d="M305 275 Q 325 263 345 275" stroke="#3d1e0c" stroke-width="1.4" fill="none" opacity="0.7"/>
</g>
<!-- NOSE -->
<path d="M293 312 L 307 312 L 300 322 Z" fill="#c66a6a"/>
<path d="M293 312 L 300 312 L 300 318 Z" fill="#a04f4f" opacity="0.6"/>
<!-- MOUTH -->
<path d="M300 322 Q 300 330 295 332" stroke="#5e3014" stroke-width="1.2" fill="none" stroke-linecap="round"/>
<path d="M300 322 Q 300 330 305 332" stroke="#5e3014" stroke-width="1.2" fill="none" stroke-linecap="round"/>
<path d="M295 332 Q 285 335 280 332" stroke="#5e3014" stroke-width="1.1" fill="none" stroke-linecap="round" opacity="0.7"/>
<path d="M305 332 Q 315 335 320 332" stroke="#5e3014" stroke-width="1.1" fill="none" stroke-linecap="round" opacity="0.7"/>
<!-- WHISKERS -->
<g stroke="#fbf3e2" stroke-width="0.9" fill="none" opacity="0.85" stroke-linecap="round">
<path d="M255 320 Q 200 314 165 320"/>
<path d="M255 328 Q 200 328 160 340"/>
<path d="M258 335 Q 210 345 175 360"/>
<path d="M345 320 Q 400 314 435 320"/>
<path d="M345 328 Q 400 328 440 340"/>
<path d="M342 335 Q 390 345 425 360"/>
</g>
<g stroke="#3d1e0c" stroke-width="0.4" fill="none" opacity="0.4" stroke-linecap="round">
<path d="M255 322 Q 200 316 165 322"/>
<path d="M345 322 Q 400 316 435 322"/>
</g>
<!-- eyebrow whiskers -->
<g stroke="#7d4421" stroke-width="0.7" fill="none" opacity="0.6" stroke-linecap="round">
<path d="M260 240 q-10 -22 -22 -30"/>
<path d="M275 232 q-6 -22 -10 -34"/>
<path d="M340 240 q10 -22 22 -30"/>
<path d="M325 232 q6 -22 10 -34"/>
</g>
<!-- subtle chin fluff -->
<g stroke="#ecd9b6" stroke-width="0.7" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M285 340 q-2 8 -6 14"/>
<path d="M300 342 q0 8 0 14"/>
<path d="M315 340 q2 8 6 14"/>
</g>
</g>
<!-- overall soft fur grain over the whole cat -->
<g opacity="0.25" stroke="#3d1e0c" stroke-width="0.4" fill="none" stroke-linecap="round">
<path d="M230 250 q3 -3 6 0"/>
<path d="M250 240 q3 -3 6 0"/>
<path d="M270 232 q3 -3 6 0"/>
<path d="M324 232 q3 -3 6 0"/>
<path d="M344 240 q3 -3 6 0"/>
<path d="M364 250 q3 -3 6 0"/>
<path d="M255 335 q3 4 0 8"/>
<path d="M345 335 q-3 4 0 8"/>
</g>
</svg>GLM-5.2 · realistic · attempt 2 · score 8.3
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" width="600" height="600">
<defs>
<radialGradient id="bg" cx="50%" cy="45%" r="70%">
<stop offset="0%" stop-color="#e8e4dd"/>
<stop offset="100%" stop-color="#bdb6a8"/>
</radialGradient>
<linearGradient id="furBody" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#7a4a2a"/>
<stop offset="45%" stop-color="#5c3318"/>
<stop offset="100%" stop-color="#2e1a0c"/>
</linearGradient>
<linearGradient id="furLight" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#9a6438"/>
<stop offset="60%" stop-color="#6e3f20"/>
<stop offset="100%" stop-color="#3d2110"/>
</linearGradient>
<linearGradient id="furFace" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#8a5733"/>
<stop offset="100%" stop-color="#4a2812"/>
</linearGradient>
<radialGradient id="eyeG" cx="40%" cy="35%" r="65%">
<stop offset="0%" stop-color="#f5d96a"/>
<stop offset="55%" stop-color="#c89a2e"/>
<stop offset="100%" stop-color="#5a3c10"/>
</radialGradient>
<radialGradient id="earInner" cx="50%" cy="60%" r="60%">
<stop offset="0%" stop-color="#d98a8a"/>
<stop offset="100%" stop-color="#7a3535"/>
</radialGradient>
<radialGradient id="noseG" cx="40%" cy="35%" r="70%">
<stop offset="0%" stop-color="#e8a8b0"/>
<stop offset="100%" stop-color="#8a3a4a"/>
</radialGradient>
<radialGradient id="shadowG" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#1a1208" stop-opacity="0.55"/>
<stop offset="70%" stop-color="#1a1208" stop-opacity="0.15"/>
<stop offset="100%" stop-color="#1a1208" stop-opacity="0"/>
</radialGradient>
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="0.6"/>
</filter>
<symbol id="whisker" viewBox="0 0 100 4">
<path d="M0 2 Q60 1 100 2" stroke="#f0e8da" stroke-width="0.8" fill="none" opacity="0.85"/>
</symbol>
</defs>
<rect width="600" height="600" fill="url(#bg)"/>
<ellipse cx="305" cy="500" rx="200" ry="28" fill="url(#shadowG)"/>
<!-- Tail wrapping around -->
<g id="tail">
<path d="M180 470 Q120 460 110 410 Q108 365 150 355 Q175 355 185 380" fill="url(#furBody)" stroke="#2a1608" stroke-width="2"/>
<g opacity="0.55" stroke="#3a2010" stroke-width="1.2" fill="none" stroke-linecap="round">
<path d="M115 445 Q108 425 122 405"/>
<path d="M120 395 Q130 378 150 372"/>
<path d="M165 360 Q180 358 188 372"/>
<path d="M175 460 Q150 460 128 448"/>
</g>
<g opacity="0.4" stroke="#a86a3a" stroke-width="0.8" fill="none" stroke-linecap="round">
<path d="M135 450 Q128 425 145 405"/>
<path d="M160 380 Q175 372 185 385"/>
</g>
</g>
<!-- Body (sitting) -->
<g id="body">
<path d="M205 490 Q195 380 240 320 Q280 285 330 285 Q390 285 430 330 Q470 390 455 490 Q430 505 330 505 Q235 505 205 490 Z" fill="url(#furBody)" stroke="#2a1608" stroke-width="2"/>
<!-- front leg suggestion -->
<path d="M300 430 Q295 480 310 500 L340 500 Q350 480 345 430 Z" fill="url(#furLight)" stroke="#2a1608" stroke-width="1.5"/>
<path d="M345 430 Q342 480 360 500 L390 500 Q398 480 392 430 Z" fill="url(#furLight)" stroke="#2a1608" stroke-width="1.5"/>
<!-- paw lines -->
<path d="M308 495 Q315 498 322 495 M312 500 L312 498 M318 500 L318 498" stroke="#2a1608" stroke-width="1.2" fill="none" stroke-linecap="round"/>
<path d="M368 495 Q375 498 382 495 M372 500 L372 498 M378 500 L378 498" stroke="#2a1608" stroke-width="1.2" fill="none" stroke-linecap="round"/>
<!-- Fur shading strokes -->
<g stroke="#3a2010" stroke-width="1.1" fill="none" stroke-linecap="round" opacity="0.6">
<path d="M220 470 Q230 440 245 420"/>
<path d="M240 485 Q250 450 265 425"/>
<path d="M265 490 Q272 455 285 430"/>
<path d="M300 490 Q300 455 308 432"/>
<path d="M400 485 Q398 450 392 430"/>
<path d="M420 490 Q418 455 408 430"/>
<path d="M440 480 Q435 445 422 420"/>
<path d="M450 460 Q445 425 432 400"/>
</g>
<g stroke="#a86a3a" stroke-width="0.7" fill="none" stroke-linecap="round" opacity="0.5">
<path d="M230 460 Q240 435 255 415"/>
<path d="M255 470 Q262 440 278 420"/>
<path d="M285 475 Q290 445 300 425"/>
<path d="M410 470 Q408 440 398 422"/>
<path d="M430 470 Q428 438 418 418"/>
</g>
<g stroke="#1f1208" stroke-width="0.8" fill="none" stroke-linecap="round" opacity="0.5">
<path d="M250 360 Q255 380 250 405"/>
<path d="M270 340 Q275 370 270 400"/>
<path d="M295 320 Q298 360 295 400"/>
<path d="M325 312 Q328 360 326 400"/>
<path d="M360 315 Q362 360 360 405"/>
<path d="M390 325 Q392 365 388 405"/>
<path d="M415 345 Q418 380 415 410"/>
</g>
</g>
<!-- Chest fluffy fur -->
<g id="chest">
<path d="M250 330 Q280 360 330 365 Q380 360 410 330 Q400 410 330 420 Q260 410 250 330 Z" fill="url(#furLight)" opacity="0.9"/>
<g stroke="#d8a060" stroke-width="1" fill="none" stroke-linecap="round" opacity="0.55">
<path d="M270 340 Q275 370 268 395"/>
<path d="M290 350 Q295 380 290 408"/>
<path d="M312 358 Q315 388 312 415"/>
<path d="M335 360 Q338 390 335 415"/>
<path d="M358 358 Q362 388 360 412"/>
<path d="M380 352 Q383 380 380 405"/>
<path d="M400 342 Q403 372 398 395"/>
</g>
<g stroke="#5c3318" stroke-width="0.7" fill="none" stroke-linecap="round" opacity="0.6">
<path d="M260 345 Q268 375 262 400"/>
<path d="M285 355 Q292 385 286 410"/>
<path d="M320 365 Q325 395 322 418"/>
<path d="M345 365 Q348 395 345 418"/>
<path d="M375 360 Q378 388 374 410"/>
<path d="M395 348 Q400 378 395 400"/>
</g>
</g>
<!-- Head -->
<g id="head">
<!-- Ears -->
<path d="M218 250 L208 175 L268 225 Z" fill="url(#furBody)" stroke="#2a1608" stroke-width="1.5"/>
<path d="M442 250 L452 175 L392 225 Z" fill="url(#furBody)" stroke="#2a1608" stroke-width="1.5"/>
<path d="M228 240 L222 195 L258 225 Z" fill="url(#earInner)"/>
<path d="M432 240 L438 195 L402 225 Z" fill="url(#earInner)"/>
<g stroke="#1f1208" stroke-width="0.8" fill="none" stroke-linecap="round" opacity="0.7">
<path d="M232 235 Q230 215 240 200"/>
<path d="M244 238 Q244 220 250 208"/>
<path d="M428 235 Q430 215 420 200"/>
<path d="M416 238 Q416 220 410 208"/>
</g>
<!-- Head shape -->
<path d="M210 245 Q205 300 240 325 Q280 345 330 345 Q380 345 420 325 Q455 300 450 245 Q440 220 400 215 Q360 210 330 210 Q300 210 260 215 Q220 220 210 245 Z" fill="url(#furFace)" stroke="#2a1608" stroke-width="2"/>
<!-- Forehead fur streaks (tabby) -->
<g stroke="#2a1608" stroke-width="1.5" fill="none" stroke-linecap="round" opacity="0.7">
<path d="M300 220 Q295 240 305 255"/>
<path d="M320 218 Q318 240 328 255"/>
<path d="M280 225 Q278 245 290 258"/>
<path d="M340 222 Q343 245 333 258"/>
<path d="M260 230 Q262 250 275 260"/>
<path d="M360 228 Q358 250 348 260"/>
<path d="M240 245 Q248 262 262 268"/>
<path d="M420 245 Q412 262 398 268"/>
</g>
<g stroke="#c88555" stroke-width="0.6" fill="none" stroke-linecap="round" opacity="0.5">
<path d="M308 222 Q305 240 312 252"/>
<path d="M326 222 Q326 240 332 252"/>
</g>
<!-- Cheek fur -->
<g stroke="#3a2010" stroke-width="1" fill="none" stroke-linecap="round" opacity="0.55">
<path d="M225 285 Q240 300 260 305"/>
<path d="M232 300 Q245 315 270 318"/>
<path d="M435 285 Q420 300 400 305"/>
<path d="M428 300 Q415 315 390 318"/>
<path d="M240 270 Q252 282 268 287"/>
<path d="M420 270 Q408 282 392 287"/>
</g>
<!-- Eyes -->
<g id="eyes">
<ellipse cx="278" cy="270" rx="22" ry="20" fill="#1a0f08"/>
<ellipse cx="278" cy="270" rx="20" ry="18" fill="url(#eyeG)"/>
<ellipse cx="278" cy="270" rx="4" ry="16" fill="#1a0f08"/>
<ellipse cx="272" cy="262" rx="5" ry="4" fill="#fff4d0" opacity="0.9"/>
<ellipse cx="285" cy="278" rx="2" ry="2" fill="#fff4d0" opacity="0.5"/>
<path d="M256 270 Q278 252 300 270 Q278 262 256 270 Z" fill="#2a1608" opacity="0.5"/>
<ellipse cx="382" cy="270" rx="22" ry="20" fill="#1a0f08"/>
<ellipse cx="382" cy="270" rx="20" ry="18" fill="url(#eyeG)"/>
<ellipse cx="382" cy="270" rx="4" ry="16" fill="#1a0f08"/>
<ellipse cx="376" cy="262" rx="5" ry="4" fill="#fff4d0" opacity="0.9"/>
<ellipse cx="389" cy="278" rx="2" ry="2" fill="#fff4d0" opacity="0.5"/>
<path d="M360 270 Q382 252 404 270 Q382 262 360 270 Z" fill="#2a1608" opacity="0.5"/>
</g>
<!-- Nose bridge & nose -->
<path d="M325 280 Q322 300 330 312 Q338 300 335 280 Z" fill="url(#furLight)" opacity="0.6"/>
<g stroke="#2a1608" stroke-width="0.8" fill="none" stroke-linecap="round" opacity="0.6">
<path d="M322 285 Q325 295 328 305"/>
<path d="M338 285 Q335 295 332 305"/>
</g>
<path d="M320 312 Q330 306 340 312 Q338 322 330 326 Q322 322 320 312 Z" fill="url(#noseG)" stroke="#5a2030" stroke-width="1"/>
<path d="M330 326 L330 340" stroke="#2a1608" stroke-width="1.5" fill="none"/>
<path d="M330 340 Q315 350 295 348 M330 340 Q345 350 365 348" stroke="#2a1608" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<!-- Whiskers -->
<g opacity="0.85">
<path d="M310 322 Q220 305 150 295" stroke="#f0e8da" stroke-width="1" fill="none"/>
<path d="M312 330 Q210 322 130 325" stroke="#f0e8da" stroke-width="1" fill="none"/>
<path d="M314 338 Q220 345 140 360" stroke="#f0e8da" stroke-width="1" fill="none"/>
<path d="M350 322 Q440 305 510 295" stroke="#f0e8da" stroke-width="1" fill="none"/>
<path d="M348 330 Q450 322 530 325" stroke="#f0e8da" stroke-width="1" fill="none"/>
<path d="M346 338 Q440 345 520 360" stroke="#f0e8da" stroke-width="1" fill="none"/>
</g>
<g opacity="0.6">
<path d="M308 326 Q260 318 200 312" stroke="#f0e8da" stroke-width="0.6" fill="none"/>
<path d="M352 326 Q400 318 460 312" stroke="#f0e8da" stroke-width="0.6" fill="none"/>
</g>
<!-- Mouth shading -->
<path d="M300 345 Q310 352 320 348 M360 345 Q350 352 340 348" stroke="#3a2010" stroke-width="0.8" fill="none" opacity="0.6"/>
<!-- Chin -->
<path d="M305 350 Q330 360 355 350 Q345 372 330 374 Q315 372 305 350 Z" fill="#5c3318" opacity="0.5"/>
</g>
<!-- Overall top highlight rim -->
<g opacity="0.25" stroke="#d8a060" stroke-width="1" fill="none" stroke-linecap="round">
<path d="M240 295 Q255 285 275 280"/>
<path d="M385 280 Q405 285 420 295"/>
<path d="M255 225 Q265 218 278 216"/>
<path d="M382 216 Q395 218 405 225"/>
</g>
</svg>GLM-5.2 · realistic · attempt 3 · score 7.8
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800" width="800" height="800">
<defs>
<radialGradient id="bg" cx="50%" cy="55%" r="70%">
<stop offset="0%" stop-color="#e9e3d6"/>
<stop offset="60%" stop-color="#cfc7b4"/>
<stop offset="100%" stop-color="#9a9078"/>
</radialGradient>
<linearGradient id="furBase" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#8a7d68"/>
<stop offset="45%" stop-color="#736655"/>
<stop offset="100%" stop-color="#4a4135"/>
</linearGradient>
<linearGradient id="furLight" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#b8a98c"/>
<stop offset="100%" stop-color="#8c7d63"/>
</linearGradient>
<radialGradient id="bodyShade" cx="45%" cy="40%" r="65%">
<stop offset="0%" stop-color="#a89a7e" stop-opacity="0"/>
<stop offset="70%" stop-color="#5d513f" stop-opacity="0.45"/>
<stop offset="100%" stop-color="#332b20" stop-opacity="0.85"/>
</radialGradient>
<radialGradient id="cheek" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#d9c4a0" stop-opacity="0.8"/>
<stop offset="100%" stop-color="#d9c4a0" stop-opacity="0"/>
</radialGradient>
<radialGradient id="eyeIris" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#b7d27a"/>
<stop offset="55%" stop-color="#7a9a3a"/>
<stop offset="100%" stop-color="#3a4a18"/>
</radialGradient>
<radialGradient id="nose" cx="50%" cy="40%" r="60%">
<stop offset="0%" stop-color="#d98a8a"/>
<stop offset="100%" stop-color="#9a5252"/>
</radialGradient>
<linearGradient id="earIn" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#c98a8a"/>
<stop offset="100%" stop-color="#7a4242"/>
</linearGradient>
<filter id="soft"><feGaussianBlur stdDeviation="0.6"/></filter>
<symbol id="fur" overflow="visible"></symbol>
</defs>
<rect width="800" height="800" fill="url(#bg)"/>
<ellipse cx="400" cy="730" rx="240" ry="22" fill="#000" opacity="0.18"/>
<!-- Tail curled around right side -->
<g id="tail">
<path d="M 510 640 C 600 640 640 560 600 500 C 570 455 510 460 490 510 C 475 548 500 575 530 565 C 555 557 558 530 540 520"
fill="none" stroke="#5a4f3f" stroke-width="58" stroke-linecap="round"/>
<path d="M 510 640 C 600 640 640 560 600 500 C 570 455 510 460 490 510 C 475 548 500 575 530 565 C 555 557 558 530 540 520"
fill="none" stroke="#6f6451" stroke-width="44" stroke-linecap="round"/>
<path d="M 510 640 C 600 640 640 560 600 500 C 570 455 510 460 490 510 C 475 548 500 575 530 565 C 555 557 558 530 540 520"
fill="none" stroke="#8a7c64" stroke-width="24" stroke-linecap="round" opacity="0.7"/>
</g>
<!-- Body / haunch silhouette -->
<g id="body">
<path d="M 250 700
C 230 600 235 520 280 470
C 300 445 330 432 360 432
L 440 432
C 470 432 500 445 520 470
C 565 520 570 600 550 700
Z" fill="url(#furBase)"/>
<!-- front haunches -->
<ellipse cx="300" cy="600" rx="55" ry="95" fill="#5a4f3f"/>
<ellipse cx="500" cy="600" rx="55" ry="95" fill="#5a4f3f"/>
<!-- chest highlight -->
<path d="M 360 470 C 350 540 360 620 400 690 C 440 620 450 540 440 470 Z" fill="#b8a98c" opacity="0.85"/>
<path d="M 375 480 C 367 545 376 620 400 680 C 424 620 433 545 425 480 Z" fill="#d8c9a8" opacity="0.7"/>
</g>
<!-- Front legs/paws -->
<g id="legs">
<path d="M 318 640 C 308 690 320 715 345 718 L 365 718 C 380 712 378 695 372 680 C 368 660 360 645 360 640 Z" fill="#6f6451"/>
<path d="M 428 640 C 438 690 426 715 401 718 L 381 718 C 366 712 368 695 374 680 C 378 660 386 645 386 640 Z" fill="#6f6451"/>
<!-- paw highlights -->
<ellipse cx="350" cy="715" rx="22" ry="9" fill="#8a7c64"/>
<ellipse cx="396" cy="715" rx="22" ry="9" fill="#8a7c64"/>
<!-- toe separations -->
<path d="M 340 716 q 4 6 10 6 M 350 716 q 4 6 10 6 M 360 716 q 4 6 8 5" stroke="#3a3328" stroke-width="1.5" fill="none" opacity="0.7"/>
<path d="M 386 716 q 4 6 10 6 M 396 716 q 4 6 10 6 M 406 716 q 4 6 8 5" stroke="#3a3328" stroke-width="1.5" fill="none" opacity="0.7"/>
</g>
<!-- Head -->
<g id="head" transform="translate(400 360)">
<!-- ears back shadow -->
<path d="M -90 -90 L -120 -160 L -45 -110 Z" fill="#5a4f3f"/>
<path d="M 90 -90 L 120 -160 L 45 -110 Z" fill="#5a4f3f"/>
<!-- ear interiors -->
<path d="M -85 -95 L -110 -150 L -52 -112 Z" fill="url(#earIn)"/>
<path d="M 85 -95 L 110 -150 L 52 -112 Z" fill="url(#earIn)"/>
<!-- ear fur tufts -->
<path d="M -80 -100 q -8 -10 -4 -22 M -70 -105 q -6 -8 -2 -18 M -60 -108 q -4 -6 0 -14" stroke="#d8c9a8" stroke-width="2" fill="none" opacity="0.8"/>
<path d="M 80 -100 q 8 -10 4 -22 M 70 -105 q 6 -8 2 -18 M 60 -108 q 4 -6 0 -14" stroke="#d8c9a8" stroke-width="2" fill="none" opacity="0.8"/>
<!-- head base -->
<ellipse cx="0" cy="0" rx="110" ry="95" fill="url(#furBase)"/>
<!-- forehead light -->
<path d="M -55 -50 C -50 -85 0 -95 50 -85 C 30 -70 20 -55 0 -50 C -20 -55 -35 -55 -55 -50 Z" fill="#8a7c64" opacity="0.85"/>
<!-- cheeks -->
<ellipse cx="-70" cy="20" rx="42" ry="38" fill="url(#cheek)"/>
<ellipse cx="70" cy="20" rx="42" ry="38" fill="url(#cheek)"/>
<!-- muzzle -->
<ellipse cx="0" cy="42" rx="40" ry="26" fill="#d8c9a8" opacity="0.9"/>
<ellipse cx="0" cy="48" rx="22" ry="14" fill="#efe2c4" opacity="0.7"/>
<!-- tabby M stripes on forehead -->
<g stroke="#3a3328" stroke-width="3" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M -40 -70 q 10 12 20 0"/>
<path d="M -20 -78 q 10 14 20 0"/>
<path d="M 0 -82 q 10 14 20 0"/>
<path d="M 20 -78 q 10 14 20 0"/>
<path d="M 40 -70 q 10 12 18 -2"/>
<path d="M -55 -55 q 8 -10 -2 -22"/>
<path d="M 55 -55 q -8 -10 2 -22"/>
</g>
<!-- cheek stripes -->
<g stroke="#3a3328" stroke-width="3" fill="none" opacity="0.55" stroke-linecap="round">
<path d="M -98 10 q -10 6 -18 -2"/>
<path d="M -95 28 q -12 4 -20 -4"/>
<path d="M -90 44 q -12 4 -18 -2"/>
<path d="M 98 10 q 10 6 18 -2"/>
<path d="M 95 28 q 12 4 20 -4"/>
<path d="M 90 44 q 12 4 18 -2"/>
</g>
<!-- eyes -->
<g id="eyes">
<!-- left -->
<path d="M -55 0 q 22 -20 44 0 q -22 28 -44 0 Z" fill="#f3ecd8"/>
<path d="M -52 2 q 19 -17 38 0 q -19 24 -38 0 Z" fill="url(#eyeIris)"/>
<ellipse cx="-33" cy="6" rx="6" ry="13" fill="#1a1408"/>
<ellipse cx="-30" cy="2" rx="2.5" ry="4" fill="#ffffff" opacity="0.9"/>
<ellipse cx="-37" cy="10" rx="1.5" ry="2" fill="#ffffff" opacity="0.6"/>
<!-- eye outline -->
<path d="M -55 0 q 22 -20 44 0 q -22 28 -44 0 Z" fill="none" stroke="#2a2014" stroke-width="2"/>
<path d="M -58 -4 q 4 -4 8 0" stroke="#2a2014" stroke-width="2" fill="none"/>
<path d="M -8 -4 q 4 -4 8 0" stroke="#2a2014" stroke-width="2" fill="none"/>
<!-- right -->
<path d="M 55 0 q -22 -20 -44 0 q 22 28 44 0 Z" fill="#f3ecd8"/>
<path d="M 52 2 q -19 -17 -38 0 q 19 24 38 0 Z" fill="url(#eyeIris)"/>
<ellipse cx="33" cy="6" rx="6" ry="13" fill="#1a1408"/>
<ellipse cx="30" cy="2" rx="2.5" ry="4" fill="#ffffff" opacity="0.9"/>
<ellipse cx="37" cy="10" rx="1.5" ry="2" fill="#ffffff" opacity="0.6"/>
<path d="M 55 0 q -22 -20 -44 0 q 22 28 44 0 Z" fill="none" stroke="#2a2014" stroke-width="2"/>
<path d="M 58 -4 q -4 -4 -8 0" stroke="#2a2014" stroke-width="2" fill="none"/>
<path d="M 8 -4 q -4 -4 -8 0" stroke="#2a2014" stroke-width="2" fill="none"/>
</g>
<!-- nose -->
<path d="M -10 38 L 10 38 L 0 50 Z" fill="url(#nose)"/>
<path d="M -10 38 L 10 38 L 0 50 Z" fill="none" stroke="#5a2828" stroke-width="1"/>
<path d="M -5 41 L 5 41 L 0 47 Z" fill="#7a3a3a" opacity="0.6"/>
<!-- philtrum / mouth -->
<path d="M 0 50 L 0 58" stroke="#5a3a3a" stroke-width="1.8" fill="none"/>
<path d="M 0 58 q -10 8 -18 4" stroke="#3a2820" stroke-width="2" fill="none" stroke-linecap="round"/>
<path d="M 0 58 q 10 8 18 4" stroke="#3a2820" stroke-width="2" fill="none" stroke-linecap="round"/>
<path d="M -22 64 q 22 14 44 0" stroke="#3a2820" stroke-width="1.5" fill="none" opacity="0.6"/>
<!-- chin -->
<ellipse cx="0" cy="72" rx="18" ry="6" fill="#efe2c4" opacity="0.5"/>
<!-- whiskers -->
<g stroke="#efe2c4" stroke-width="1.3" fill="none" opacity="0.95" stroke-linecap="round">
<path d="M -42 50 q -90 -8 -160 -28"/>
<path d="M -42 56 q -95 4 -170 0"/>
<path d="M -42 62 q -90 18 -158 38"/>
<path d="M -42 68 q -80 30 -140 60"/>
<path d="M 42 50 q 90 -8 160 -28"/>
<path d="M 42 56 q 95 4 170 0"/>
<path d="M 42 62 q 90 18 158 38"/>
<path d="M 42 68 q 80 30 140 60"/>
</g>
<g stroke="#2a2014" stroke-width="0.8" fill="none" opacity="0.5" stroke-linecap="round">
<path d="M -44 52 q -50 2 -90 -10"/>
<path d="M 44 52 q 50 2 90 -10"/>
</g>
<!-- short eyebrow whiskers -->
<g stroke="#3a3328" stroke-width="1.2" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M -45 -40 q -25 -10 -45 -18"/>
<path d="M -40 -32 q -22 -6 -42 -8"/>
<path d="M 45 -40 q 25 -10 45 -18"/>
<path d="M 40 -32 q 22 -6 42 -8"/>
</g>
</g>
<!-- Body shading overlay -->
<path d="M 250 700 C 230 600 235 520 280 470 C 300 445 330 432 360 432 L 440 432 C 470 432 500 445 520 470 C 565 520 570 600 550 700 Z" fill="url(#bodyShade)"/>
<!-- Body fur strokes - layered short curved strokes following contours -->
<g id="furBody" stroke-linecap="round" fill="none">
<g stroke="#3a3328" stroke-width="2" opacity="0.6">
<!-- shoulder stripes -->
<path d="M 285 470 q 18 8 4 28"/>
<path d="M 300 460 q 22 10 6 32"/>
<path d="M 320 455 q 22 12 6 34"/>
<path d="M 515 470 q -18 8 -4 28"/>
<path d="M 500 460 q -22 10 -6 32"/>
<path d="M 480 455 q -22 12 -6 34"/>
</g>
<g stroke="#5a4f3f" stroke-width="1.6" opacity="0.7">
<!-- back-of-body fur direction -->
<path d="M 260 560 q 18 6 6 28"/>
<path d="M 268 580 q 20 4 8 28"/>
<path d="M 275 605 q 20 4 8 28"/>
<path d="M 280 630 q 20 2 8 26"/>
<path d="M 285 655 q 18 2 8 22"/>
<path d="M 540 560 q -18 6 -6 28"/>
<path d="M 532 580 q -20 4 -8 28"/>
<path d="M 525 605 q -20 4 -8 28"/>
<path d="M 520 630 q -20 2 -8 26"/>
<path d="M 515 655 q -18 2 -8 22"/>
</g>
<g stroke="#8a7c64" stroke-width="1.4" opacity="0.7">
<path d="M 340 470 q 4 30 -6 60"/>
<path d="M 360 465 q 6 36 -4 70"/>
<path d="M 380 462 q 6 40 -2 76"/>
<path d="M 420 462 q -6 40 2 76"/>
<path d="M 440 465 q -6 36 4 70"/>
<path d="M 460 470 q -4 30 6 60"/>
</g>
<g stroke="#b8a98c" stroke-width="1.2" opacity="0.7">
<path d="M 355 480 q 6 34 -4 66"/>
<path d="M 375 478 q 6 40 -2 76"/>
<path d="M 400 476 q 0 44 0 84"/>
<path d="M 425 478 q -6 40 2 76"/>
<path d="M 445 480 q -6 34 4 66"/>
</g>
<g stroke="#d8c9a8" stroke-width="1" opacity="0.6">
<path d="M 385 485 q 4 36 -2 72"/>
<path d="M 400 484 q 0 40 0 80"/>
<path d="M 415 485 q -4 36 2 72"/>
</g>
<!-- flank tabby stripes -->
<g stroke="#2f2a20" stroke-width="3.5" opacity="0.55" stroke-linecap="round">
<path d="M 255 620 q 18 4 6 26"/>
<path d="M 250 650 q 18 4 6 24"/>
<path d="M 250 680 q 18 4 8 20"/>
<path d="M 545 620 q -18 4 -6 26"/>
<path d="M 550 650 q -18 4 -6 24"/>
<path d="M 550 680 q -18 4 -8 20"/>
<path d="M 290 700 q 14 2 6 14"/>
<path d="M 320 706 q 14 0 6 12"/>
<path d="M 480 706 q -14 0 -6 12"/>
<path d="M 510 700 q -14 2 -6 14"/>
</g>
<!-- fur fuzz on edges of body -->
<g stroke="#6f6451" stroke-width="1" opacity="0.9">
<path d="M 248 690 q -8 -4 -14 2"/>
<path d="M 246 670 q -10 -2 -16 4"/>
<path d="M 245 645 q -10 0 -16 6"/>
<path d="M 247 620 q -10 2 -16 8"/>
<path d="M 252 595 q -10 4 -14 12"/>
<path d="M 260 565 q -10 6 -14 16"/>
<path d="M 552 690 q 8 -4 14 2"/>
<path d="M 554 670 q 10 -2 16 4"/>
<path d="M 555 645 q 10 0 16 6"/>
<path d="M 553 620 q 10 2 16 8"/>
<path d="M 548 595 q 10 4 14 12"/>
<path d="M 540 565 q 10 6 14 16"/>
</g>
<!-- top of head fur -->
<g stroke="#6f6451" stroke-width="1" opacity="0.9">
<path d="M 320 320 q -10 -8 -4 -20"/>
<path d="M 340 300 q -8 -10 0 -22"/>
<path d="M 360 285 q -6 -12 2 -22"/>
<path d="M 380 275 q -4 -14 4 -22"/>
<path d="M 420 275 q 4 -14 -4 -22"/>
<path d="M 440 285 q 6 -12 -2 -22"/>
<path d="M 460 300 q 8 -10 0 -22"/>
<path d="M 480 320 q 10 -8 4 -20"/>
</g>
<!-- cheek fur tufts -->
<g stroke="#b8a98c" stroke-width="1.2" opacity="0.85">
<path d="M 320 380 q -14 4 -18 -6"/>
<path d="M 318 395 q -16 6 -22 -2"/>
<path d="M 320 410 q -16 8 -24 0"/>
<path d="M 480 380 q 14 4 18 -6"/>
<path d="M 482 395 q 16 6 22 -2"/>
<path d="M 480 410 q 16 8 24 0"/>
</g>
<!-- neck fluff under chin -->
<g stroke="#d8c9a8" stroke-width="1.2" opacity="0.85">
<path d="M 350 430 q -10 8 -20 6"/>
<path d="M 370 440 q -8 10 -18 10"/>
<path d="M 390 445 q -4 12 -12 14"/>
<path d="M 410 445 q 4 12 12 14"/>
<path d="M 430 440 q 8 10 18 10"/>
<path d="M 450 430 q 10 8 20 6"/>
<path d="M 360 455 q -6 10 -16 12"/>
<path d="M 440 455 q 6 10 16 12"/>
</g>
</g>
<!-- paw fur fluff -->
<g stroke="#5a4f3f" stroke-width="1.2" opacity="0.8" fill="none" stroke-linecap="round">
<path d="M 312 690 q -6 -2 -10 4"/>
<path d="M 318 670 q -8 0 -10 8"/>
<path d="M 320 650 q -8 2 -10 10"/>
<path d="M 434 690 q 6 -2 10 4"/>
<path d="M 428 670 q 8 0 10 8"/>
<path d="M 426 650 q 8 2 10 10"/>
</g>
<!-- catchlights on fur - subtle -->
<g opacity="0.25">
<path d="M 330 500 q 30 -6 60 -2" stroke="#efe2c4" stroke-width="3" fill="none" stroke-linecap="round"/>
<path d="M 420 500 q 30 -6 60 -2" stroke="#efe2c4" stroke-width="3" fill="none" stroke-linecap="round"/>
</g>
<!-- tail fur strokes -->
<g stroke-linecap="round" fill="none">
<g stroke="#3a3328" stroke-width="3" opacity="0.5">
<path d="M 545 590 q 14 -2 10 14"/>
<path d="M 575 540 q 14 0 8 16"/>
<path d="M 600 500 q 12 -4 8 12"/>
</g>
<g stroke="#8a7c64" stroke-width="1.2" opacity="0.7">
<path d="M 530 600 q 16 0 12 14"/>
<path d="M 555 560 q 18 0 12 16"/>
<path d="M 580 520 q 18 -2 12 14"/>
<path d="M 595 490 q 16 -4 10 10"/>
</g>
</g>
</svg>GLM-5.2 · realistic · attempt 4 · score 8.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 700" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bodyGrad" cx="50%" cy="40%" r="65%">
<stop offset="0%" stop-color="#d8a878"/>
<stop offset="55%" stop-color="#b07a48"/>
<stop offset="100%" stop-color="#6b4226"/>
</radialGradient>
<radialGradient id="headGrad" cx="45%" cy="40%" r="70%">
<stop offset="0%" stop-color="#e0b282"/>
<stop offset="60%" stop-color="#b87a4a"/>
<stop offset="100%" stop-color="#6e4226"/>
</radialGradient>
<linearGradient id="earGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#f0d2b0"/>
<stop offset="100%" stop-color="#a86838"/>
</linearGradient>
<radialGradient id="eyeGrad" cx="40%" cy="35%" r="70%">
<stop offset="0%" stop-color="#9ad66a"/>
<stop offset="60%" stop-color="#3a7228"/>
<stop offset="100%" stop-color="#1a3a14"/>
</radialGradient>
<radialGradient id="bgGrad" cx="50%" cy="50%" r="70%">
<stop offset="0%" stop-color="#f4ead8"/>
<stop offset="100%" stop-color="#d8c4a0"/>
</radialGradient>
<filter id="soft" x="-10%" y="-10%" width="120%" height="120%">
<feGaussianBlur stdDeviation="2"/>
</filter>
<symbol id="furStroke" viewBox="0 0 4 12">
<path d="M2 0 Q0 6 2 12" stroke="#7a4e2c" stroke-width="0.8" fill="none"/>
</symbol>
</defs>
<!-- Background -->
<rect width="600" height="700" fill="url(#bgGrad)"/>
<ellipse cx="300" cy="640" rx="220" ry="22" fill="#a8916a" opacity="0.4"/>
<!-- Tail (curled around the right side) -->
<g id="tail">
<path d="M395 560 Q470 540 485 480 Q495 425 455 410 Q420 400 405 430 Q395 455 415 470 Q435 478 440 455"
fill="none" stroke="url(#bodyGrad)" stroke-width="42" stroke-linecap="round"/>
<path d="M395 560 Q470 540 485 480 Q495 425 455 410 Q420 400 405 430 Q395 455 415 470 Q435 478 440 455"
fill="none" stroke="#5a3420" stroke-width="42" stroke-linecap="round" opacity="0.25" filter="url(#soft)"/>
<!-- tail fur -->
<g stroke="#5a3318" stroke-width="1" fill="none" opacity="0.55" stroke-linecap="round">
<path d="M410 545 q8 -4 16 -2"/>
<path d="M430 538 q10 -3 18 0"/>
<path d="M455 525 q10 -4 18 -2"/>
<path d="M475 500 q8 -6 14 -10"/>
<path d="M482 470 q4 -10 6 -18"/>
<path d="M470 435 q-8 -8 -16 -8"/>
<path d="M445 420 q-12 -2 -20 4"/>
<path d="M420 425 q-10 6 -12 16"/>
</g>
<g stroke="#e6c598" stroke-width="1" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M420 555 q8 -3 16 -1"/>
<path d="M445 545 q10 -2 18 0"/>
<path d="M470 528 q8 -4 14 -6"/>
<path d="M478 498 q4 -8 6 -16"/>
<path d="M465 445 q-8 -6 -16 -6"/>
</g>
</g>
<!-- Body (sitting, rounded torso) -->
<g id="body">
<path d="M195 590
Q170 480 200 410
Q230 360 300 358
Q370 360 400 410
Q430 480 405 590
Q402 615 380 620
L220 620
Q198 615 195 590 Z"
fill="url(#bodyGrad)"/>
<!-- belly highlight -->
<path d="M250 600 Q260 470 300 420 Q340 470 350 600 Q300 615 250 600 Z"
fill="#e8c89c" opacity="0.45" filter="url(#soft)"/>
<!-- side shadow -->
<path d="M195 590 Q170 480 200 410 Q210 388 225 378 Q200 470 215 590 Q220 610 235 618 Q210 615 195 590 Z"
fill="#5a3318" opacity="0.35" filter="url(#soft)"/>
<path d="M405 590 Q428 490 400 415 Q388 388 375 380 Q400 470 385 590 Q380 610 365 618 Q390 615 405 590 Z"
fill="#5a3318" opacity="0.3" filter="url(#soft)"/>
</g>
<!-- Front legs & paws -->
<g id="legs">
<path d="M255 615 Q250 645 262 660 L298 660 Q300 640 296 615 Z" fill="url(#bodyGrad)"/>
<path d="M345 615 Q350 645 338 660 L302 660 Q300 640 304 615 Z" fill="url(#bodyGrad)"/>
<!-- paw shadows -->
<ellipse cx="280" cy="660" rx="22" ry="7" fill="#3a2010" opacity="0.4"/>
<ellipse cx="320" cy="660" rx="22" ry="7" fill="#3a2010" opacity="0.4"/>
<!-- toe lines -->
<path d="M270 658 q2 6 4 8 M280 658 q0 7 0 9 M290 658 q-2 6 -4 8" stroke="#5a3318" stroke-width="1.2" fill="none" opacity="0.6"/>
<path d="M310 658 q2 6 4 8 M320 658 q0 7 0 9 M330 658 q-2 6 -4 8" stroke="#5a3318" stroke-width="1.2" fill="none" opacity="0.6"/>
<!-- leg shading -->
<path d="M255 615 Q250 640 260 658 L270 658 Q262 640 268 615 Z" fill="#5a3318" opacity="0.3"/>
<path d="M345 615 Q350 640 340 658 L330 658 Q338 640 332 615 Z" fill="#5a3318" opacity="0.3"/>
</g>
<!-- Chest fluff -->
<g id="chest" fill="#e8c89c" opacity="0.85">
<path d="M260 400 Q255 430 268 450 Q275 425 278 400 Z"/>
<path d="M285 395 Q280 430 292 455 Q300 425 302 395 Z"/>
<path d="M310 395 Q305 430 315 455 Q322 425 322 395 Z"/>
<path d="M335 400 Q330 430 342 450 Q350 425 345 400 Z"/>
</g>
<g stroke="#d8b888" stroke-width="1" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M270 420 q4 8 2 18"/>
<path d="M290 420 q0 10 0 22"/>
<path d="M310 420 q0 10 0 22"/>
<path d="M330 420 q-4 8 -2 18"/>
</g>
<!-- Head -->
<g id="head">
<!-- ears -->
<path d="M232 285 L218 215 L268 255 Z" fill="url(#earGrad)"/>
<path d="M368 285 L382 215 L332 255 Z" fill="url(#earGrad)"/>
<path d="M240 270 L232 235 L258 258 Z" fill="#7a4226" opacity="0.6"/>
<path d="M360 270 L368 235 L342 258 Z" fill="#7a4226" opacity="0.6"/>
<!-- ear fluff -->
<g stroke="#f0d8b8" stroke-width="1.4" fill="none" stroke-linecap="round" opacity="0.9">
<path d="M242 268 q-2 -12 4 -22"/>
<path d="M250 270 q0 -14 4 -24"/>
<path d="M358 268 q2 -12 -4 -22"/>
<path d="M350 270 q0 -14 -4 -24"/>
</g>
<!-- head shape -->
<path d="M300 200
Q235 200 215 270
Q205 320 230 345
Q260 365 300 365
Q340 365 370 345
Q395 320 385 270
Q365 200 300 200 Z"
fill="url(#headGrad)"/>
<!-- forehead highlight -->
<path d="M300 210 Q270 215 255 245 Q275 230 300 228 Q325 230 345 245 Q330 215 300 210 Z" fill="#eecaa0" opacity="0.5" filter="url(#soft)"/>
<!-- cheek shadow -->
<path d="M215 270 Q205 320 230 345 Q250 358 270 358 Q230 340 220 290 Z" fill="#5a3318" opacity="0.3" filter="url(#soft)"/>
<path d="M385 270 Q395 320 370 345 Q350 358 330 358 Q370 340 380 290 Z" fill="#5a3318" opacity="0.3" filter="url(#soft)"/>
<!-- tabby stripes on head -->
<g stroke="#5a3318" stroke-width="2.5" fill="none" stroke-linecap="round" opacity="0.55">
<path d="M285 215 q5 14 0 28"/>
<path d="M300 213 q0 16 0 30"/>
<path d="M315 215 q-5 14 0 28"/>
<path d="M270 225 q5 10 -2 22"/>
<path d="M330 225 q-5 10 2 22"/>
</g>
<g stroke="#5a3318" stroke-width="1.8" fill="none" stroke-linecap="round" opacity="0.5">
<path d="M235 300 q-12 6 -18 18"/>
<path d="M245 318 q-14 4 -22 14"/>
<path d="M365 300 q12 6 18 18"/>
<path d="M355 318 q14 4 22 14"/>
</g>
</g>
<!-- Face -->
<g id="face">
<!-- eyes -->
<g>
<ellipse cx="265" cy="285" rx="18" ry="20" fill="#1a1a14"/>
<ellipse cx="265" cy="285" rx="15" ry="17" fill="url(#eyeGrad)"/>
<ellipse cx="265" cy="285" rx="3" ry="13" fill="#0a0a06"/>
<ellipse cx="260" cy="278" rx="3" ry="4" fill="#f4f0e0" opacity="0.9"/>
<ellipse cx="270" cy="292" rx="1.5" ry="1.5" fill="#f4f0e0" opacity="0.5"/>
</g>
<g>
<ellipse cx="335" cy="285" rx="18" ry="20" fill="#1a1a14"/>
<ellipse cx="335" cy="285" rx="15" ry="17" fill="url(#eyeGrad)"/>
<ellipse cx="335" cy="285" rx="3" ry="13" fill="#0a0a06"/>
<ellipse cx="330" cy="278" rx="3" ry="4" fill="#f4f0e0" opacity="0.9"/>
<ellipse cx="340" cy="292" rx="1.5" ry="1.5" fill="#f4f0e0" opacity="0.5"/>
</g>
<!-- eye surround fur -->
<g stroke="#3a2010" stroke-width="1" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M248 278 q-6 -4 -10 -2"/>
<path d="M246 290 q-8 0 -12 4"/>
<path d="M352 278 q6 -4 10 -2"/>
<path d="M354 290 q8 0 12 4"/>
</g>
<!-- nose -->
<path d="M295 318 Q300 314 305 318 Q308 324 300 330 Q292 324 295 318 Z" fill="#c47a6a"/>
<path d="M295 318 Q300 314 305 318 Q300 320 295 318 Z" fill="#e89a8a" opacity="0.7"/>
<!-- nose bridge -->
<path d="M300 295 L300 318" stroke="#7a4a30" stroke-width="2" opacity="0.5"/>
<!-- mouth -->
<path d="M300 330 Q295 340 288 338 M300 330 Q305 340 312 338" stroke="#5a3318" stroke-width="1.6" fill="none" stroke-linecap="round"/>
<!-- chin -->
<ellipse cx="300" cy="350" rx="14" ry="6" fill="#e8c89c" opacity="0.5"/>
<!-- whiskers -->
<g stroke="#f0e8d8" stroke-width="1" fill="none" stroke-linecap="round" opacity="0.85">
<path d="M255 320 Q210 314 175 318"/>
<path d="M255 328 Q208 326 170 332"/>
<path d="M258 336 Q218 340 182 348"/>
<path d="M345 320 Q390 314 425 318"/>
<path d="M345 328 Q392 326 430 332"/>
<path d="M342 336 Q382 340 418 348"/>
</g>
<g stroke="#5a3318" stroke-width="0.6" fill="none" stroke-linecap="round" opacity="0.4">
<path d="M260 322 Q230 322 205 324"/>
<path d="M340 322 Q370 322 395 324"/>
</g>
</g>
<!-- Fur strokes on body -->
<g id="bodyFur" stroke="#5a3318" fill="none" stroke-linecap="round" opacity="0.5">
<g stroke-width="1.4">
<path d="M225 410 q6 -6 14 -4"/>
<path d="M215 430 q8 -4 16 0"/>
<path d="M210 455 q10 -2 18 2"/>
<path d="M210 480 q10 0 18 4"/>
<path d="M213 505 q10 0 18 4"/>
<path d="M218 530 q10 0 16 4"/>
<path d="M225 555 q8 0 14 4"/>
<path d="M375 410 q-6 -6 -14 -4"/>
<path d="M385 430 q-8 -4 -16 0"/>
<path d="M390 455 q-10 -2 -18 2"/>
<path d="M390 480 q-10 0 -18 4"/>
<path d="M387 505 q-10 0 -18 4"/>
<path d="M382 530 q-10 0 -16 4"/>
<path d="M375 555 q-8 0 -14 4"/>
</g>
<g stroke="#e6c598" stroke-width="1.2" opacity="0.7">
<path d="M232 420 q6 -4 12 -2"/>
<path d="M222 445 q8 -2 14 0"/>
<path d="M220 470 q8 -1 14 1"/>
<path d="M222 495 q8 0 14 2"/>
<path d="M368 420 q-6 -4 -12 -2"/>
<path d="M378 445 q-8 -2 -14 0"/>
<path d="M380 470 q-8 -1 -14 1"/>
<path d="M378 495 q-8 0 -14 2"/>
</g>
</g>
<!-- shoulder highlights -->
<g opacity="0.4" filter="url(#soft)">
<path d="M240 400 Q230 440 245 470 Q255 440 260 400 Z" fill="#eecaa0"/>
<path d="M360 400 Q370 440 355 470 Q345 440 340 400 Z" fill="#eecaa0"/>
</g>
<!-- fine cheek fluff -->
<g stroke="#d8b888" stroke-width="1" fill="none" opacity="0.7" stroke-linecap="round">
<path d="M225 330 q-8 4 -12 12"/>
<path d="M232 340 q-8 4 -10 14"/>
<path d="M375 330 q8 4 12 12"/>
<path d="M368 340 q8 4 10 14"/>
<path d="M245 350 q-6 6 -8 14"/>
<path d="M355 350 q6 6 8 14"/>
</g>
</svg>action
“Draw a cat riding a bicycle as an SVG.”
GLM-5.2 · action · attempt 1 · score 9.3
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 400" text-rendering="geometricPrecision">
<defs>
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#cfe9ff"/>
<stop offset="1" stop-color="#eaf6ff"/>
</linearGradient>
<radialGradient id="fur" cx="0.4" cy="0.35" r="0.7">
<stop offset="0" stop-color="#ffb86b"/>
<stop offset="1" stop-color="#e8893a"/>
</radialGradient>
</defs>
<title>Cat riding a bicycle</title>
<desc>An orange tabby cat pedaling a red bicycle.</desc>
<!-- Sky -->
<rect width="600" height="400" fill="url(#sky)"/>
<!-- Ground -->
<ellipse cx="300" cy="365" rx="320" ry="22" fill="#9bd08a" opacity="0.6"/>
<line x1="20" y1="358" x2="580" y2="358" stroke="#6fae5d" stroke-width="3" stroke-linecap="round"/>
<!-- Clouds -->
<g fill="#ffffff" opacity="0.85">
<ellipse cx="90" cy="70" rx="34" ry="14"/>
<ellipse cx="120" cy="78" rx="26" ry="12"/>
<ellipse cx="490" cy="55" rx="40" ry="15"/>
<ellipse cx="520" cy="63" rx="28" ry="12"/>
</g>
<!-- ============== BICYCLE ============== -->
<!-- Wheels -->
<g fill="none" stroke="#2b2b33" stroke-width="6" stroke-linecap="round">
<circle cx="180" cy="290" r="62"/>
<circle cx="420" cy="290" r="62"/>
</g>
<g fill="none" stroke="#7a7a85" stroke-width="1.5">
<circle cx="180" cy="290" r="58"/>
<circle cx="420" cy="290" r="58"/>
</g>
<!-- Spokes -->
<g stroke="#c4c4cc" stroke-width="1.5">
<g transform="translate(180 290)">
<line x1="-58" y1="0" x2="58" y2="0"/>
<line x1="0" y1="-58" x2="0" y2="58"/>
<line x1="-41" y1="-41" x2="41" y2="41"/>
<line x1="-41" y1="41" x2="41" y2="-41"/>
</g>
<g transform="translate(420 290)">
<line x1="-58" y1="0" x2="58" y2="0"/>
<line x1="0" y1="-58" x2="0" y2="58"/>
<line x1="-41" y1="-41" x2="41" y2="41"/>
<line x1="-41" y1="41" x2="41" y2="-41"/>
</g>
</g>
<!-- Hubs -->
<circle cx="180" cy="290" r="5" fill="#2b2b33"/>
<circle cx="420" cy="290" r="5" fill="#2b2b33"/>
<!-- Frame -->
<g fill="none" stroke="#d2413c" stroke-width="7" stroke-linecap="round" stroke-linejoin="round">
<!-- down tube: bottom bracket to head tube top -->
<line x1="300" y1="295" x2="395" y2="225"/>
<!-- seat tube: bottom bracket to seat post top -->
<line x1="300" y1="295" x2="268" y2="210"/>
<!-- chain stay: bottom bracket to rear hub -->
<line x1="300" y1="295" x2="180" y2="290"/>
<!-- seat stay: rear hub to seat post top -->
<line x1="180" y1="290" x2="268" y2="210"/>
<!-- top tube: seat post top to head tube top -->
<line x1="268" y1="210" x2="395" y2="225"/>
<!-- fork: head tube top to front hub -->
<line x1="395" y1="225" x2="420" y2="290"/>
</g>
<!-- Seat post + seat -->
<line x1="268" y1="210" x2="262" y2="195" stroke="#2b2b33" stroke-width="5" stroke-linecap="round"/>
<path d="M244 190 Q262 182 282 190 Q278 198 262 198 Q250 198 244 190 Z" fill="#2b2b33"/>
<!-- Handlebar stem -->
<line x1="395" y1="225" x2="400" y2="195" stroke="#2b2b33" stroke-width="5" stroke-linecap="round"/>
<!-- Handlebars -->
<path d="M380 192 Q400 184 420 192" fill="none" stroke="#2b2b33" stroke-width="5" stroke-linecap="round"/>
<!-- Pedals / crank -->
<circle cx="300" cy="295" r="9" fill="#2b2b33"/>
<line x1="300" y1="295" x2="318" y2="318" stroke="#2b2b33" stroke-width="4" stroke-linecap="round"/>
<line x1="300" y1="295" x2="282" y2="272" stroke="#2b2b33" stroke-width="4" stroke-linecap="round"/>
<rect x="312" y="316" width="14" height="5" rx="2" fill="#2b2b33"/>
<rect x="274" y="269" width="14" height="5" rx="2" fill="#2b2b33"/>
<!-- ============== CAT ============== -->
<!-- Tail -->
<path d="M285 200 C 330 175, 345 150, 360 130 C 368 120, 360 118, 354 124"
fill="none" stroke="#e8893a" stroke-width="11" stroke-linecap="round"/>
<path d="M285 200 C 330 175, 345 150, 360 130 C 368 120, 360 118, 354 124"
fill="none" stroke="#c97a2e" stroke-width="4" stroke-linecap="round" opacity="0.5"/>
<!-- Body -->
<ellipse cx="262" cy="172" rx="42" ry="30" fill="url(#fur)"/>
<!-- Belly -->
<ellipse cx="258" cy="180" rx="26" ry="16" fill="#ffe3c2"/>
<!-- Stripes -->
<g stroke="#c97a2e" stroke-width="3" stroke-linecap="round" opacity="0.8" fill="none">
<path d="M282 152 q6 8 4 18"/>
<path d="M270 148 q4 10 2 22"/>
<path d="M255 150 q2 10 0 22"/>
</g>
<!-- Back leg (pedaling) -->
<path d="M275 192 q18 6 26 30" fill="none" stroke="#e8893a" stroke-width="12" stroke-linecap="round"/>
<ellipse cx="312" cy="318" rx="9" ry="7" fill="#e8893a"/>
<!-- Front leg reaching handlebar -->
<path d="M245 175 q40 -2 75 14" fill="none" stroke="#e8893a" stroke-width="11" stroke-linecap="round"/>
<ellipse cx="392" cy="190" rx="8" ry="6" fill="#e8893a"/>
<!-- Head -->
<circle cx="225" cy="140" r="28" fill="url(#fur)"/>
<!-- Cheek tuft -->
<path d="M198 144 q-8 4 -10 12 q10 2 16 -4 Z" fill="#ffe3c2"/>
<path d="M252 144 q8 4 10 12 q-10 2 -16 -4 Z" fill="#ffe3c2"/>
<!-- Ears -->
<path d="M202 120 L196 96 L218 110 Z" fill="#e8893a"/>
<path d="M248 120 L254 96 L232 110 Z" fill="#e8893a"/>
<path d="M204 116 L200 104 L212 110 Z" fill="#ffb6c1"/>
<path d="M246 116 L250 104 L238 110 Z" fill="#ffb6c1"/>
<!-- Stripes on head -->
<g stroke="#c97a2e" stroke-width="2.5" stroke-linecap="round" opacity="0.8" fill="none">
<path d="M210 120 q-2 -6 -6 -10"/>
<path d="M222 116 q0 -7 -2 -12"/>
<path d="M232 116 q0 -7 2 -12"/>
<path d="M240 120 q2 -6 6 -10"/>
</g>
<!-- Eyes -->
<ellipse cx="213" cy="138" rx="5" ry="6" fill="#2b2b33"/>
<ellipse cx="237" cy="138" rx="5" ry="6" fill="#2b2b33"/>
<circle cx="214.5" cy="136" r="1.6" fill="#fff"/>
<circle cx="238.5" cy="136" r="1.6" fill="#fff"/>
<!-- Nose -->
<path d="M222 150 l6 0 l-3 4 z" fill="#d6536b"/>
<!-- Mouth -->
<path d="M225 154 q-4 4 -8 2 M225 154 q4 4 8 2" fill="none" stroke="#7a4a2a" stroke-width="1.6" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#3a3a42" stroke-width="1" stroke-linecap="round" opacity="0.7">
<line x1="195" y1="152" x2="172" y2="148"/>
<line x1="195" y1="157" x2="172" y2="160"/>
<line x1="255" y1="152" x2="278" y2="148"/>
<line x1="255" y1="157" x2="278" y2="160"/>
</g>
<!-- Motion lines -->
<g stroke="#7fb8e8" stroke-width="2" stroke-linecap="round" opacity="0.7">
<line x1="60" y1="280" x2="120" y2="280"/>
<line x1="40" y1="300" x2="110" y2="300"/>
<line x1="70" y1="320" x2="125" y2="320"/>
</g>
</svg>GLM-5.2 · action · attempt 2 · score 9.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 500" width="600" height="500">
<defs>
<radialGradient id="sky" cx="50%" cy="40%" r="75%">
<stop offset="0%" stop-color="#fef6e4"/>
<stop offset="100%" stop-color="#f8d7c2"/>
</radialGradient>
<linearGradient id="ground" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#a8d5a2"/>
<stop offset="100%" stop-color="#6fa86b"/>
</linearGradient>
<radialGradient id="catBody" cx="40%" cy="35%" r="70%">
<stop offset="0%" stop-color="#ffd29c"/>
<stop offset="100%" stop-color="#e8a06a"/>
</radialGradient>
</defs>
<!-- Sky -->
<rect x="0" y="0" width="600" height="500" fill="url(#sky)"/>
<!-- Sun -->
<circle cx="500" cy="90" r="40" fill="#ffd166" opacity="0.85"/>
<circle cx="500" cy="90" r="55" fill="#ffd166" opacity="0.25"/>
<!-- Clouds -->
<g fill="#ffffff" opacity="0.9">
<ellipse cx="120" cy="90" rx="35" ry="14"/>
<ellipse cx="150" cy="80" rx="25" ry="12"/>
<ellipse cx="380" cy="130" rx="28" ry="11"/>
</g>
<!-- Ground -->
<path d="M0,380 Q300,360 600,385 L600,500 L0,500 Z" fill="url(#ground)"/>
<!-- Flowers -->
<g>
<g transform="translate(60,420)">
<line x1="0" y1="0" x2="0" y2="20" stroke="#3a7a3a" stroke-width="2"/>
<circle cx="-5" cy="-2" r="4" fill="#ff8fab"/>
<circle cx="5" cy="-2" r="4" fill="#ff8fab"/>
<circle cx="0" cy="-7" r="4" fill="#ff8fab"/>
<circle cx="-3" cy="3" r="4" fill="#ff8fab"/>
<circle cx="3" cy="3" r="4" fill="#ff8fab"/>
<circle cx="0" cy="0" r="3" fill="#ffe066"/>
</g>
<g transform="translate(490,430)">
<line x1="0" y1="0" x2="0" y2="18" stroke="#3a7a3a" stroke-width="2"/>
<circle cx="-5" cy="-2" r="4" fill="#c89ff0"/>
<circle cx="5" cy="-2" r="4" fill="#c89ff0"/>
<circle cx="0" cy="-7" r="4" fill="#c89ff0"/>
<circle cx="-3" cy="3" r="4" fill="#c89ff0"/>
<circle cx="3" cy="3" r="4" fill="#c89ff0"/>
<circle cx="0" cy="0" r="3" fill="#ffe066"/>
</g>
<g transform="translate(540,445)">
<line x1="0" y1="0" x2="0" y2="14" stroke="#3a7a3a" stroke-width="2"/>
<circle cx="-4" cy="-1" r="3" fill="#ff8fab"/>
<circle cx="4" cy="-1" r="3" fill="#ff8fab"/>
<circle cx="0" cy="-5" r="3" fill="#ff8fab"/>
<circle cx="0" cy="2" r="2.5" fill="#ffe066"/>
</g>
</g>
<!-- Grass tufts -->
<g stroke="#3a7a3a" stroke-width="2" fill="none" stroke-linecap="round">
<path d="M30,395 q2,-8 4,0 M34,395 q3,-10 5,0 M38,395 q2,-7 4,0"/>
<path d="M230,388 q2,-8 4,0 M234,388 q3,-10 5,0 M238,388 q2,-7 4,0"/>
<path d="M440,395 q2,-8 4,0 M444,395 q3,-10 5,0 M448,395 q2,-7 4,0"/>
<path d="M560,398 q2,-8 4,0 M564,398 q3,-10 5,0"/>
</g>
<!-- Motion lines -->
<g stroke="#ffffff" stroke-width="3" stroke-linecap="round" opacity="0.7">
<line x1="60" y1="270" x2="110" y2="270"/>
<line x1="40" y1="295" x2="100" y2="295"/>
<line x1="70" y1="320" x2="115" y2="320"/>
</g>
<!-- ====== BICYCLE ====== -->
<g stroke="#2b2d42" stroke-width="4" fill="none" stroke-linecap="round" stroke-linejoin="round">
<!-- Rear wheel -->
<g transform="translate(200,360)">
<circle r="42" fill="#2b2d42"/>
<circle r="36" fill="#f4f1de"/>
<circle r="32" fill="none" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="0" y1="-32" x2="0" y2="32" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="-32" y1="0" x2="32" y2="0" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="-23" y1="-23" x2="23" y2="23" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="-23" y1="23" x2="23" y2="-23" stroke="#2b2d42" stroke-width="1.5"/>
<circle r="5" fill="#ffd166" stroke="#2b2d42" stroke-width="2"/>
</g>
<!-- Front wheel -->
<g transform="translate(420,360)">
<circle r="42" fill="#2b2d42"/>
<circle r="36" fill="#f4f1de"/>
<circle r="32" fill="none" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="0" y1="-32" x2="0" y2="32" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="-32" y1="0" x2="32" y2="0" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="-23" y1="-23" x2="23" y2="23" stroke="#2b2d42" stroke-width="1.5"/>
<line x1="-23" y1="23" x2="23" y2="-23" stroke="#2b2d42" stroke-width="1.5"/>
<circle r="5" fill="#ffd166" stroke="#2b2d42" stroke-width="2"/>
</g>
<!-- Frame -->
<path d="M200,360 L260,300 L200,360 M260,300 L420,360 M260,300 L300,290 L420,360 M300,290 L300,250 M200,360 L260,300" stroke="#e63946" stroke-width="5"/>
<line x1="260" y1="300" x2="260" y2="300" stroke="#e63946"/>
<!-- Seat post -->
<line x1="260" y1="300" x2="250" y2="265" stroke="#2b2d42" stroke-width="4"/>
<!-- Handlebar post -->
<line x1="300" y1="250" x2="320" y2="230" stroke="#2b2d42" stroke-width="4"/>
<!-- Pedal crank -->
<circle cx="260" cy="300" r="6" fill="#ffd166" stroke="#2b2d42" stroke-width="2"/>
<line x1="260" y1="300" x2="240" y2="320" stroke="#2b2d42" stroke-width="3"/>
<line x1="260" y1="300" x2="280" y2="280" stroke="#2b2d42" stroke-width="3"/>
</g>
<!-- Seat -->
<ellipse cx="250" cy="262" rx="14" ry="6" fill="#2b2d42"/>
<!-- Handlebars -->
<path d="M320,230 Q340,225 345,235 M320,230 Q305,225 300,235" stroke="#2b2d42" stroke-width="4" fill="none" stroke-linecap="round"/>
<!-- Pedals -->
<rect x="234" y="316" width="12" height="6" rx="1" fill="#2b2d42"/>
<rect x="274" y="277" width="12" height="6" rx="1" fill="#2b2d42"/>
<!-- Basket -->
<g transform="translate(310,215)">
<path d="M0,0 L40,0 L36,28 L4,28 Z" fill="#d4a574" stroke="#8b5e34" stroke-width="2"/>
<path d="M0,8 L40,8 M2,16 L38,16 M0,0 L4,28 M40,0 L36,28 M20,0 L20,28" stroke="#8b5e34" stroke-width="1.5" fill="none"/>
<!-- fish in basket -->
<path d="M14,4 Q22,-2 28,5 Q24,8 14,8 Q10,7 14,4 Z" fill="#7fb3d5" stroke="#3a7a8a" stroke-width="1"/>
<path d="M10,5 L6,2 L6,8 Z" fill="#7fb3d5" stroke="#3a7a8a" stroke-width="1"/>
<circle cx="24" cy="4" r="1" fill="#2b2d42"/>
</g>
<!-- ====== CAT ====== -->
<g>
<!-- Tail -->
<path d="M250,250 Q200,235 180,200 Q175,180 195,175" stroke="#e8a06a" stroke-width="10" fill="none" stroke-linecap="round"/>
<path d="M250,250 Q200,235 180,200 Q175,180 195,175" stroke="#c97f4a" stroke-width="2" fill="none" stroke-linecap="round" opacity="0.5"/>
<!-- Back leg to pedal -->
<path d="M245,265 Q230,290 240,320" stroke="#e8a06a" stroke-width="11" fill="none" stroke-linecap="round"/>
<ellipse cx="240" cy="322" rx="8" ry="4" fill="#d4884a"/>
<!-- Body -->
<ellipse cx="260" cy="230" rx="38" ry="32" fill="url(#catBody)"/>
<!-- Belly -->
<ellipse cx="265" cy="240" rx="22" ry="20" fill="#fff4e0" opacity="0.7"/>
<!-- Front leg to handlebar/pedal -->
<path d="M280,245 Q295,255 300,235" stroke="#e8a06a" stroke-width="10" fill="none" stroke-linecap="round"/>
<!-- paw on handlebar -->
<ellipse cx="322" cy="228" rx="9" ry="6" fill="#e8a06a" transform="rotate(-20 322 228)"/>
<!-- Other front leg to pedal -->
<path d="M275,250 Q290,275 280,282" stroke="#e8a06a" stroke-width="9" fill="none" stroke-linecap="round"/>
<ellipse cx="278" cy="280" rx="7" ry="4" fill="#d4884a"/>
<!-- Head -->
<g>
<!-- Ears -->
<path d="M270,170 L262,148 L282,160 Z" fill="#e8a06a"/>
<path d="M310,168 L322,148 L318,162 Z" fill="#e8a06a"/>
<path d="M268,164 L266,154 L276,160 Z" fill="#ffb6a3"/>
<path d="M312,162 L318,154 L316,161 Z" fill="#ffb6a3"/>
<!-- Head shape -->
<ellipse cx="294" cy="185" rx="28" ry="25" fill="url(#catBody)"/>
<!-- Cheek fluff -->
<path d="M268,190 Q262,196 268,200 M268,196 Q264,202 270,204" stroke="#e8a06a" stroke-width="2" fill="none" stroke-linecap="round"/>
<path d="M320,190 Q326,196 320,200 M320,196 Q324,202 318,204" stroke="#e8a06a" stroke-width="2" fill="none" stroke-linecap="round"/>
<!-- Stripes -->
<path d="M278,168 Q282,172 280,176 M288,164 Q290,170 286,174 M300,164 Q300,170 304,174 M310,166 Q308,172 312,176" stroke="#c97f4a" stroke-width="2" fill="none" stroke-linecap="round" opacity="0.6"/>
<!-- Eyes (happy, closed/blink) -->
<path d="M282,182 Q286,178 290,182" stroke="#2b2d42" stroke-width="2.5" fill="none" stroke-linecap="round"/>
<path d="M298,182 Q302,178 306,182" stroke="#2b2d42" stroke-width="2.5" fill="none" stroke-linecap="round"/>
<!-- Nose -->
<path d="M292,193 L296,193 L294,196 Z" fill="#ff8fab"/>
<!-- Mouth -->
<path d="M294,196 Q294,200 290,200 M294,196 Q294,200 298,200" stroke="#2b2d42" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#2b2d42" stroke-width="1" fill="none" stroke-linecap="round" opacity="0.7">
<line x1="270" y1="192" x2="252" y2="188"/>
<line x1="270" y1="196" x2="250" y2="198"/>
<line x1="318" y1="192" x2="336" y2="188"/>
<line x1="318" y1="196" x2="338" y2="198"/>
</g>
<!-- Blush -->
<circle cx="278" cy="195" r="4" fill="#ff8fab" opacity="0.5"/>
<circle cx="310" cy="195" r="4" fill="#ff8fab" opacity="0.5"/>
</g>
<!-- Scarf flowing -->
<g>
<path d="M250,225 Q235,235 220,228 Q230,240 248,238 Z" fill="#e63946" stroke="#a8222e" stroke-width="1.5"/>
<path d="M248,238 Q258,250 240,258" stroke="#e63946" stroke-width="8" fill="none" stroke-linecap="round"/>
<path d="M248,238 Q258,250 240,258" stroke="#a8222e" stroke-width="1" fill="none" stroke-linecap="round" opacity="0.6"/>
<path d="M240,258 L236,268 L244,266 Z" fill="#e63946" stroke="#a8222e" stroke-width="1.5"/>
</g>
</g>
<!-- Sparkles -->
<g fill="#ffd166" opacity="0.9">
<path d="M160,150 l2,5 5,2 -5,2 -2,5 -2,-5 -5,-2 5,-2 z"/>
<path d="M440,200 l1.5,4 4,1.5 -4,1.5 -1.5,4 -1.5,-4 -4,-1.5 4,-1.5 z"/>
<path d="M90,220 l1.5,4 4,1.5 -4,1.5 -1.5,4 -1.5,-4 -4,-1.5 4,-1.5 z"/>
</g>
</svg>GLM-5.2 · action · attempt 3 · score 8.8
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600" text-rendering="geometricPrecision">
<defs>
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#aee4ff"/>
<stop offset="100%" stop-color="#fff4d6"/>
</linearGradient>
<linearGradient id="ground" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#9bd86a"/>
<stop offset="100%" stop-color="#6cb44a"/>
</linearGradient>
<radialGradient id="sun" cx="50%" cy="50%" r="50%">
<stop offset="0%" stop-color="#fff2b8"/>
<stop offset="100%" stop-color="#ffd25a"/>
</radialGradient>
<linearGradient id="catBody" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#ff9a3c"/>
<stop offset="100%" stop-color="#e6711b"/>
</linearGradient>
<linearGradient id="frame" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="#d83a3a"/>
<stop offset="100%" stop-color="#a32020"/>
</linearGradient>
<symbol id="spoke" viewBox="-2 -50 4 100">
<line x1="0" y1="-48" x2="0" y2="48" stroke="#c9c9c9" stroke-width="1.2"/>
</symbol>
</defs>
<!-- Sky -->
<rect width="800" height="600" fill="url(#sky)"/>
<!-- Sun -->
<circle cx="690" cy="110" r="60" fill="url(#sun)"/>
<g stroke="#ffd25a" stroke-width="3" stroke-linecap="round" opacity="0.7">
<line x1="690" y1="30" x2="690" y2="10"/>
<line x1="690" y1="210" x2="690" y2="190"/>
<line x1="610" y1="110" x2="590" y2="110"/>
<line x1="770" y1="110" x2="750" y2="110"/>
<line x1="635" y1="55" x2="622" y2="42"/>
<line x1="745" y1="55" x2="758" y2="42"/>
<line x1="635" y1="165" x2="622" y2="178"/>
<line x1="745" y1="165" x2="758" y2="178"/>
</g>
<!-- Clouds -->
<g fill="#ffffff" opacity="0.9">
<ellipse cx="150" cy="120" rx="55" ry="22"/>
<ellipse cx="190" cy="110" rx="40" ry="20"/>
<ellipse cx="110" cy="110" rx="35" ry="18"/>
<ellipse cx="430" cy="80" rx="48" ry="20"/>
<ellipse cx="470" cy="72" rx="32" ry="16"/>
</g>
<!-- Ground -->
<path d="M0 460 L800 460 L800 600 L0 600 Z" fill="url(#ground)"/>
<path d="M0 460 Q200 450 400 460 T800 460" stroke="#5aa53f" stroke-width="3" fill="none"/>
<!-- Distant hills -->
<path d="M0 460 Q150 400 320 460 T600 460 T800 460 L800 460 L0 460 Z" fill="#86c95e" opacity="0.5"/>
<!-- Motion lines behind bike -->
<g stroke="#ffffff" stroke-width="3" stroke-linecap="round" opacity="0.7">
<line x1="120" y1="430" x2="60" y2="430"/>
<line x1="130" y1="410" x2="80" y2="410"/>
<line x1="120" y1="450" x2="70" y2="450"/>
</g>
<!-- ===================== BICYCLE ===================== -->
<!-- Back wheel -->
<g transform="translate(310 430)">
<circle r="62" fill="#2b2b2b"/>
<circle r="56" fill="none" stroke="#1a1a1a" stroke-width="3"/>
<circle r="10" fill="#888"/>
<circle r="4" fill="#444"/>
<g>
<use href="#spoke" transform="rotate(0)"/>
<use href="#spoke" transform="rotate(30)"/>
<use href="#spoke" transform="rotate(60)"/>
<use href="#spoke" transform="rotate(90)"/>
<use href="#spoke" transform="rotate(120)"/>
<use href="#spoke" transform="rotate(150)"/>
</g>
</g>
<!-- Front wheel -->
<g transform="translate(560 430)">
<circle r="62" fill="#2b2b2b"/>
<circle r="56" fill="none" stroke="#1a1a1a" stroke-width="3"/>
<circle r="10" fill="#888"/>
<circle r="4" fill="#444"/>
<g>
<use href="#spoke" transform="rotate(15)"/>
<use href="#spoke" transform="rotate(45)"/>
<use href="#spoke" transform="rotate(75)"/>
<use href="#spoke" transform="rotate(105)"/>
<use href="#spoke" transform="rotate(135)"/>
<use href="#spoke" transform="rotate(165)"/>
</g>
</g>
<!-- Frame -->
<g stroke="url(#frame)" stroke-width="7" stroke-linecap="round" fill="none">
<!-- bottom tube (pedal to rear hub) -->
<line x1="435" y1="430" x2="310" y2="430"/>
<!-- seat tube -->
<line x1="435" y1="430" x2="400" y2="335"/>
<!-- down tube -->
<line x1="435" y1="430" x2="560" y2="430"/>
<!-- top tube -->
<line x1="400" y1="335" x2="510" y2="335"/>
<!-- head tube -->
<line x1="510" y1="335" x2="560" y2="430"/>
<!-- seat stays -->
<line x1="400" y1="335" x2="310" y2="430"/>
<!-- fork to front hub -->
<line x1="510" y1="335" x2="560" y2="430"/>
</g>
<!-- Chain & pedal crank -->
<g stroke="#555" stroke-width="2" fill="none">
<path d="M310 430 Q372 444 435 430 Q372 416 310 430 Z" fill="#3a3a3a" stroke="none" opacity="0.6"/>
</g>
<circle cx="435" cy="430" r="14" fill="#666"/>
<circle cx="435" cy="430" r="5" fill="#222"/>
<!-- pedal -->
<g transform="translate(435 430) rotate(35)">
<rect x="-3" y="0" width="6" height="26" rx="2" fill="#333"/>
<rect x="-10" y="22" width="20" height="6" rx="1" fill="#222"/>
</g>
<g transform="translate(435 430) rotate(215)">
<rect x="-3" y="0" width="6" height="26" rx="2" fill="#333"/>
<rect x="-10" y="22" width="20" height="6" rx="1" fill="#222"/>
</g>
<!-- Handlebars -->
<g stroke="#2b2b2b" stroke-width="6" stroke-linecap="round" fill="none">
<path d="M510 335 Q500 310 520 295 L555 295"/>
<path d="M510 335 Q525 315 545 305"/>
</g>
<g fill="#222">
<rect x="548" y="290" width="14" height="10" rx="3"/>
</g>
<!-- Seat -->
<g>
<path d="M378 330 Q400 320 422 330 Q425 338 400 340 Q375 338 378 330 Z" fill="#1a1a1a"/>
<line x1="400" y1="340" x2="400" y2="350" stroke="#2b2b2b" stroke-width="4"/>
</g>
<!-- ===================== CAT ===================== -->
<g>
<!-- Tail flowing back -->
<path d="M370 320 Q330 290 320 250 Q315 230 335 235"
stroke="url(#catBody)" stroke-width="14" fill="none" stroke-linecap="round"/>
<path d="M335 235 q5 -3 9 2" stroke="#e6711b" stroke-width="2" fill="none"/>
<!-- Back leg reaching to pedal -->
<path d="M420 360 Q425 395 440 425" stroke="url(#catBody)" stroke-width="13" fill="none" stroke-linecap="round"/>
<ellipse cx="442" cy="428" rx="9" ry="6" fill="#e6711b"/>
<!-- Body -->
<ellipse cx="395" cy="320" rx="42" ry="32" fill="url(#catBody)"/>
<!-- Belly lighter -->
<ellipse cx="395" cy="332" rx="28" ry="18" fill="#ffd9a8"/>
<!-- Front leg reaching to handlebar -->
<path d="M430 310 Q480 305 535 300" stroke="url(#catBody)" stroke-width="12" fill="none" stroke-linecap="round"/>
<ellipse cx="540" cy="300" rx="9" ry="6" fill="#e6711b"/>
<!-- Chest fluff -->
<path d="M415 305 q10 8 0 16" fill="#ffd9a8"/>
<!-- Head -->
<g>
<!-- Ears -->
<path d="M455 250 L450 215 L475 240 Z" fill="url(#catBody)"/>
<path d="M455 247 L453 225 L468 240 Z" fill="#ffb6a0"/>
<path d="M505 250 L515 218 L490 240 Z" fill="url(#catBody)"/>
<path d="M503 247 L510 228 L492 240 Z" fill="#ffb6a0"/>
<!-- Head shape -->
<ellipse cx="480" cy="265" rx="35" ry="30" fill="url(#catBody)"/>
<!-- Face: muzzle -->
<ellipse cx="480" cy="278" rx="14" ry="10" fill="#ffd9a8"/>
<!-- Eyes -->
<ellipse cx="468" cy="262" rx="5" ry="7" fill="#1a1a1a"/>
<ellipse cx="492" cy="262" rx="5" ry="7" fill="#1a1a1a"/>
<circle cx="466" cy="260" r="1.5" fill="#fff"/>
<circle cx="490" cy="260" r="1.5" fill="#fff"/>
<!-- Nose -->
<path d="M477 275 L483 275 L480 280 Z" fill="#d63a3a"/>
<!-- Mouth -->
<path d="M480 280 Q476 286 472 284 M480 280 Q484 286 488 284"
stroke="#7a3a1a" stroke-width="1.5" fill="none" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#3a3a3a" stroke-width="1" stroke-linecap="round">
<line x1="466" y1="282" x2="438" y2="278"/>
<line x1="466" y1="286" x2="440" y2="288"/>
<line x1="494" y1="282" x2="522" y2="278"/>
<line x1="494" y1="286" x2="520" y2="288"/>
</g>
<!-- Blush -->
<circle cx="462" cy="272" r="4" fill="#ff8aa0" opacity="0.5"/>
<circle cx="498" cy="272" r="4" fill="#ff8aa0" opacity="0.5"/>
<!-- Stripes on head -->
<g stroke="#b8501a" stroke-width="2.5" fill="none" stroke-linecap="round" opacity="0.8">
<path d="M462 242 Q458 250 462 256"/>
<path d="M480 238 L480 248"/>
<path d="M498 242 Q502 250 498 256"/>
</g>
</g>
<!-- Scarf blowing in wind -->
<g>
<path d="M430 305 Q460 310 490 305 L500 312 Q470 320 430 315 Z" fill="#3aa0d8"/>
<path d="M490 308 Q510 320 505 345 Q500 360 488 365 L480 358 Q490 350 488 338 Z" fill="#2c84bd"/>
<path d="M490 308 Q470 322 460 345 Q455 360 465 366 L470 358 Q470 348 478 340 Z" fill="#2c84bd"/>
</g>
</g>
<!-- Flowers in grass -->
<g>
<circle cx="60" cy="500" r="5" fill="#ff5a8a"/>
<circle cx="60" cy="500" r="2" fill="#fff2b8"/>
<circle cx="220" cy="540" r="5" fill="#ffd25a"/>
<circle cx="220" cy="540" r="2" fill="#ff8a3a"/>
<circle cx="690" cy="510" r="5" fill="#ff5a8a"/>
<circle cx="690" cy="510" r="2" fill="#fff2b8"/>
<circle cx="760" cy="540" r="5" fill="#ffd25a"/>
<circle cx="760" cy="540" r="2" fill="#ff8a3a"/>
</g>
<!-- Grass blades -->
<g stroke="#4a9c30" stroke-width="2" fill="none" stroke-linecap="round">
<path d="M40 470 q-3 -12 2 -18"/>
<path d="M100 475 q2 -10 -2 -16"/>
<path d="M260 475 q3 -12 -1 -18"/>
<path d="M640 472 q-2 -10 2 -16"/>
<path d="M720 478 q3 -12 -2 -18"/>
</g>
</svg>GLM-5.2 · action · attempt 4 · score 8.8
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 400" text-rendering="geometricPrecision">
<defs>
<linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#fde9d7"/>
<stop offset="100%" stop-color="#f7c9a3"/>
</linearGradient>
<linearGradient id="ground" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#c9a07a"/>
<stop offset="100%" stop-color="#9c7048"/>
</linearGradient>
<radialGradient id="fur" cx="0.4" cy="0.35" r="0.8">
<stop offset="0%" stop-color="#ffb86b"/>
<stop offset="100%" stop-color="#e07d2f"/>
</radialGradient>
<radialGradient id="furLight" cx="0.5" cy="0.4" r="0.7">
<stop offset="0%" stop-color="#ffd9a8"/>
<stop offset="100%" stop-color="#ffb86b"/>
</radialGradient>
<linearGradient id="frame" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#d64545"/>
<stop offset="100%" stop-color="#8e1f1f"/>
</linearGradient>
</defs>
<title>Cat riding a bicycle</title>
<!-- Sky -->
<rect x="0" y="0" width="600" height="340" fill="url(#sky)"/>
<!-- Sun -->
<circle cx="500" cy="80" r="40" fill="#ffe7a3" opacity="0.9"/>
<circle cx="500" cy="80" r="55" fill="#ffe7a3" opacity="0.35"/>
<!-- Clouds -->
<g fill="#ffffff" opacity="0.85">
<ellipse cx="120" cy="70" rx="40" ry="14"/>
<ellipse cx="155" cy="62" rx="28" ry="12"/>
<ellipse cx="300" cy="50" rx="50" ry="15"/>
<ellipse cx="335" cy="44" rx="30" ry="12"/>
</g>
<!-- Ground -->
<rect x="0" y="320" width="600" height="80" fill="url(#ground)"/>
<path d="M0 320 L600 320" stroke="#7a5230" stroke-width="3" fill="none"/>
<!-- Road dashes -->
<g stroke="#f4e3c1" stroke-width="4" stroke-linecap="round" opacity="0.8">
<line x1="40" y1="360" x2="100" y2="360"/>
<line x1="160" y1="360" x2="220" y2="360"/>
<line x1="380" y1="360" x2="440" y2="360"/>
<line x1="500" y1="360" x2="560" y2="360"/>
</g>
<!-- Motion lines -->
<g stroke="#ffffff" stroke-width="3" stroke-linecap="round" opacity="0.7">
<line x1="40" y1="240" x2="100" y2="240"/>
<line x1="30" y1="270" x2="80" y2="270"/>
<line x1="55" y1="210" x2="105" y2="210"/>
</g>
<!-- ===================== BICYCLE ===================== -->
<g id="bike">
<!-- Rear wheel -->
<g transform="translate(200 300)">
<circle r="55" fill="#2b2b2b"/>
<circle r="49" fill="none" stroke="#5a5a5a" stroke-width="2"/>
<circle r="14" fill="#9a9a9a"/>
<circle r="5" fill="#3a3a3a"/>
<g stroke="#cccccc" stroke-width="1.5">
<line x1="0" y1="-49" x2="0" y2="49"/>
<line x1="-49" y1="0" x2="49" y2="0"/>
<line x1="-34.6" y1="-34.6" x2="34.6" y2="34.6"/>
<line x1="34.6" y1="-34.6" x2="-34.6" y2="34.6"/>
</g>
</g>
<!-- Front wheel -->
<g transform="translate(440 300)">
<circle r="55" fill="#2b2b2b"/>
<circle r="49" fill="none" stroke="#5a5a5a" stroke-width="2"/>
<circle r="14" fill="#9a9a9a"/>
<circle r="5" fill="#3a3a3a"/>
<g stroke="#cccccc" stroke-width="1.5">
<line x1="0" y1="-49" x2="0" y2="49"/>
<line x1="-49" y1="0" x2="49" y2="0"/>
<line x1="-34.6" y1="-34.6" x2="34.6" y2="34.6"/>
<line x1="34.6" y1="-34.6" x2="-34.6" y2="34.6"/>
</g>
</g>
<!-- Frame -->
<g fill="none" stroke="url(#frame)" stroke-width="8" stroke-linecap="round" stroke-linejoin="round">
<!-- down tube: pedal to handlebar -->
<line x1="320" y1="295" x2="425" y2="225"/>
<!-- seat tube: pedal to seat -->
<line x1="320" y1="295" x2="290" y2="215"/>
<!-- top tube: seat to handlebar -->
<line x1="290" y1="215" x2="425" y2="225"/>
<!-- chain stay: pedal to rear wheel -->
<line x1="320" y1="295" x2="200" y2="300"/>
<!-- seat stay: seat to rear wheel -->
<line x1="290" y1="215" x2="200" y2="300"/>
<!-- fork: handlebar to front wheel -->
<line x1="425" y1="225" x2="440" y2="300"/>
</g>
<!-- Chain -->
<line x1="200" y1="300" x2="320" y2="295" stroke="#444" stroke-width="2" opacity="0.6"/>
<!-- Pedals -->
<g transform="translate(320 295)">
<circle r="8" fill="#3a3a3a"/>
<line x1="-18" y1="6" x2="18" y2="-6" stroke="#222" stroke-width="3"/>
<rect x="-26" y="2" width="16" height="8" rx="2" fill="#666"/>
<rect x="10" y="-10" width="16" height="8" rx="2" fill="#666"/>
</g>
<!-- Handlebar -->
<path d="M425 225 Q 410 195 395 200 L 388 205" fill="none" stroke="#222" stroke-width="6" stroke-linecap="round"/>
<path d="M425 225 Q 445 200 455 210" fill="none" stroke="#222" stroke-width="6" stroke-linecap="round"/>
<circle cx="425" cy="225" r="6" fill="#222"/>
<!-- grips -->
<rect x="380" y="200" width="10" height="10" rx="3" fill="#1a1a1a"/>
<rect x="450" y="205" width="10" height="10" rx="3" fill="#1a1a1a"/>
<!-- Seat -->
<path d="M268 210 Q 290 200 312 210 Q 305 222 290 222 Q 275 222 268 210 Z" fill="#2a2a2a"/>
</g>
<!-- ===================== CAT ===================== -->
<g id="cat">
<!-- Tail -->
<path d="M250 230 Q 200 220 195 250 Q 195 275 220 270" fill="url(#fur)" stroke="#a85a18" stroke-width="2"/>
<path d="M210 268 Q 222 268 220 270" stroke="#a85a18" stroke-width="2" fill="none"/>
<!-- Back leg to pedal (rear) -->
<path d="M270 245 Q 285 270 318 290" fill="none" stroke="url(#fur)" stroke-width="14" stroke-linecap="round"/>
<ellipse cx="320" cy="293" rx="9" ry="6" fill="#ffb86b" stroke="#a85a18" stroke-width="1.5"/>
<!-- Body -->
<ellipse cx="290" cy="220" rx="40" ry="32" fill="url(#fur)"/>
<ellipse cx="290" cy="215" rx="28" ry="20" fill="url(#furLight)" opacity="0.7"/>
<!-- Front leg reaching to handlebar -->
<path d="M310 210 Q 360 205 390 208" fill="none" stroke="url(#fur)" stroke-width="12" stroke-linecap="round"/>
<ellipse cx="392" cy="210" rx="8" ry="6" fill="#ffb86b" stroke="#a85a18" stroke-width="1.5"/>
<!-- Scarf -->
<path d="M300 195 Q 318 200 320 215 L 314 220 Q 300 212 285 212 Z" fill="#3aa0d6" stroke="#1d6a9c" stroke-width="1.5"/>
<path d="M318 218 Q 322 232 312 245 L 305 244 Q 312 232 308 222 Z" fill="#2a8ac2" stroke="#1d6a9c" stroke-width="1.5"/>
<g stroke="#1d6a9c" stroke-width="1">
<line x1="295" y1="200" x2="297" y2="207"/>
<line x1="305" y1="202" x2="307" y2="209"/>
<line x1="313" y1="206" x2="315" y2="213"/>
</g>
<!-- Head -->
<g>
<!-- Ears -->
<path d="M300 168 L 295 145 L 312 158 Z" fill="url(#fur)" stroke="#a85a18" stroke-width="1.5"/>
<path d="M335 165 L 345 145 L 348 165 Z" fill="url(#fur)" stroke="#a85a18" stroke-width="1.5"/>
<path d="M301 162 L 300 152 L 308 158 Z" fill="#ffd0a0"/>
<path d="M340 162 L 344 152 L 346 162 Z" fill="#ffd0a0"/>
<!-- Head shape -->
<ellipse cx="322" cy="180" rx="26" ry="22" fill="url(#fur)"/>
<!-- Cheeks (lighter) -->
<ellipse cx="312" cy="186" rx="8" ry="6" fill="#ffe3c0" opacity="0.7"/>
<ellipse cx="334" cy="186" rx="8" ry="6" fill="#ffe3c0" opacity="0.7"/>
<!-- Stripes -->
<g stroke="#a85a18" stroke-width="2" fill="none" stroke-linecap="round" opacity="0.7">
<path d="M310 162 Q 312 158 314 162"/>
<path d="M320 159 Q 322 155 324 159"/>
<path d="M330 162 Q 332 158 334 162"/>
</g>
<!-- Eyes (looking ahead, happy) -->
<ellipse cx="313" cy="178" rx="3.5" ry="4.5" fill="#1a1a1a"/>
<ellipse cx="331" cy="178" rx="3.5" ry="4.5" fill="#1a1a1a"/>
<circle cx="314" cy="177" r="1.2" fill="#fff"/>
<circle cx="332" cy="177" r="1.2" fill="#fff"/>
<!-- Nose -->
<path d="M320 187 L 324 187 L 322 190 Z" fill="#d65a7a"/>
<!-- Mouth -->
<path d="M322 190 Q 319 193 316 192" stroke="#7a3a1a" stroke-width="1.4" fill="none" stroke-linecap="round"/>
<path d="M322 190 Q 325 193 328 192" stroke="#7a3a1a" stroke-width="1.4" fill="none" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#5a3a1a" stroke-width="1" stroke-linecap="round" opacity="0.8">
<line x1="304" y1="188" x2="288" y2="186"/>
<line x1="304" y1="192" x2="288" y2="194"/>
<line x1="340" y1="188" x2="356" y2="186"/>
<line x1="340" y1="192" x2="356" y2="194"/>
</g>
</g>
<!-- Other back leg (front pedal) -->
<path d="M285 240 Q 305 270 330 295" fill="none" stroke="url(#fur)" stroke-width="13" stroke-linecap="round"/>
<ellipse cx="335" cy="297" rx="9" ry="6" fill="#ffb86b" stroke="#a85a18" stroke-width="1.5"/>
</g>
<!-- Little dust puffs behind back wheel -->
<g fill="#ffffff" opacity="0.6">
<circle cx="140" cy="320" r="6"/>
<circle cx="120" cy="328" r="4"/>
<circle cx="100" cy="324" r="5"/>
<circle cx="80" cy="330" r="3"/>
</g>
</svg>style
“Draw an origami-style cat with geometric folds as an SVG.”
GLM-5.2 · style · attempt 1 · score 9.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bg" cx="50%" cy="42%" r="65%">
<stop offset="0%" stop-color="#f3ecdd"/>
<stop offset="100%" stop-color="#d9cdb4"/>
</radialGradient>
<linearGradient id="floor" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#7a6a4c" stop-opacity="0.28"/>
<stop offset="100%" stop-color="#7a6a4c" stop-opacity="0"/>
</linearGradient>
</defs>
<rect width="600" height="600" fill="url(#bg)"/>
<!-- floor shadow -->
<ellipse cx="300" cy="540" rx="190" ry="22" fill="url(#floor)"/>
<g id="cat" stroke="#6f5e44" stroke-width="1.4" stroke-linejoin="round">
<!-- TAIL -->
<polygon points="425,505 478,452 440,432" fill="#c4b48f"/>
<polygon points="425,505 440,432 458,470" fill="#a0895f"/>
<line x1="425" y1="505" x2="458" y2="470" stroke="#6f5e44" stroke-width="1"/>
<!-- BODY facets -->
<polygon points="300,320 175,505 240,420" fill="#f1e8d4"/>
<polygon points="240,420 175,505 300,505" fill="#e2d3b3"/>
<polygon points="300,320 425,505 360,420" fill="#c4b187"/>
<polygon points="360,420 425,505 300,505" fill="#a0875c"/>
<!-- center crease on body -->
<line x1="300" y1="320" x2="300" y2="505" stroke="#6f5e44" stroke-width="1.2"/>
<line x1="240" y1="420" x2="360" y2="420" stroke="#6f5e44" stroke-width="1.2"/>
<!-- PAWS -->
<polygon points="255,505 295,505 275,528" fill="#dac8a2"/>
<polygon points="305,505 345,505 325,528" fill="#9c8458"/>
<!-- HEAD: ear + face facets -->
<polygon points="235,135 300,200 230,275" fill="#f3ead6"/>
<polygon points="365,135 370,275 300,200" fill="#c0ad82"/>
<polygon points="300,200 230,275 300,315" fill="#ece2c8"/>
<polygon points="300,200 300,315 370,275" fill="#d2c19a"/>
<!-- inner ear folds -->
<polygon points="255,162 290,205 268,205" fill="#d6c39c"/>
<polygon points="345,162 332,205 310,205" fill="#a08a60"/>
<!-- center face crease -->
<line x1="300" y1="200" x2="300" y2="315" stroke="#6f5e44" stroke-width="1.2"/>
<line x1="230" y1="275" x2="370" y2="275" stroke="#6f5e44" stroke-width="1.2"/>
<!-- EYES (folded triangles) -->
<polygon points="272,252 292,252 282,271" fill="#3a342b" stroke="#3a342b"/>
<polygon points="308,252 328,252 318,271" fill="#3a342b" stroke="#3a342b"/>
<!-- NOSE -->
<polygon points="293,283 307,283 300,294" fill="#d08479" stroke="#8a4a44" stroke-width="0.8"/>
<!-- mouth crease -->
<path d="M300,294 L293,302 M300,294 L307,302" fill="none" stroke="#6f5e44" stroke-width="1"/>
<!-- WHISKERS -->
<g stroke="#8a7556" stroke-width="0.9" fill="none">
<path d="M232,283 L168,278"/>
<path d="M232,293 L170,298"/>
<path d="M232,303 L172,318"/>
<path d="M368,283 L432,278"/>
<path d="M368,293 L430,298"/>
<path d="M368,303 L428,318"/>
</g>
</g>
</svg>GLM-5.2 · style · attempt 2 · score 9.3
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bg" cx="50%" cy="42%" r="70%">
<stop offset="0%" stop-color="#F4ECDA"/>
<stop offset="100%" stop-color="#DDD0B4"/>
</radialGradient>
<linearGradient id="paperLight" x1="0" y1="0" x2="1" y2="1">
<stop offset="0%" stop-color="#FCF6E4"/>
<stop offset="100%" stop-color="#F1E4C2"/>
</linearGradient>
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="6"/>
</filter>
</defs>
<rect width="600" height="600" fill="url(#bg)"/>
<!-- ground shadow -->
<ellipse cx="300" cy="510" rx="180" ry="22" fill="#9C8A60" opacity="0.28" filter="url(#soft)"/>
<!-- ===== TAIL ===== -->
<g stroke="#7A6438" stroke-width="1" stroke-linejoin="round" fill-opacity="1">
<polygon points="415,452 458,418 500,438 492,478 446,486" fill="#E7D3A4"/>
<polygon points="415,452 458,418 458,470 446,486" fill="#F3E6BE"/>
<polygon points="458,418 500,438 492,478 458,470" fill="#DDC68C"/>
<polygon points="458,470 492,478 446,486" fill="#CDB37A"/>
</g>
<!-- ===== BODY ===== -->
<g stroke="#7A6438" stroke-width="1" stroke-linejoin="round">
<!-- shoulders / chest -->
<polygon points="245,350 300,350 260,410" fill="#FAF1D9"/>
<polygon points="355,350 300,350 340,410" fill="#EFE0BD"/>
<!-- sides -->
<polygon points="245,350 260,410 180,470 195,408" fill="#F4E7C4"/>
<polygon points="355,350 340,410 420,470 405,408" fill="#E5D2A0"/>
<!-- chest center -->
<polygon points="260,410 340,410 300,350" fill="#F8EFD3"/>
<polygon points="260,410 340,410 300,470" fill="#DCC590"/>
<!-- lower flanks -->
<polygon points="180,470 260,410 300,470 230,498" fill="#EAD7A4"/>
<polygon points="420,470 340,410 300,470 370,498" fill="#D2B97F"/>
<!-- base -->
<polygon points="180,470 230,498 300,500 370,498 420,470 300,470" fill="#C9AF73"/>
</g>
<!-- ===== HEAD ===== -->
<g stroke="#7A6438" stroke-width="1" stroke-linejoin="round">
<!-- ears -->
<polygon points="215,156 300,178 255,240" fill="#FAF1D9"/>
<polygon points="385,156 300,178 345,240" fill="#EFE0BD"/>
<!-- ear inner shadow -->
<polygon points="215,156 255,240 208,292" fill="#EAD7A4"/>
<polygon points="385,156 345,240 392,292" fill="#DDC68C"/>
<!-- forehead split -->
<polygon points="300,178 255,240 300,292" fill="#F4E7C4"/>
<polygon points="300,178 345,240 300,292" fill="#E5D2A0"/>
<!-- cheeks -->
<polygon points="255,240 208,292 300,292" fill="#F8EFD3"/>
<polygon points="345,240 392,292 300,292" fill="#DCC590"/>
<!-- muzzle -->
<polygon points="208,292 300,292 300,345" fill="#EAD7A4"/>
<polygon points="392,292 300,292 300,345" fill="#CDB37A"/>
</g>
<!-- ===== FACE DETAILS ===== -->
<g>
<!-- eyes (slit triangles) -->
<polygon points="258,266 274,270 258,278" fill="#2A2113"/>
<polygon points="342,266 326,270 342,278" fill="#2A2113"/>
<!-- nose -->
<polygon points="293,310 307,310 300,320" fill="#2A2113"/>
<!-- mouth crease -->
<path d="M300,320 L300,332 M300,332 L290,328 M300,332 L310,328" stroke="#7A6438" stroke-width="1" fill="none" stroke-linecap="round"/>
<!-- whisker creases -->
<path d="M272,316 L248,313 M272,322 L248,326 M328,316 L352,313 M328,322 L352,326" stroke="#9C8350" stroke-width="0.8" stroke-linecap="round" opacity="0.7"/>
</g>
<!-- subtle top highlight on ears -->
<polygon points="215,156 300,178 255,240" fill="none" stroke="#FFFBEF" stroke-width="0.6" opacity="0.5"/>
<polygon points="385,156 300,178 345,240" fill="none" stroke="#FFFBEF" stroke-width="0.6" opacity="0.4"/>
</svg>GLM-5.2 · style · attempt 3 · score 9.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 420" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bg" cx="50%" cy="42%" r="65%">
<stop offset="0%" stop-color="#FBF3E0"/>
<stop offset="100%" stop-color="#E8D9BD"/>
</radialGradient>
<filter id="soft" x="-30%" y="-30%" width="160%" height="160%">
<feGaussianBlur stdDeviation="6"/>
</filter>
<style>
.fold { stroke:#5E4626; stroke-width:0.9; stroke-linejoin:miter; stroke-linecap:butt; opacity:0.55; }
.crease { stroke:#6B4F2E; stroke-width:0.7; opacity:0.45; fill:none; }
.whisk { stroke:#6B4F2E; stroke-width:1.1; stroke-linecap:round; opacity:0.7; fill:none; }
.dark { fill:#2B1F12; }
</style>
</defs>
<rect width="400" height="420" fill="url(#bg)"/>
<!-- soft cast shadow -->
<ellipse cx="200" cy="390" rx="130" ry="14" fill="#5E4626" opacity="0.18" filter="url(#soft)"/>
<g id="cat">
<!-- LEFT EAR -->
<polygon class="fold" points="90,160 130,75 135,115" fill="#9C7B43"/>
<polygon class="fold" points="130,75 170,150 135,115" fill="#F2DCB0"/>
<!-- inner ear shadow flap -->
<polygon class="fold" points="130,75 135,115 150,118 145,90" fill="#B89866" opacity="0.55"/>
<!-- RIGHT EAR -->
<polygon class="fold" points="310,160 270,75 265,115" fill="#BE9A5E"/>
<polygon class="fold" points="270,75 230,150 265,115" fill="#E5C98C"/>
<polygon class="fold" points="270,75 265,115 250,118 255,90" fill="#A88550" opacity="0.55"/>
<!-- FOREHEAD -->
<polygon class="fold" points="170,150 230,150 200,175" fill="#F2DCB0"/>
<polygon class="fold" points="90,160 170,150 165,210" fill="#D4B27A"/>
<polygon class="fold" points="310,160 230,150 235,210" fill="#BE9A5E"/>
<polygon class="fold" points="170,150 200,175 165,210" fill="#E5C98C"/>
<polygon class="fold" points="230,150 200,175 235,210" fill="#D4B27A"/>
<!-- BROW / BRIDGE -->
<polygon class="fold" points="165,210 235,210 200,250" fill="#E5C98C"/>
<polygon class="fold" points="165,210 200,210 200,250" fill="#D4B27A" opacity="0.0"/>
<line class="crease" x1="200" y1="175" x2="200" y2="250"/>
<!-- UPPER CHEEKS -->
<polygon class="fold" points="90,160 165,210 75,265" fill="#BE9A5E"/>
<polygon class="fold" points="310,160 235,210 325,265" fill="#9C7B43"/>
<polygon class="fold" points="165,210 75,265 155,250" fill="#D4B27A"/>
<polygon class="fold" points="235,210 325,265 245,250" fill="#BE9A5E"/>
<!-- MUZZLE UPPER -->
<polygon class="fold" points="165,210 200,250 155,250" fill="#E5C98C"/>
<polygon class="fold" points="235,210 200,250 245,250" fill="#D4B27A"/>
<!-- LOWER CHEEKS -->
<polygon class="fold" points="75,265 155,250 130,318" fill="#D4B27A"/>
<polygon class="fold" points="325,265 245,250 270,318" fill="#BE9A5E"/>
<polygon class="fold" points="155,250 200,250 180,292" fill="#E5C98C"/>
<polygon class="fold" points="245,250 200,250 220,292" fill="#D4B27A"/>
<!-- JAW -->
<polygon class="fold" points="130,318 180,292 175,338" fill="#BE9A5E"/>
<polygon class="fold" points="270,318 220,292 225,338" fill="#9C7B43"/>
<polygon class="fold" points="180,292 220,292 200,302" fill="#E5C98C"/>
<polygon class="fold" points="175,338 180,292 200,302" fill="#D4B27A"/>
<polygon class="fold" points="225,338 220,292 200,302" fill="#BE9A5E"/>
<polygon class="fold" points="175,338 200,302 200,355" fill="#BE9A5E"/>
<polygon class="fold" points="225,338 200,302 200,355" fill="#9C7B43"/>
<!-- center symmetry crease -->
<line class="crease" x1="200" y1="250" x2="200" y2="355"/>
<line class="crease" x1="200" y1="175" x2="200" y2="150"/>
<line class="crease" x1="135" y1="115" x2="170" y2="150"/>
<line class="crease" x1="265" y1="115" x2="230" y2="150"/>
<!-- EYES (folded slit triangles) -->
<polygon class="dark" points="148,232 190,236 168,247"/>
<polygon class="dark" points="252,232 210,236 232,247"/>
<!-- eye fold crease hint -->
<line class="crease" x1="148" y1="232" x2="168" y2="247"/>
<line class="crease" x1="252" y1="232" x2="232" y2="247"/>
<!-- NOSE -->
<polygon class="dark" points="200,250 186,270 214,270"/>
<line class="crease" x1="200" y1="250" x2="200" y2="270"/>
<!-- MOUTH creases -->
<path class="crease" d="M200,270 L200,285 M200,285 L188,298 M200,285 L212,298"/>
<!-- WHISKERS -->
<g class="whisk">
<path d="M150,278 L70,268"/>
<path d="M152,288 L68,290"/>
<path d="M154,298 L74,312"/>
<path d="M250,278 L330,268"/>
<path d="M248,288 L332,290"/>
<path d="M246,298 L326,312"/>
</g>
<!-- subtle paper sheen on lit facets -->
<polygon points="130,75 170,150 135,115" fill="#FFFFFF" opacity="0.10"/>
<polygon points="170,150 230,150 200,175" fill="#FFFFFF" opacity="0.10"/>
</g>
</svg>GLM-5.2 · style · attempt 4 · score 9.3
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 600" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bg" cx="50%" cy="42%" r="70%">
<stop offset="0%" stop-color="#f7f1e6"/>
<stop offset="100%" stop-color="#e6dcc6"/>
</radialGradient>
<linearGradient id="paperLight" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#f6efe0"/>
<stop offset="100%" stop-color="#e9dec6"/>
</linearGradient>
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="6"/>
</filter>
</defs>
<rect width="600" height="600" fill="url(#bg)"/>
<!-- soft ground shadow -->
<ellipse cx="300" cy="555" rx="180" ry="20" fill="#7a6a4a" opacity="0.18" filter="url(#soft)"/>
<!-- ============ TAIL (behind body) ============ -->
<g id="tail">
<polygon points="430,540 470,500 500,490 470,470" fill="#d8c8a8"/>
<polygon points="470,500 500,490 525,425 495,415" fill="#c9b894"/>
<polygon points="495,415 525,425 510,360 480,370" fill="#b9a67f"/>
<polygon points="480,370 510,360 470,340 455,365" fill="#a8916d"/>
<polygon points="430,540 470,470 455,365 440,420 440,500" fill="#e3d4b4"/>
</g>
<!-- ============ BODY ============ -->
<g id="body">
<!-- left shoulder -->
<polygon points="230,325 300,380 190,430 170,400" fill="url(#paperLight)"/>
<!-- right shoulder -->
<polygon points="370,325 300,380 410,430 430,400" fill="#e7dcc2"/>
<!-- top center -->
<polygon points="230,325 370,325 300,380" fill="#f4ecdc"/>
<!-- chest -->
<polygon points="300,380 190,430 300,470" fill="#ede2c9"/>
<polygon points="300,380 410,430 300,470" fill="#d8c8a6"/>
<!-- left flank -->
<polygon points="190,430 170,400 175,540 230,540" fill="#e3d4b2"/>
<polygon points="190,430 300,470 230,540 175,540" fill="#cdbb95"/>
<!-- right flank -->
<polygon points="410,430 430,400 425,540 370,540" fill="#cdbb95"/>
<polygon points="410,430 300,470 370,540 425,540" fill="#bca67e"/>
<!-- center lower -->
<polygon points="230,540 300,540 300,470" fill="#d4c29c"/>
<polygon points="300,540 370,540 300,470" fill="#c2ad83"/>
<!-- paws -->
<polygon points="205,555 270,555 237,592" fill="#f0e6cf"/>
<polygon points="205,555 237,592 215,592" fill="#d8c8a6"/>
<polygon points="330,555 395,555 363,592" fill="#e3d4b2"/>
<polygon points="363,555 395,555 385,592" fill="#bca67e"/>
</g>
<!-- ============ HEAD ============ -->
<g id="head">
<!-- ears -->
<polygon points="175,215 205,95 240,215" fill="#ece1c8"/>
<polygon points="175,215 205,95 210,170" fill="#d8c8a4"/>
<polygon points="195,200 205,135 222,200" fill="#cf9b86"/>
<polygon points="195,200 222,200 210,170" fill="#b87f6a"/>
<polygon points="360,215 395,95 425,215" fill="#e0d2b4"/>
<polygon points="395,95 425,215 415,170" fill="#cab98c"/>
<polygon points="378,200 395,135 405,200" fill="#cf9b86"/>
<polygon points="378,200 405,200 415,170" fill="#b07a64"/>
<!-- crown & face facets -->
<polygon points="240,215 300,160 360,215" fill="#f6efe0"/>
<polygon points="240,215 300,160 300,215" fill="#ede2c9"/>
<polygon points="300,160 360,215 300,215" fill="#e3d4b4"/>
<polygon points="175,215 240,215 240,265 200,255" fill="#e8dcc0"/>
<polygon points="240,215 240,265 300,270 300,215" fill="#f1e7d2"/>
<polygon points="300,215 300,270 360,265 360,215" fill="#dcccaa"/>
<polygon points="360,215 360,265 400,255 425,215" fill="#cab98c"/>
<polygon points="175,215 200,255 180,295" fill="#d6c5a0"/>
<polygon points="200,255 240,265 220,300 180,295" fill="#cdbb93"/>
<polygon points="240,265 300,270 300,320 220,300" fill="#e0d0ac"/>
<polygon points="300,270 360,265 380,300 300,320" fill="#c9b68a"/>
<polygon points="360,265 400,255 420,295 380,300" fill="#b8a47c"/>
<polygon points="400,255 425,215 420,295" fill="#a8916d"/>
<polygon points="180,295 220,300 300,335" fill="#d2bf97"/>
<polygon points="220,300 300,320 300,335" fill="#e5d5b0"/>
<polygon points="300,320 380,300 300,335" fill="#c0aa80"/>
<polygon points="380,300 420,295 300,335" fill="#a88f68"/>
<!-- eyes (origami slits) -->
<polygon points="248,238 272,238 260,252" fill="#3a342a"/>
<polygon points="328,238 352,238 340,252" fill="#3a342a"/>
<polygon points="248,238 272,238 264,244" fill="#5a4f3e"/>
<!-- nose -->
<polygon points="289,278 311,278 300,292" fill="#8a5a4e"/>
<polygon points="289,278 300,278 300,292" fill="#a36e60"/>
<!-- mouth creases -->
<path d="M300,292 L288,306 M300,292 L312,306" stroke="#8a6a52" stroke-width="1.2" stroke-linecap="round" fill="none" opacity="0.8"/>
<!-- whisker creases -->
<path d="M232,288 L175,278 M232,294 L172,296 M368,288 L425,278 M368,294 L428,296" stroke="#9a8762" stroke-width="0.8" opacity="0.55" fill="none"/>
</g>
<!-- ============ FOLD LINES ============ -->
<g id="creases" fill="none" stroke="#a8926d" stroke-width="1" stroke-linejoin="round" opacity="0.55">
<!-- head -->
<path d="M240,215 L300,160 L360,215 M300,160 L300,320 M240,215 L240,265 L300,270 L360,265 M175,215 L200,255 L180,295 L300,335 L420,295 L400,255 L425,215 M220,300 L300,320 L380,300"/>
<!-- ears -->
<path d="M175,215 L205,95 L240,215 M360,215 L395,95 L425,215 M195,200 L222,200 M378,200 L405,200"/>
<!-- body -->
<path d="M230,325 L300,380 L370,325 M190,430 L300,470 L410,430 M170,400 L175,540 M430,400 L425,540 M230,540 L300,470 L370,540 M300,470 L300,540"/>
<!-- tail -->
<path d="M430,540 L470,500 L500,490 L525,425 L510,360 L455,365 M440,500 L455,365 M470,470 L440,420"/>
<!-- paws -->
<path d="M205,555 L237,592 L270,555 M330,555 L363,592 L395,555"/>
</g>
<!-- subtle top highlight on crown -->
<polygon points="240,215 300,160 360,215" fill="none" stroke="#fffaef" stroke-width="1.2" opacity="0.7"/>
</svg>constraint
“Draw a recognizable cat as an SVG using at most 12 SVG elements.”
GLM-5.2 · constraint · attempt 1 · score 9.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 240">
<path d="M 138 200 C 188 212 192 148 168 140" stroke="#C77A3E" stroke-width="13" fill="none" stroke-linecap="round"/>
<path d="M 62 222 Q 46 160 70 130 Q 88 116 100 116 Q 112 116 130 130 Q 154 160 138 222 Z" fill="#D88A4E"/>
<path d="M 100 128 Q 86 144 84 178 Q 88 208 100 212 Q 112 208 116 178 Q 114 144 100 128 Z" fill="#F2D5B8"/>
<circle cx="100" cy="88" r="42" fill="#D88A4E"/>
<path d="M 70 60 L 58 20 L 96 50 Z" fill="#D88A4E"/>
<path d="M 130 60 L 142 20 L 104 50 Z" fill="#D88A4E"/>
<ellipse cx="84" cy="84" rx="5" ry="7" fill="#2B2B2B"/>
<ellipse cx="116" cy="84" rx="5" ry="7" fill="#2B2B2B"/>
<path d="M 95 96 L 105 96 L 100 101 Z" fill="#C45A5A"/>
<path d="M 100 101 Q 95 107 90 104 M 100 101 Q 105 107 110 104 M 72 95 L 30 90 M 72 100 L 28 102 M 128 95 L 170 90 M 128 100 L 172 102" stroke="#5A3A20" stroke-width="1.5" fill="none" stroke-linecap="round"/>
</svg>GLM-5.2 · constraint · attempt 2 · score 7.5
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 220" width="200" height="220">
<rect width="200" height="220" fill="#f5efe1"/>
<ellipse cx="100" cy="175" rx="55" ry="42" fill="#3a3a3a"/>
<path d="M145 165 Q190 150 180 110 Q175 90 160 95 Q165 120 140 140 Z" fill="#3a3a3a"/>
<circle cx="100" cy="105" r="48" fill="#3a3a3a"/>
<polygon points="60,72 70,28 96,68" fill="#3a3a3a"/>
<polygon points="140,72 130,28 104,68" fill="#3a3a3a"/>
<polygon points="66,66 72,42 86,64" fill="#f4b8c0"/>
<polygon points="134,66 128,42 114,64" fill="#f4b8c0"/>
<circle cx="82" cy="105" r="9" fill="#f4d35e"/>
<circle cx="118" cy="105" r="9" fill="#f4d35e"/>
<circle cx="82" cy="105" r="4" fill="#1a1a1a"/>
<circle cx="118" cy="105" r="4" fill="#1a1a1a"/>
<polygon points="100,118 92,128 108,128" fill="#f4b8c0"/>
<path d="M100 128 Q95 138 88 132 M100 128 Q105 138 112 132" stroke="#1a1a1a" stroke-width="2" fill="none" stroke-linecap="round"/>
<path d="M70 122 Q40 118 25 124 M70 128 Q42 134 28 138 M130 122 Q160 118 175 124 M130 128 Q158 134 172 138" stroke="#e8e8e8" stroke-width="1.2" fill="none" stroke-linecap="round"/>
</svg>GLM-5.2 · constraint · attempt 3 · score 7.5
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<rect width="300" height="300" fill="#f4ecd8"/>
<ellipse cx="150" cy="205" rx="72" ry="46" fill="#5a5a5a"/>
<circle cx="150" cy="120" r="52" fill="#5a5a5a"/>
<polygon points="108,85 92,38 138,72" fill="#5a5a5a"/>
<polygon points="192,85 208,38 162,72" fill="#5a5a5a"/>
<polygon points="116,70 108,48 130,64" fill="#f2b6b6"/>
<polygon points="184,70 192,48 170,64" fill="#f2b6b6"/>
<circle cx="128" cy="116" r="7" fill="#1a1a1a"/>
<circle cx="172" cy="116" r="7" fill="#1a1a1a"/>
<circle cx="130" cy="114" r="2" fill="#fff"/>
<circle cx="174" cy="114" r="2" fill="#fff"/>
<polygon points="150,128 143,137 157,137" fill="#d98a8a"/>
<path d="M150,137 Q150,148 140,148 M150,137 Q150,148 160,148" stroke="#1a1a1a" stroke-width="2" fill="none" stroke-linecap="round"/>
<path d="M118,132 L78,124 M118,140 L80,142 M182,132 L222,124 M182,140 L220,142" stroke="#3a3a3a" stroke-width="1.5" stroke-linecap="round"/>
<path d="M218,210 Q260,200 255,160 Q252,140 240,138" stroke="#5a5a5a" stroke-width="14" fill="none" stroke-linecap="round"/>
<rect x="118" y="240" width="14" height="28" rx="6" fill="#4a4a4a"/>
<rect x="168" y="240" width="14" height="28" rx="6" fill="#4a4a4a"/>
</svg>GLM-5.2 · constraint · attempt 4 · score 8.3
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 300">
<rect width="300" height="300" fill="#fde9c8"/>
<ellipse cx="150" cy="220" rx="70" ry="55" fill="#4a4a4a"/>
<path d="M205 210 Q290 200 270 270 Q260 240 205 240 Z" fill="#4a4a4a"/>
<circle cx="150" cy="140" r="60" fill="#4a4a4a"/>
<polygon points="100,120 95,60 135,100" fill="#4a4a4a"/>
<polygon points="200,120 205,60 165,100" fill="#4a4a4a"/>
<polygon points="100,120 95,60 135,100" fill="#ffb4a8" opacity="0.6"/>
<polygon points="200,120 205,60 165,100" fill="#ffb4a8" opacity="0.6"/>
<circle cx="128" cy="135" r="7" fill="#f5f5f5"/>
<circle cx="172" cy="135" r="7" fill="#f5f5f5"/>
<polygon points="150,150 142,158 158,158" fill="#ffb4a8"/>
<path d="M150 158 Q150 168 140 168 M150 158 Q150 168 160 168" stroke="#2a2a2a" stroke-width="2" fill="none" stroke-linecap="round"/>
<path d="M115 155 Q95 150 80 155 M115 162 Q95 162 80 160 M185 155 Q205 150 220 155 M185 162 Q205 162 220 160" stroke="#2a2a2a" stroke-width="1.5" fill="none" stroke-linecap="round"/>
</svg>animation
“Draw a cat whose tail sways continuously, as an SVG using SMIL or CSS animation only (no JavaScript).”
GLM-5.2 · animation · attempt 1 · score 9.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" text-rendering="geometricPrecision">
<defs>
<linearGradient id="bodyGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#f6b34d"/>
<stop offset="1" stop-color="#e07a1f"/>
</linearGradient>
<linearGradient id="bellyGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#fff3df"/>
<stop offset="1" stop-color="#f4d49a"/>
</linearGradient>
<radialGradient id="cheekGrad" cx="0.5" cy="0.5" r="0.5">
<stop offset="0" stop-color="#ff9a76" stop-opacity="0.9"/>
<stop offset="1" stop-color="#ff9a76" stop-opacity="0"/>
</radialGradient>
</defs>
<style>
.pupil { transform-origin: center; transform-box: fill-box; }
@media (prefers-reduced-motion: reduce){ animate, animateTransform { display:none; } }
</style>
<!-- ground shadow -->
<ellipse cx="200" cy="345" rx="120" ry="16" fill="#000" opacity="0.12"/>
<!-- Tail: pivots at base near (285,300). Sways continuously. -->
<g>
<animateTransform attributeName="transform" type="rotate"
values="-14 285 300; 14 285 300; -14 285 300"
keyTimes="0; 0.5; 1"
dur="3.2s" repeatCount="indefinite"
calcMode="spline" keySplines="0.42 0 0.58 1; 0.42 0 0.58 1"/>
<!-- tail shape (curved) -->
<path d="M285,300 C330,300 360,260 350,210 C344,180 372,170 388,150"
fill="none" stroke="url(#bodyGrad)" stroke-width="26" stroke-linecap="round"/>
<path d="M285,300 C330,300 360,260 350,210 C344,180 372,170 388,150"
fill="none" stroke="#c96214" stroke-width="26" stroke-linecap="round" opacity="0.0"/>
<!-- tail stripes -->
<g stroke="#b8590f" stroke-width="6" stroke-linecap="round" opacity="0.55">
<line x1="305" y1="298" x2="312" y2="278"/>
<line x1="332" y1="275" x2="343" y2="258"/>
<line x1="350" y1="232" x2="365" y2="222"/>
<line x1="365" y1="190" x2="378" y2="184"/>
</g>
<!-- tail tip -->
<circle cx="388" cy="150" r="13" fill="#fff3df"/>
</g>
<!-- Body -->
<ellipse cx="200" cy="290" rx="95" ry="70" fill="url(#bodyGrad)"/>
<!-- Belly -->
<ellipse cx="200" cy="310" rx="55" ry="45" fill="url(#bellyGrad)"/>
<!-- Body stripes -->
<g stroke="#b8590f" stroke-width="6" stroke-linecap="round" opacity="0.5">
<line x1="130" y1="255" x2="138" y2="240"/>
<line x1="150" y1="248" x2="158" y2="232"/>
<line x1="240" y1="248" x2="250" y2="234"/>
<line x1="262" y1="258" x2="270" y2="244"/>
</g>
<!-- Front legs -->
<path d="M165,330 Q165,355 180,355 L195,355 L195,330 Z" fill="url(#bodyGrad)"/>
<path d="M205,330 L205,355 L220,355 Q235,355 235,330 Z" fill="url(#bodyGrad)"/>
<!-- paws -->
<ellipse cx="187" cy="355" rx="16" ry="8" fill="#fff3df"/>
<ellipse cx="213" cy="355" rx="16" ry="8" fill="#fff3df"/>
<!-- Head -->
<g>
<!-- subtle head bob -->
<animateTransform attributeName="transform" type="translate"
values="0 0; 0 -3; 0 0" keyTimes="0;0.5;1"
dur="3.2s" repeatCount="indefinite"
calcMode="spline" keySplines="0.42 0 0.58 1; 0.42 0 0.58 1"/>
<!-- ears -->
<path d="M150,170 L140,118 L182,150 Z" fill="url(#bodyGrad)"/>
<path d="M250,170 L260,118 L218,150 Z" fill="url(#bodyGrad)"/>
<path d="M155,168 L150,138 L175,156 Z" fill="#ff9a76"/>
<path d="M245,168 L250,138 L225,156 Z" fill="#ff9a76"/>
<!-- head base -->
<circle cx="200" cy="190" r="58" fill="url(#bodyGrad)"/>
<!-- cheek fluff -->
<path d="M148,205 Q140,215 152,222 Q142,222 150,232" fill="none" stroke="#e07a1f" stroke-width="4" stroke-linecap="round"/>
<path d="M252,205 Q260,215 248,222 Q258,222 250,232" fill="none" stroke="#e07a1f" stroke-width="4" stroke-linecap="round"/>
<!-- cheeks -->
<circle cx="162" cy="205" r="14" fill="url(#cheekGrad)"/>
<circle cx="238" cy="205" r="14" fill="url(#cheekGrad)"/>
<!-- eyes -->
<g>
<ellipse cx="178" cy="188" rx="9" ry="11" fill="#1c1c1c">
<animate attributeName="ry" values="11;11;1;11;11" keyTimes="0;0.48;0.5;0.52;1" dur="4.5s" repeatCount="indefinite"/>
</ellipse>
<ellipse cx="222" cy="188" rx="9" ry="11" fill="#1c1c1c">
<animate attributeName="ry" values="11;11;1;11;11" keyTimes="0;0.48;0.5;0.52;1" dur="4.5s" repeatCount="indefinite"/>
</ellipse>
<circle cx="181" cy="184" r="2.5" fill="#fff"/>
<circle cx="225" cy="184" r="2.5" fill="#fff"/>
</g>
<!-- nose -->
<path d="M194,206 L206,206 L200,213 Z" fill="#ff7a59"/>
<!-- mouth -->
<path d="M200,213 Q200,220 193,220 M200,213 Q200,220 207,220" fill="none" stroke="#3a2a1a" stroke-width="2" stroke-linecap="round"/>
<!-- whiskers -->
<g stroke="#5a4632" stroke-width="1.6" stroke-linecap="round" opacity="0.85">
<line x1="155" y1="212" x2="118" y2="206"/>
<line x1="155" y1="218" x2="116" y2="222"/>
<line x1="245" y1="212" x2="282" y2="206"/>
<line x1="245" y1="218" x2="284" y2="222"/>
</g>
</g>
</svg>GLM-5.2 · animation · attempt 2 · score 9.3
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" width="400" height="400">
<defs>
<radialGradient id="bodyGrad" cx="50%" cy="40%" r="70%">
<stop offset="0%" stop-color="#f5b97a"/>
<stop offset="60%" stop-color="#e8954a"/>
<stop offset="100%" stop-color="#c97030"/>
</radialGradient>
<radialGradient id="bellyGrad" cx="50%" cy="40%" r="70%">
<stop offset="0%" stop-color="#fff3e0"/>
<stop offset="100%" stop-color="#f5cf9e"/>
</radialGradient>
<radialGradient id="headGrad" cx="40%" cy="35%" r="70%">
<stop offset="0%" stop-color="#f7c180"/>
<stop offset="100%" stop-color="#d4823a"/>
</radialGradient>
<linearGradient id="floorGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#d9c9b3"/>
<stop offset="100%" stop-color="#b8a48a"/>
</linearGradient>
<filter id="soft" x="-20%" y="-20%" width="140%" height="140%">
<feGaussianBlur stdDeviation="2"/>
</filter>
<style>
@media (prefers-reduced-motion: reduce){
animate, animateTransform { display:none; }
}
</style>
</defs>
<!-- Background -->
<rect width="400" height="400" fill="#fce8d4"/>
<ellipse cx="200" cy="360" rx="180" ry="22" fill="url(#floorGrad)"/>
<!-- Shadow under cat -->
<ellipse cx="200" cy="345" rx="70" ry="10" fill="#000" opacity="0.18" filter="url(#soft)">
<animate attributeName="rx" values="70;66;70" dur="3.2s" repeatCount="indefinite"/>
</ellipse>
<!-- Tail (rotates around base near cat's rear) -->
<g id="tail">
<animateTransform attributeName="transform" type="rotate"
values="-8 268 312; 18 268 312; -8 268 312"
keyTimes="0;0.5;1"
calcMode="spline"
keySplines="0.45 0 0.25 1; 0.45 0 0.25 1"
dur="3.4s" repeatCount="indefinite"/>
<!-- Tail shape: curved from base going up-right then curling -->
<path d="M 268 312
C 300 300, 330 270, 322 230
C 318 208, 296 198, 282 210
C 272 219, 278 234, 290 232"
fill="none" stroke="url(#bodyGrad)" stroke-width="18" stroke-linecap="round"/>
<!-- Tail stripes -->
<path d="M 285 298 Q 295 296 305 290" stroke="#8a4a1e" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.55"/>
<path d="M 308 280 Q 318 272 322 262" stroke="#8a4a1e" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.55"/>
<path d="M 322 248 Q 320 236 312 232" stroke="#8a4a1e" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.55"/>
<!-- Tail tip -->
<circle cx="290" cy="232" r="10" fill="#3a2418"/>
</g>
<!-- Body -->
<ellipse cx="200" cy="295" rx="78" ry="62" fill="url(#bodyGrad)"/>
<!-- Belly -->
<ellipse cx="200" cy="305" rx="42" ry="46" fill="url(#bellyGrad)"/>
<!-- Front legs -->
<rect x="172" y="300" width="26" height="48" rx="13" fill="url(#bodyGrad)"/>
<rect x="202" y="300" width="26" height="48" rx="13" fill="url(#bodyGrad)"/>
<!-- Paws -->
<ellipse cx="185" cy="346" rx="16" ry="7" fill="#fff3e0"/>
<ellipse cx="215" cy="346" rx="16" ry="7" fill="#fff3e0"/>
<!-- Toe lines -->
<line x1="180" y1="343" x2="180" y2="349" stroke="#c9a07a" stroke-width="1.5"/>
<line x1="185" y1="343" x2="185" y2="349" stroke="#c9a07a" stroke-width="1.5"/>
<line x1="190" y1="343" x2="190" y2="349" stroke="#c9a07a" stroke-width="1.5"/>
<line x1="210" y1="343" x2="210" y2="349" stroke="#c9a07a" stroke-width="1.5"/>
<line x1="215" y1="343" x2="215" y2="349" stroke="#c9a07a" stroke-width="1.5"/>
<line x1="220" y1="343" x2="220" y2="349" stroke="#c9a07a" stroke-width="1.5"/>
<!-- Body stripes -->
<path d="M 130 270 Q 142 280 138 295" stroke="#8a4a1e" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.45"/>
<path d="M 270 270 Q 258 280 262 295" stroke="#8a4a1e" stroke-width="4" stroke-linecap="round" fill="none" opacity="0.45"/>
<path d="M 135 305 Q 145 312 142 322" stroke="#8a4a1e" stroke-width="3" stroke-linecap="round" fill="none" opacity="0.4"/>
<path d="M 265 305 Q 255 312 258 322" stroke="#8a4a1e" stroke-width="3" stroke-linecap="round" fill="none" opacity="0.4"/>
<!-- Head group (subtle breathing) -->
<g id="head">
<animateTransform attributeName="transform" type="translate"
values="0 0; 0 -2; 0 0" dur="3.4s" repeatCount="indefinite"/>
<!-- Ears -->
<path d="M 140 200 L 130 158 L 168 188 Z" fill="url(#headGrad)"/>
<path d="M 260 200 L 270 158 L 232 188 Z" fill="url(#headGrad)"/>
<path d="M 146 194 L 142 172 L 160 186 Z" fill="#f7a5c1"/>
<path d="M 254 194 L 258 172 L 240 186 Z" fill="#f7a5c1"/>
<!-- Head -->
<ellipse cx="200" cy="220" rx="58" ry="50" fill="url(#headGrad)"/>
<!-- Forehead stripes (M shape) -->
<path d="M 188 188 L 184 205" stroke="#8a4a1e" stroke-width="3" stroke-linecap="round" opacity="0.5"/>
<path d="M 200 186 L 200 205" stroke="#8a4a1e" stroke-width="3" stroke-linecap="round" opacity="0.5"/>
<path d="M 212 188 L 216 205" stroke="#8a4a1e" stroke-width="3" stroke-linecap="round" opacity="0.5"/>
<!-- Cheek stripes -->
<path d="M 148 218 L 162 220" stroke="#8a4a1e" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
<path d="M 148 228 L 162 230" stroke="#8a4a1e" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
<path d="M 252 218 L 238 220" stroke="#8a4a1e" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
<path d="M 252 228 L 238 230" stroke="#8a4a1e" stroke-width="2.5" stroke-linecap="round" opacity="0.45"/>
<!-- Eyes -->
<ellipse cx="178" cy="222" rx="9" ry="11" fill="#fff"/>
<ellipse cx="222" cy="222" rx="9" ry="11" fill="#fff"/>
<ellipse cx="178" cy="224" rx="5.5" ry="9" fill="#2a7d3a">
<animate attributeName="ry" values="9;9;0.6;9;9" keyTimes="0;0.45;0.5;0.55;1" dur="5s" repeatCount="indefinite"/>
</ellipse>
<ellipse cx="222" cy="224" rx="5.5" ry="9" fill="#2a7d3a">
<animate attributeName="ry" values="9;9;0.6;9;9" keyTimes="0;0.45;0.5;0.55;1" dur="5s" repeatCount="indefinite"/>
</ellipse>
<ellipse cx="178" cy="224" rx="2" ry="3.5" fill="#000"/>
<ellipse cx="222" cy="224" rx="2" ry="3.5" fill="#000"/>
<circle cx="180" cy="221" r="1.4" fill="#fff"/>
<circle cx="224" cy="221" r="1.4" fill="#fff"/>
<!-- Nose -->
<path d="M 196 238 L 204 238 L 200 244 Z" fill="#d6567a"/>
<!-- Mouth -->
<path d="M 200 244 Q 196 250 191 247" stroke="#5a3a2a" stroke-width="1.6" fill="none" stroke-linecap="round"/>
<path d="M 200 244 Q 204 250 209 247" stroke="#5a3a2a" stroke-width="1.6" fill="none" stroke-linecap="round"/>
<!-- Whiskers -->
<g stroke="#3a2418" stroke-width="1.2" fill="none" stroke-linecap="round" opacity="0.7">
<path d="M 165 238 Q 140 236 122 232"/>
<path d="M 165 244 Q 138 246 120 250"/>
<path d="M 235 238 Q 260 236 278 232"/>
<path d="M 235 244 Q 262 246 280 250"/>
</g>
</g>
</svg>GLM-5.2 · animation · attempt 3 · score 9.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bg" cx="50%" cy="55%" r="65%">
<stop offset="0%" stop-color="#FFF6E6"/>
<stop offset="100%" stop-color="#F3E2C4"/>
</radialGradient>
<radialGradient id="belly" cx="50%" cy="50%" r="60%">
<stop offset="0%" stop-color="#FFF3DE"/>
<stop offset="100%" stop-color="#F2D6A8"/>
</radialGradient>
<linearGradient id="fur" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#F0A35A"/>
<stop offset="100%" stop-color="#D87E33"/>
</linearGradient>
<linearGradient id="tailGrad" x1="0" y1="1" x2="1" y2="0">
<stop offset="0%" stop-color="#D87E33"/>
<stop offset="100%" stop-color="#F0A35A"/>
</linearGradient>
</defs>
<rect width="400" height="400" fill="url(#bg)"/>
<ellipse cx="200" cy="372" rx="130" ry="14" fill="#000" opacity="0.08"/>
<!-- Tail (sways continuously, pivots at base) -->
<g id="tail">
<animateTransform attributeName="transform" type="rotate"
values="-14 268 292; 13 268 292; -14 268 292"
keyTimes="0;0.5;1"
keySplines="0.42 0 0.58 1; 0.42 0 0.58 1"
calcMode="spline"
dur="2.6s" repeatCount="indefinite"/>
<path d="M268 292 C 300 296 326 282 332 250 C 338 218 326 188 308 176"
fill="none" stroke="url(#tailGrad)" stroke-width="22" stroke-linecap="round"/>
<path d="M300 286 Q 312 282 318 270" fill="none" stroke="#B56622" stroke-width="5" stroke-linecap="round" opacity="0.55"/>
<path d="M328 244 Q 336 232 332 220" fill="none" stroke="#B56622" stroke-width="5" stroke-linecap="round" opacity="0.55"/>
<circle cx="308" cy="176" r="11" fill="#E8924A"/>
</g>
<!-- Body -->
<g id="body">
<ellipse cx="200" cy="290" rx="92" ry="78" fill="url(#fur)"/>
<ellipse cx="200" cy="300" rx="52" ry="55" fill="url(#belly)"/>
<!-- tabby stripes -->
<path d="M150 244 Q 160 268 152 290" fill="none" stroke="#B56622" stroke-width="6" stroke-linecap="round" opacity="0.45"/>
<path d="M250 244 Q 240 268 248 290" fill="none" stroke="#B56622" stroke-width="6" stroke-linecap="round" opacity="0.45"/>
<!-- front legs -->
<rect x="168" y="320" width="26" height="44" rx="13" fill="url(#fur)"/>
<rect x="206" y="320" width="26" height="44" rx="13" fill="url(#fur)"/>
<ellipse cx="181" cy="362" rx="14" ry="6" fill="#F2D6A8"/>
<ellipse cx="219" cy="362" rx="14" ry="6" fill="#F2D6A8"/>
</g>
<!-- Head -->
<g id="head">
<animateTransform attributeName="transform" type="translate"
values="0 0; 0 -2; 0 0"
keyTimes="0;0.5;1"
calcMode="spline"
keySplines="0.42 0 0.58 1; 0.42 0 0.58 1"
dur="2.6s" repeatCount="indefinite"/>
<!-- ears -->
<path d="M148 118 L128 78 L168 104 Z" fill="url(#fur)"/>
<path d="M252 118 L272 78 L232 104 Z" fill="url(#fur)"/>
<path d="M152 114 L138 92 L162 106 Z" fill="#F2A8B0"/>
<path d="M248 114 L262 92 L238 106 Z" fill="#F2A8B0"/>
<!-- head shape -->
<ellipse cx="200" cy="160" rx="72" ry="64" fill="url(#fur)"/>
<!-- cheek fluff -->
<path d="M132 178 Q 124 186 132 192" fill="none" stroke="#B56622" stroke-width="3" opacity="0.4"/>
<path d="M268 178 Q 276 186 268 192" fill="none" stroke="#B56622" stroke-width="3" opacity="0.4"/>
<!-- face whites -->
<path d="M200 178 Q 178 196 168 188 Q 176 178 200 178 Z" fill="#FFF3DE"/>
<path d="M200 178 Q 222 196 232 188 Q 224 178 200 178 Z" fill="#FFF3DE"/>
<!-- eyes -->
<ellipse cx="174" cy="156" rx="11" ry="13" fill="#3A2A1A"/>
<ellipse cx="226" cy="156" rx="11" ry="13" fill="#3A2A1A"/>
<ellipse cx="174" cy="151" rx="4" ry="5" fill="#9CD17A" opacity="0.9"/>
<ellipse cx="226" cy="151" rx="4" ry="5" fill="#9CD17A" opacity="0.9"/>
<ellipse cx="174" cy="153" rx="2.2" ry="4" fill="#10100C"/>
<ellipse cx="226" cy="153" rx="2.2" ry="4" fill="#10100C"/>
<circle cx="178" cy="150" r="2.2" fill="#fff"/>
<circle cx="230" cy="150" r="2.2" fill="#fff"/>
<!-- nose -->
<path d="M196 176 L204 176 L200 182 Z" fill="#D97A7A"/>
<!-- mouth -->
<path d="M200 182 Q 196 190 190 188" fill="none" stroke="#7A4A2A" stroke-width="2" stroke-linecap="round"/>
<path d="M200 182 Q 204 190 210 188" fill="none" stroke="#7A4A2A" stroke-width="2" stroke-linecap="round"/>
<!-- whiskers -->
<g stroke="#5A4030" stroke-width="1.6" stroke-linecap="round" fill="none" opacity="0.75">
<path d="M156 174 Q 120 170 104 174"/>
<path d="M156 182 Q 122 184 100 188"/>
<path d="M244 174 Q 280 170 296 174"/>
<path d="M244 182 Q 278 184 300 188"/>
</g>
</g>
</svg>GLM-5.2 · animation · attempt 4 · score 9.0
the actual svg, as the machine wrote it:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" text-rendering="geometricPrecision">
<defs>
<radialGradient id="bg" cx="50%" cy="40%" r="70%">
<stop offset="0%" stop-color="#fdf6ec"/>
<stop offset="100%" stop-color="#e8d5c0"/>
</radialGradient>
<linearGradient id="fur" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#fbe3d0"/>
<stop offset="100%" stop-color="#e9a878"/>
</linearGradient>
<radialGradient id="belly" cx="50%" cy="40%" r="60%">
<stop offset="0%" stop-color="#fff5ec"/>
<stop offset="100%" stop-color="#fbd9bd"/>
</radialGradient>
<linearGradient id="tail" x1="0" y1="1" x2="0" y2="0">
<stop offset="0%" stop-color="#e9a878"/>
<stop offset="60%" stop-color="#f4c39a"/>
<stop offset="100%" stop-color="#fff0e2"/>
</linearGradient>
<style>
@media (prefers-reduced-motion: reduce){
animate, animateTransform { display:none }
}
</style>
</defs>
<rect width="400" height="400" fill="url(#bg)"/>
<!-- shadow -->
<ellipse cx="200" cy="355" rx="120" ry="14" fill="#000" opacity="0.08"/>
<!-- Tail (drawn behind body, anchored at base, sways via rotate around base) -->
<g id="tailgroup">
<path d="M 248 290
C 290 290, 330 260, 332 215
C 333 185, 318 168, 300 172
C 312 180, 318 198, 308 218
C 296 242, 270 250, 250 248 Z"
fill="url(#tail)" stroke="#c87a4a" stroke-width="1.5" stroke-linejoin="round"/>
<!-- tail stripes -->
<path d="M 300 175 Q 312 178 320 188" stroke="#c87a4a" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.6"/>
<path d="M 318 205 Q 326 212 326 222" stroke="#c87a4a" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.6"/>
<path d="M 318 240 Q 308 250 296 254" stroke="#c87a4a" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.6"/>
<path d="M 282 268 Q 270 276 258 280" stroke="#c87a4a" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.6"/>
<!-- tail tip -->
<circle cx="300" cy="172" r="6" fill="#fff0e2" stroke="#c87a4a" stroke-width="1.5"/>
<animateTransform attributeName="transform" type="rotate"
values="-10 248 290; 14 248 290; -10 248 290"
keyTimes="0;0.5;1"
calcMode="spline"
keySplines="0.42 0 0.58 1; 0.42 0 0.58 1"
dur="2.4s" repeatCount="indefinite"/>
</g>
<!-- Hind leg -->
<ellipse cx="168" cy="320" rx="26" ry="34" fill="url(#fur)" stroke="#c87a4a" stroke-width="1.5"/>
<ellipse cx="168" cy="338" rx="22" ry="10" fill="#fff5ec" stroke="#c87a4a" stroke-width="1.2"/>
<!-- Front leg -->
<ellipse cx="232" cy="320" rx="24" ry="34" fill="url(#fur)" stroke="#c87a4a" stroke-width="1.5"/>
<ellipse cx="232" cy="338" rx="20" ry="9" fill="#fff5ec" stroke="#c87a4a" stroke-width="1.2"/>
<!-- Body -->
<path d="M 130 260
C 120 215, 150 175, 200 175
C 250 175, 280 215, 270 260
C 280 305, 250 335, 200 335
C 150 335, 120 305, 130 260 Z"
fill="url(#fur)" stroke="#c87a4a" stroke-width="2"/>
<!-- Belly -->
<path d="M 160 250
C 165 215, 200 205, 200 205
C 200 205, 235 215, 240 250
C 245 295, 220 320, 200 320
C 180 320, 155 295, 160 250 Z"
fill="url(#belly)" opacity="0.9"/>
<!-- Head -->
<g id="head">
<!-- ears -->
<path d="M 138 150 L 122 110 L 168 138 Z" fill="url(#fur)" stroke="#c87a4a" stroke-width="2" stroke-linejoin="round"/>
<path d="M 262 150 L 278 110 L 232 138 Z" fill="url(#fur)" stroke="#c87a4a" stroke-width="2" stroke-linejoin="round"/>
<path d="M 144 142 L 134 122 L 160 138 Z" fill="#f6b5a0"/>
<path d="M 256 142 L 266 122 L 240 138 Z" fill="#f6b5a0"/>
<!-- head shape -->
<ellipse cx="200" cy="160" rx="66" ry="58" fill="url(#fur)" stroke="#c87a4a" stroke-width="2"/>
<!-- cheek fluff -->
<path d="M 138 170 Q 120 180 134 188 Q 124 196 140 198" fill="none" stroke="#c87a4a" stroke-width="1.5" stroke-linecap="round"/>
<path d="M 262 170 Q 280 180 266 188 Q 276 196 260 198" fill="none" stroke="#c87a4a" stroke-width="1.5" stroke-linecap="round"/>
<!-- forehead stripes -->
<path d="M 188 118 Q 184 130 188 140" stroke="#c87a4a" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.7"/>
<path d="M 200 116 Q 200 130 200 142" stroke="#c87a4a" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.7"/>
<path d="M 212 118 Q 216 130 212 140" stroke="#c87a4a" stroke-width="3" fill="none" stroke-linecap="round" opacity="0.7"/>
<!-- eyes -->
<g>
<ellipse cx="176" cy="162" rx="11" ry="13" fill="#fff"/>
<ellipse cx="224" cy="162" rx="11" ry="13" fill="#fff"/>
<ellipse cx="176" cy="163" rx="6" ry="11" fill="#5b3a1e"/>
<ellipse cx="224" cy="163" rx="6" ry="11" fill="#5b3a1e"/>
<circle cx="176" cy="161" r="2.4" fill="#fff"/>
<circle cx="224" cy="161" r="2.4" fill="#fff"/>
<circle cx="178" cy="167" r="1.1" fill="#fff" opacity="0.7"/>
<circle cx="226" cy="167" r="1.1" fill="#fff" opacity="0.7"/>
<!-- blink -->
<animate attributeName="opacity" values="1;1;1;1;0;1;1;1;1;1;1;1;0;1"
keyTimes="0;0.2;0.25;0.3;0.32;0.34;0.5;0.7;0.75;0.8;0.82;0.84;0.86;1"
dur="6s" repeatCount="indefinite"/>
</g>
<rect x="165" y="158" width="22" height="0" fill="url(#fur)">
<animate attributeName="height" values="0;0;0;0;22;0;0;0;0;0;0;0;22;0"
keyTimes="0;0.2;0.25;0.3;0.32;0.34;0.5;0.7;0.75;0.8;0.82;0.84;0.86;1"
dur="6s" repeatCount="indefinite"/>
</rect>
<rect x="213" y="158" width="22" height="0" fill="url(#fur)">
<animate attributeName="height" values="0;0;0;0;22;0;0;0;0;0;0;0;22;0"
keyTimes="0;0.2;0.25;0.3;0.32;0.34;0.5;0.7;0.75;0.8;0.82;0.84;0.86;1"
dur="6s" repeatCount="indefinite"/>
</rect>
<!-- nose -->
<path d="M 194 180 Q 200 176 206 180 Q 206 186 200 190 Q 194 186 194 180 Z"
fill="#e07a8a" stroke="#b5566a" stroke-width="1.2"/>
<!-- mouth -->
<path d="M 200 190 L 200 196" stroke="#7a4a2a" stroke-width="1.5" stroke-linecap="round"/>
<path d="M 200 196 Q 190 204 184 198" fill="none" stroke="#7a4a2a" stroke-width="1.5" stroke-linecap="round"/>
<path d="M 200 196 Q 210 204 216 198" fill="none" stroke="#7a4a2a" stroke-width="1.5" stroke-linecap="round"/>
<!-- whiskers -->
<g stroke="#7a4a2a" stroke-width="1.2" fill="none" stroke-linecap="round" opacity="0.8">
<path d="M 168 184 Q 140 180 120 184"/>
<path d="M 168 190 Q 138 192 118 198"/>
<path d="M 232 184 Q 260 180 280 184"/>
<path d="M 232 190 Q 262 192 282 198"/>
</g>
</g>
</svg>