SVG: exploded AeroPress, by kimi-k3.1-pro
kimi-k3.1-pro · round 2 of 2 · seed 1$0.16SVGPNGaeropress.svg
aeropress.svg · 291 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1400" height="1800" viewBox="0 0 1400 1800" role="img" aria-labelledby="title desc">
  <title id="title">AeroPress Original — Exploded Assembly</title>
  <desc id="desc">A technical illustration of an original AeroPress coffee maker, with the plunger, plunger seal, numbered chamber, round paper microfilter, and perforated filter cap separated vertically and identified by numbered callouts.</desc>
  <defs>
    <linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0" stop-color="#fbfaf7"/>
      <stop offset="1" stop-color="#f1eee7"/>
    </linearGradient>
    <linearGradient id="plastic" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#26383d" stop-opacity=".86"/>
      <stop offset=".12" stop-color="#60747a" stop-opacity=".72"/>
      <stop offset=".28" stop-color="#afbec0" stop-opacity=".50"/>
      <stop offset=".48" stop-color="#dae1df" stop-opacity=".34"/>
      <stop offset=".69" stop-color="#86999c" stop-opacity=".54"/>
      <stop offset=".88" stop-color="#455b61" stop-opacity=".78"/>
      <stop offset="1" stop-color="#24383e" stop-opacity=".9"/>
    </linearGradient>
    <linearGradient id="plasticLight" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#263b40" stop-opacity=".75"/>
      <stop offset=".25" stop-color="#c8d4d3" stop-opacity=".4"/>
      <stop offset=".52" stop-color="#eef2ed" stop-opacity=".28"/>
      <stop offset=".82" stop-color="#72868a" stop-opacity=".54"/>
      <stop offset="1" stop-color="#263b40" stop-opacity=".82"/>
    </linearGradient>
    <linearGradient id="rim" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#718489"/>
      <stop offset=".5" stop-color="#43595e"/>
      <stop offset="1" stop-color="#263b40"/>
    </linearGradient>
    <linearGradient id="rubber" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#172225"/>
      <stop offset=".23" stop-color="#465255"/>
      <stop offset=".48" stop-color="#5c6768"/>
      <stop offset=".72" stop-color="#374346"/>
      <stop offset="1" stop-color="#172225"/>
    </linearGradient>
    <linearGradient id="capBody" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#182326"/>
      <stop offset=".2" stop-color="#394549"/>
      <stop offset=".46" stop-color="#4d585a"/>
      <stop offset=".7" stop-color="#303c3f"/>
      <stop offset="1" stop-color="#152124"/>
    </linearGradient>
    <radialGradient id="capTop" cx="42%" cy="28%" r="80%">
      <stop offset="0" stop-color="#536063"/>
      <stop offset=".6" stop-color="#303d40"/>
      <stop offset="1" stop-color="#1b292c"/>
    </radialGradient>
    <linearGradient id="paper" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#fffef8"/>
      <stop offset="1" stop-color="#e5dfcf"/>
    </linearGradient>
    <pattern id="paperGrain" width="18" height="14" patternUnits="userSpaceOnUse">
      <circle cx="3" cy="4" r=".8" fill="#a89e87" opacity=".35"/>
      <circle cx="13" cy="10" r=".65" fill="#a89e87" opacity=".25"/>
      <path d="M6 12l3-1M12 3l2 .5" stroke="#b8ad95" stroke-width=".55" opacity=".35"/>
    </pattern>
    <pattern id="holes" width="31" height="25" patternUnits="userSpaceOnUse" patternTransform="skewX(-10)">
      <ellipse cx="8" cy="8" rx="4.4" ry="2.9" fill="#071215"/>
      <ellipse cx="8" cy="7" rx="3.1" ry="1.25" fill="#8b9998" opacity=".46"/>
    </pattern>
    <clipPath id="grillClip"><ellipse cx="700" cy="1430" rx="116" ry="32"/></clipPath>
    <clipPath id="chamberClip"><path d="M548 780 L561 1192 Q700 1240 839 1192 L852 780 Z"/></clipPath>
    <filter id="shadow" x="-40%" y="-60%" width="180%" height="220%">
      <feGaussianBlur stdDeviation="13"/>
    </filter>
    <filter id="smallShadow" x="-30%" y="-60%" width="160%" height="220%">
      <feGaussianBlur stdDeviation="5"/>
    </filter>
    <style>
      .sans{font-family:Inter,Helvetica,Arial,sans-serif}
      .ink{fill:#243437}
      .muted{fill:#71807f}
      .label{font-family:Inter,Helvetica,Arial,sans-serif;font-size:21px;font-weight:700;letter-spacing:2.2px;fill:#26383b}
      .sub{font-family:Inter,Helvetica,Arial,sans-serif;font-size:16px;font-weight:400;letter-spacing:.25px;fill:#75807e}
      .leader{fill:none;stroke:#97a29e;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
      .edge{fill:none;stroke:#30474c;stroke-width:2}
    </style>
  </defs>

  <!-- drawing sheet -->
  <rect width="1400" height="1800" fill="url(#bg)"/>
  <path d="M70 182H1330" stroke="#d7d7ce" stroke-width="1"/>
  <path d="M70 1638H1330" stroke="#d7d7ce" stroke-width="1"/>
  <g class="sans">
    <text x="72" y="91" font-size="19" font-weight="700" letter-spacing="4" fill="#b65d3f">PRODUCT STUDY / 01</text>
    <text x="68" y="150" font-size="48" font-weight="750" letter-spacing="-1.5" class="ink">AeroPress</text>
    <text x="328" y="149" font-size="22" font-weight="400" letter-spacing="1.1" class="muted">ORIGINAL · EXPLODED ASSEMBLY</text>
    <g transform="translate(1152 78)">
      <rect width="178" height="55" rx="27.5" fill="none" stroke="#aeb7b1"/>
      <circle cx="27" cy="27.5" r="6" fill="#b65d3f"/>
      <text x="46" y="34" font-size="16" font-weight="650" letter-spacing="1.5" fill="#52615f">5 COMPONENTS</text>
    </g>
  </g>

  <!-- central assembly axis -->
  <path d="M700 222V1578" stroke="#b8bfba" stroke-width="1.3" stroke-dasharray="5 10"/>
  <g fill="none" stroke="#a3aea9" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
    <path d="M693 594L700 603L707 594"/>
    <path d="M693 691L700 700L707 691"/>
    <path d="M693 1272L700 1281L707 1272"/>
    <path d="M693 1350L700 1359L707 1350"/>
  </g>
  <g class="sans" font-size="12" letter-spacing="2.4" fill="#9aa39f">
    <text x="723" y="226">ASSEMBLY AXIS</text>
  </g>

  <!-- soft shadows, one per floating component -->
  <g fill="#52625e" opacity=".11" filter="url(#shadow)">
    <ellipse cx="700" cy="566" rx="133" ry="20"/>
    <ellipse cx="700" cy="1198" rx="126" ry="18"/>
    <ellipse cx="700" cy="1495" rx="148" ry="20"/>
  </g>

  <!-- 01 / plunger -->
  <g id="plunger">
    <!-- top flange thickness -->
    <path d="M554 263V286C554 307 619 324 700 324C781 324 846 307 846 286V263Z" fill="url(#rim)" stroke="#344a4f" stroke-width="1.5"/>
    <ellipse cx="700" cy="263" rx="146" ry="38" fill="url(#plastic)" stroke="#344a4f" stroke-width="2"/>
    <ellipse cx="700" cy="261" rx="128" ry="29" fill="#91a3a3" fill-opacity=".62" stroke="#d7dfdb" stroke-opacity=".65" stroke-width="1.3"/>
    <ellipse cx="700" cy="260" rx="111" ry="22" fill="#c5cfcb" fill-opacity=".22" stroke="#52696d" stroke-opacity=".32" stroke-width="1"/>
    <path d="M590 252C633 235 767 235 810 252" fill="none" stroke="#edf1eb" stroke-opacity=".45" stroke-width="2" stroke-linecap="round"/>
    <path d="M578 267C604 286 654 292 700 292C753 292 803 283 827 264" fill="none" stroke="#d4ddda" stroke-opacity=".45" stroke-width="2"/>
    <!-- barrel -->
    <path d="M570 299L579 547C579 563 633 577 700 577C767 577 821 563 821 547L830 299C807 317 755 327 700 327C645 327 593 317 570 299Z" fill="url(#plasticLight)" stroke="#3b5257" stroke-width="1.8"/>
    <path d="M590 319L598 536C598 548 637 558 700 558C763 558 802 548 802 536L810 319" fill="none" stroke="#d9e2df" stroke-opacity=".44" stroke-width="1.3"/>
    <path d="M611 327L617 522" stroke="#edf2ed" stroke-opacity=".5" stroke-width="9" stroke-linecap="round"/>
    <path d="M627 330L632 498" stroke="#f5f7f1" stroke-opacity=".24" stroke-width="3" stroke-linecap="round"/>
    <path d="M786 330L779 532" stroke="#20373d" stroke-opacity=".26" stroke-width="8" stroke-linecap="round"/>
    <!-- subtle plunger ribs -->
    <path d="M650 334L653 541M750 334L747 541" stroke="#4b6367" stroke-opacity=".24" stroke-width="2"/>
    <ellipse cx="700" cy="548" rx="121" ry="29" fill="#40575c" fill-opacity=".22" stroke="#3d555a" stroke-width="1.8"/>
    <ellipse cx="700" cy="547" rx="106" ry="21" fill="#e7ebe4" fill-opacity=".38" stroke="#c8d4d1" stroke-opacity=".5"/>
    <path d="M590 553C623 576 777 576 810 553" fill="none" stroke="#263e44" stroke-opacity=".6" stroke-width="2"/>
  </g>

  <!-- 02 / detached plunger seal -->
  <g id="seal">
    <ellipse cx="700" cy="674" rx="121" ry="20" fill="#253435" opacity=".13" filter="url(#smallShadow)"/>
    <path d="M579 637V656C579 674 633 688 700 688C767 688 821 674 821 656V637Z" fill="url(#rubber)" stroke="#1e2e31" stroke-width="1.8"/>
    <ellipse cx="700" cy="637" rx="121" ry="31" fill="url(#rubber)" stroke="#223437" stroke-width="2"/>
    <ellipse cx="700" cy="636" rx="101" ry="21" fill="#253538" stroke="#73807f" stroke-opacity=".45" stroke-width="1.2"/>
    <ellipse cx="700" cy="635" rx="89" ry="16" fill="#b8c2bd" fill-opacity=".24"/>
    <path d="M585 653C616 676 783 676 815 653" fill="none" stroke="#0f2023" stroke-width="3" opacity=".7"/>
    <path d="M594 663C641 685 759 685 806 663" fill="none" stroke="#77817f" stroke-opacity=".35" stroke-width="1.2"/>
  </g>

  <!-- 03 / chamber flange and body -->
  <g id="chamber">
    <!-- winged top flange, original chamber silhouette -->
    <path d="M548 749L484 749C469 749 458 759 458 772V784C458 796 469 805 484 805H550L552 821H848L850 805H916C931 805 942 796 942 784V772C942 759 931 749 916 749H852Z" fill="url(#rim)" stroke="#30484d" stroke-width="2"/>
    <path d="M472 762H546M854 762H928" stroke="#a9b8b7" stroke-opacity=".5" stroke-width="2" stroke-linecap="round"/>
    <path d="M470 790H545M855 790H930" stroke="#1d353b" stroke-opacity=".55" stroke-width="2" stroke-linecap="round"/>
    <!-- body -->
    <path d="M548 780L561 1192C561 1214 623 1232 700 1232C777 1232 839 1214 839 1192L852 780Z" fill="url(#plastic)" stroke="#344e54" stroke-width="2"/>
    <!-- inner rear wall and vertical highlights -->
    <path d="M572 797L582 1180C582 1195 633 1209 700 1209C767 1209 818 1195 818 1180L828 797" fill="none" stroke="#d9e2de" stroke-opacity=".42" stroke-width="1.5"/>
    <path d="M581 817L591 1164" stroke="#eef2eb" stroke-opacity=".48" stroke-width="9" stroke-linecap="round"/>
    <path d="M600 822L607 1095" stroke="#f8faf4" stroke-opacity=".23" stroke-width="3" stroke-linecap="round"/>
    <path d="M814 818L804 1172" stroke="#203a40" stroke-opacity=".28" stroke-width="9" stroke-linecap="round"/>
    <path d="M774 822L768 1180" stroke="#e4ebe5" stroke-opacity=".18" stroke-width="2"/>
    <!-- printed volume scale -->
    <g clip-path="url(#chamberClip)" class="sans" fill="#f5f4e9">
      <g font-size="24" font-weight="700" text-anchor="middle">
        <text x="627" y="880">4</text>
        <text x="630" y="973">3</text>
        <text x="633" y="1066">2</text>
        <text x="636" y="1159">1</text>
      </g>
      <g stroke="#f5f4e9" stroke-width="3" stroke-linecap="round" opacity=".93">
        <path d="M648 871H683M651 964H683M654 1057H683M657 1150H683"/>
      </g>
      <g stroke="#f5f4e9" stroke-width="1.4" opacity=".72">
        <path d="M652 894H669M653 917H669M654 940H669M655 987H671M656 1010H671M657 1033H671M658 1080H673M659 1103H673M660 1126H673"/>
      </g>
      <text x="757" y="1080" transform="rotate(-90 757 1080)" font-size="37" font-weight="750" letter-spacing="-.8" text-anchor="middle">AeroPress</text>
      <text x="788" y="1080" transform="rotate(-90 788 1080)" font-size="10" font-weight="600" letter-spacing="2.1" text-anchor="middle" opacity=".8">COFFEE MAKER</text>
    </g>
    <!-- lower open rim -->
    <path d="M561 1192C561 1214 623 1232 700 1232C777 1232 839 1214 839 1192V1207C839 1229 777 1247 700 1247C623 1247 561 1229 561 1207Z" fill="#31494f" fill-opacity=".8"/>
    <ellipse cx="700" cy="1194" rx="139" ry="36" fill="none" stroke="#314b51" stroke-width="2"/>
    <ellipse cx="700" cy="1193" rx="124" ry="27" fill="#e8ebe4" fill-opacity=".16" stroke="#c3cfcb" stroke-opacity=".46" stroke-width="1.2"/>
    <path d="M574 1205C613 1234 787 1234 826 1205" fill="none" stroke="#203a40" stroke-opacity=".75" stroke-width="2.2"/>
    <!-- open top and flange lip drawn last -->
    <path d="M548 769V786C548 810 616 829 700 829C784 829 852 810 852 786V769Z" fill="url(#rim)" stroke="#344d52" stroke-width="1.8"/>
    <ellipse cx="700" cy="769" rx="152" ry="40" fill="url(#plastic)" stroke="#304a50" stroke-width="2"/>
    <ellipse cx="700" cy="768" rx="132" ry="30" fill="#283e44" fill-opacity=".7" stroke="#adbfbd" stroke-opacity=".65" stroke-width="1.5"/>
    <ellipse cx="700" cy="770" rx="118" ry="23" fill="#182f36" fill-opacity=".48"/>
    <path d="M562 777C596 808 804 808 838 777" fill="none" stroke="#d1dcd7" stroke-opacity=".55" stroke-width="2"/>
    <path d="M576 753C622 731 778 731 824 753" fill="none" stroke="#e0e6df" stroke-opacity=".45" stroke-width="1.6"/>
  </g>

  <!-- 04 / original round paper microfilter -->
  <g id="paper-filter">
    <ellipse cx="700" cy="1335" rx="123" ry="18" fill="#5d625a" opacity=".12" filter="url(#smallShadow)"/>
    <path d="M574 1312V1319C574 1336 630 1350 700 1350C770 1350 826 1336 826 1319V1312Z" fill="#d7d0bf" stroke="#bdb5a2" stroke-width="1"/>
    <ellipse cx="700" cy="1312" rx="126" ry="34" fill="url(#paper)" stroke="#c9c1ae" stroke-width="1.4"/>
    <ellipse cx="700" cy="1312" rx="125" ry="33" fill="url(#paperGrain)" opacity=".75"/>
    <ellipse cx="700" cy="1312" rx="114" ry="28" fill="none" stroke="#d7cfbd" stroke-width=".8" stroke-dasharray="1.5 3"/>
    <path d="M588 1321C627 1344 773 1344 812 1321" fill="none" stroke="#b8af9d" stroke-opacity=".65" stroke-width="1"/>
  </g>

  <!-- 05 / filter cap with visible perforated outlet -->
  <g id="filter-cap">
    <!-- opposing finger tabs -->
    <path d="M559 1410L519 1401C505 1398 493 1407 493 1420V1443C493 1457 506 1466 521 1462L562 1452Z" fill="url(#capBody)" stroke="#182a2e" stroke-width="2"/>
    <path d="M841 1410L881 1401C895 1398 907 1407 907 1420V1443C907 1457 894 1466 879 1462L838 1452Z" fill="url(#capBody)" stroke="#182a2e" stroke-width="2"/>
    <path d="M507 1417L550 1425M507 1431L550 1438M507 1445L544 1451M893 1417L850 1425M893 1431L850 1438M893 1445L856 1451" stroke="#72807f" stroke-opacity=".38" stroke-width="2"/>
    <!-- cap sidewall -->
    <path d="M548 1429V1462C548 1490 616 1512 700 1512C784 1512 852 1490 852 1462V1429Z" fill="url(#capBody)" stroke="#17292d" stroke-width="2"/>
    <path d="M559 1468C590 1496 810 1496 841 1468" fill="none" stroke="#758180" stroke-opacity=".38" stroke-width="2"/>
    <path d="M568 1480C620 1508 780 1508 832 1480" fill="none" stroke="#101f23" stroke-opacity=".65" stroke-width="2"/>
    <!-- top face -->
    <ellipse cx="700" cy="1429" rx="152" ry="43" fill="url(#capTop)" stroke="#172a2e" stroke-width="2.2"/>
    <ellipse cx="700" cy="1429" rx="132" ry="36" fill="#172629" stroke="#687678" stroke-opacity=".6" stroke-width="1.4"/>
    <ellipse cx="700" cy="1430" rx="118" ry="33" fill="#39474a"/>
    <rect x="570" y="1394" width="260" height="75" fill="url(#holes)" clip-path="url(#grillClip)"/>
    <ellipse cx="700" cy="1430" rx="116" ry="32" fill="none" stroke="#111f22" stroke-width="2"/>
    <path d="M568 1437C608 1468 792 1468 832 1437" fill="none" stroke="#73807f" stroke-opacity=".42" stroke-width="2"/>
    <path d="M581 1408C625 1386 775 1386 819 1408" fill="none" stroke="#899390" stroke-opacity=".34" stroke-width="1.5"/>
    <!-- molded grip ticks -->
    <g stroke="#0f2226" stroke-width="2" opacity=".6">
      <path d="M558 1447L571 1452M560 1458L574 1463M826 1452L840 1447M826 1463L840 1458"/>
    </g>
  </g>

  <!-- numbered callouts -->
  <g id="callouts">
    <!-- 01 left -->
    <path class="leader" d="M360 408H468L550 376"/>
    <circle cx="551" cy="376" r="4" fill="#b65d3f"/>
    <g class="sans">
      <text x="82" y="371" font-size="14" font-weight="700" letter-spacing="2" fill="#b65d3f">01</text>
      <text x="82" y="404" class="label">PLUNGER</text>
      <text x="82" y="432" class="sub">Press barrel with integral</text>
      <text x="82" y="455" class="sub">circular thumb flange</text>
    </g>
    <!-- 02 right -->
    <path class="leader" d="M829 643H958L1001 615H1050"/>
    <circle cx="829" cy="643" r="4" fill="#b65d3f"/>
    <g class="sans">
      <text x="1068" y="575" font-size="14" font-weight="700" letter-spacing="2" fill="#b65d3f">02</text>
      <text x="1068" y="608" class="label">PLUNGER</text>
      <text x="1068" y="635" class="label">SEAL</text>
      <text x="1068" y="663" class="sub">Flexible pressure gasket</text>
    </g>
    <!-- 03 left -->
    <path class="leader" d="M359 1011H466L555 982"/>
    <circle cx="556" cy="982" r="4" fill="#b65d3f"/>
    <g class="sans">
      <text x="82" y="944" font-size="14" font-weight="700" letter-spacing="2" fill="#b65d3f">03</text>
      <text x="82" y="977" class="label">BREW CHAMBER</text>
      <text x="82" y="1005" class="sub">Numbered cylinder with</text>
      <text x="82" y="1028" class="sub">winged top flange</text>
    </g>
    <!-- 04 right -->
    <path class="leader" d="M826 1312H971L1011 1284H1050"/>
    <circle cx="826" cy="1312" r="4" fill="#b65d3f"/>
    <g class="sans">
      <text x="1068" y="1235" font-size="14" font-weight="700" letter-spacing="2" fill="#b65d3f">04</text>
      <text x="1068" y="1268" class="label">PAPER</text>
      <text x="1068" y="1295" class="label">MICROFILTER</text>
      <text x="1068" y="1323" class="sub">Round, disposable disk</text>
    </g>
    <!-- 05 left -->
    <path class="leader" d="M361 1465H426L492 1438"/>
    <circle cx="493" cy="1438" r="4" fill="#b65d3f"/>
    <g class="sans">
      <text x="82" y="1394" font-size="14" font-weight="700" letter-spacing="2" fill="#b65d3f">05</text>
      <text x="82" y="1427" class="label">FILTER CAP</text>
      <text x="82" y="1455" class="sub">Twist-lock · outlet face up</text>
      <text x="82" y="1478" class="sub">Perforated coffee outlet</text>
    </g>
  </g>

  <!-- small assembly cue and footer -->
  <g class="sans">
    <g transform="translate(1090 1470)">
      <path d="M0 0V70M-6 60L0 70L6 60" fill="none" stroke="#b65d3f" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
      <text x="23" y="18" font-size="12" font-weight="700" letter-spacing="1.7" fill="#7b8581">STACK TO</text>
      <text x="23" y="38" font-size="12" font-weight="700" letter-spacing="1.7" fill="#7b8581">ASSEMBLE</text>
      <text x="23" y="66" font-size="12" fill="#98a09b">Filter seats in cap</text>
    </g>
    <text x="72" y="1684" font-size="13" font-weight="700" letter-spacing="2.3" fill="#53625f">ORIGINAL AEROPRESS</text>
    <text x="72" y="1712" font-size="15" fill="#7f8985">Round paper microfilter · standard chamber and plunger</text>
    <text x="1328" y="1684" text-anchor="end" font-size="13" font-weight="700" letter-spacing="2.1" fill="#53625f">ASSEMBLY SEQUENCE</text>
    <text x="1328" y="1712" text-anchor="end" font-size="15" fill="#7f8985">Top to bottom · components not to scale</text>
    <text x="700" y="1764" text-anchor="middle" font-size="11" letter-spacing="2.7" fill="#a0a7a2">COFFEE / PRESS / ENJOY</text>
  </g>
</svg>
round 1 of 2
Exploded AeroPress, by Kimi K3.1 Pro, the render after round 1
12What the model saw after each round. The picture above is the round that was scored, round 2.
gallery/Exploded AeroPress/Kimi K3.1 Pro, run 1

Exploded AeroPress: Kimi K3.1 Pro

modelmoonshotai/kimi-k3.1-protaskexploded-aeropress@v1, checks c1, harness h1date2026-10-26rounds2 of 8 allowed, 12 minutes on the clockcost$0.1632thinkingmediumtokens93,026 in, 11,511 out, of which 3,323 reasoningtime4 min 35 sfailedParts fit: false, geometry distorted, major
All five partsdecided by looking · Pass if every listed part is drawn as a separate shape and each has a label naming it. A part only named in a label or a comment, with nothing drawn, fails it. The label must say what the part is, in any words: a name that only says where it sits ("top plate") or what it is made of, or a mention in another part's caption, does not count.pass
Stack orderdecided by a number, from the filepass
Parts fitdecided by a number, from the filefail
One assembly axisdecided by looking · Pass if one line runs through the middle of every part on each listed axis, and every leader line leaves from the same side. One part pushed off its axis fails it.pass
Labels matchdecided by looking · Pass if following each leader line from its label ends on the part that label names. One label pointing at the wrong part, or at nothing, fails it.pass

There is no post about this one, since only some results need one, so the picture, the source and the scoring are here instead.

its other runs
the prompt it was given
Draw an exploded assembly diagram of an AeroPress coffee maker, as an SVG. Use the original model with a round paper filter rather than the Go or the XL.
Frozen at v1. This model got this and nothing else.
ground truth

Top to bottom: plunger, rubber seal, chamber, paper filter, filter cap. The seal sits on the plunger's lower end, and the paper filter sits in the cap below the chamber. Checked against AeroPress's replacement-parts pages, which sell the plunger with its seal, the chamber and the cap as the parts of the Original, and Wikipedia's description of the cap holding the filter at the chamber's bottom end. The stirrer and scoop are not part of the assembly. How it is scored, and this run's files on GitHub.