aeropress.svg · 242 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 coffee maker — exploded assembly</title>
<desc id="desc">A technical exploded diagram showing, from top to bottom, the plunger, silicone seal, brewing chamber, flat round paper filter, and perforated twist-lock filter cap.</desc>
<defs>
<linearGradient id="bg" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#faf9f5"/>
<stop offset="1" stop-color="#f1efe8"/>
</linearGradient>
<linearGradient id="plastic" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#8c9b9d" stop-opacity=".72"/>
<stop offset=".12" stop-color="#dbe2df" stop-opacity=".82"/>
<stop offset=".30" stop-color="#f8faf6" stop-opacity=".64"/>
<stop offset=".56" stop-color="#b9c6c5" stop-opacity=".48"/>
<stop offset=".82" stop-color="#e8eeea" stop-opacity=".70"/>
<stop offset="1" stop-color="#718487" stop-opacity=".76"/>
</linearGradient>
<linearGradient id="plasticDark" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#5f7175"/>
<stop offset=".18" stop-color="#b8c5c3"/>
<stop offset=".45" stop-color="#d9e0dc"/>
<stop offset=".75" stop-color="#a0afaf"/>
<stop offset="1" stop-color="#52666b"/>
</linearGradient>
<linearGradient id="rim" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#f1f5f0"/>
<stop offset=".48" stop-color="#b9c6c4"/>
<stop offset="1" stop-color="#7e9092"/>
</linearGradient>
<linearGradient id="rubber" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#536467"/>
<stop offset=".42" stop-color="#293b40"/>
<stop offset="1" stop-color="#17292e"/>
</linearGradient>
<linearGradient id="capSide" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#859699"/>
<stop offset="1" stop-color="#465d63"/>
</linearGradient>
<radialGradient id="capTop" cx="42%" cy="28%" r="75%">
<stop offset="0" stop-color="#d5deda"/>
<stop offset="1" stop-color="#8c9d9e"/>
</radialGradient>
<pattern id="holes" width="24" height="20" patternUnits="userSpaceOnUse">
<ellipse cx="7" cy="6" rx="2.8" ry="1.8" fill="#32494f"/>
<ellipse cx="19" cy="16" rx="2.8" ry="1.8" fill="#32494f"/>
</pattern>
<pattern id="paperGrain" width="19" height="13" patternUnits="userSpaceOnUse">
<path d="M2 4l5-1M12 10l4-1" stroke="#c6bda9" stroke-width=".65" opacity=".45"/>
</pattern>
<filter id="shadow" x="-40%" y="-200%" width="180%" height="500%">
<feGaussianBlur stdDeviation="10"/>
</filter>
<filter id="softShadow" x="-30%" y="-100%" width="160%" height="300%">
<feGaussianBlur stdDeviation="5"/>
</filter>
<clipPath id="filterClip"><ellipse cx="700" cy="1392" rx="121" ry="32"/></clipPath>
<style>
.ink{fill:#20343b}.muted{fill:#68797c}.accent{fill:#d76b3f}
.outline{stroke:#40575d;stroke-width:2;stroke-linejoin:round}
.fine{fill:none;stroke:#60767a;stroke-width:1.4}
.highlight{fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;opacity:.58}
.leader{fill:none;stroke:#829093;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.label{font-family:Arial,Helvetica,sans-serif;font-size:21px;font-weight:700;letter-spacing:1.7px;fill:#20343b}
.note{font-family:Arial,Helvetica,sans-serif;font-size:16px;letter-spacing:.25px;fill:#68797c}
.index{font-family:Arial,Helvetica,sans-serif;font-size:14px;font-weight:700;fill:#fff;text-anchor:middle}
.smallcap{font-family:Arial,Helvetica,sans-serif;font-size:13px;font-weight:700;letter-spacing:2.2px}
</style>
</defs>
<rect width="1400" height="1800" fill="url(#bg)"/>
<path d="M70 55H170" stroke="#d76b3f" stroke-width="5"/>
<text x="70" y="118" font-family="Arial,Helvetica,sans-serif" font-size="52" font-weight="800" letter-spacing="2" class="ink">AEROPRESS</text>
<text x="72" y="153" font-family="Arial,Helvetica,sans-serif" font-size="20" letter-spacing=".7" class="muted">Original coffee maker · exploded assembly</text>
<g transform="translate(1110 76)">
<rect width="220" height="64" rx="8" fill="#e7e8e1" stroke="#cdd3ce"/>
<text x="20" y="25" class="smallcap muted">ORIGINAL MODEL</text>
<text x="20" y="48" font-family="Arial,Helvetica,sans-serif" font-size="15" fill="#20343b">Round paper filter</text>
</g>
<path d="M70 181H1330" stroke="#d5d9d3"/>
<!-- common assembly axis -->
<path d="M700 215V1628" stroke="#aab5b3" stroke-width="1.3" stroke-dasharray="5 10" opacity=".75"/>
<g fill="#d76b3f" opacity=".8">
<path d="M694 684h12l-6 9z"/><path d="M694 819h12l-6 9z"/>
<path d="M694 1331h12l-6 9z"/><path d="M694 1456h12l-6 9z"/>
</g>
<!-- 01 PLUNGER -->
<g id="plunger">
<ellipse cx="700" cy="655" rx="91" ry="12" fill="#53686b" opacity=".13" filter="url(#shadow)"/>
<!-- hollow translucent barrel -->
<path d="M600 272L600 591C600 611 642 626 700 626C758 626 800 611 800 591L800 272Z" fill="url(#plastic)" class="outline"/>
<path d="M616 289L616 584C616 598 628 607 646 612" class="highlight"/>
<path d="M782 296L782 582C782 599 769 609 751 615" class="fine" opacity=".4"/>
<path d="M633 297L633 576" stroke="#75898b" stroke-width="1.2" opacity=".35"/>
<path d="M767 297L767 576" stroke="#fff" stroke-width="2" opacity=".35"/>
<ellipse cx="700" cy="591" rx="100" ry="30" fill="#9dacab" fill-opacity=".24" stroke="#5d7377" stroke-width="1.5"/>
<ellipse cx="700" cy="590" rx="82" ry="21" fill="#dfe5e0" fill-opacity=".33" stroke="#829395" stroke-width="1"/>
<!-- plunger end and seal seat -->
<path d="M645 607L649 637C651 650 673 659 700 659C727 659 749 650 751 637L755 607Z" fill="url(#plasticDark)" class="outline"/>
<ellipse cx="700" cy="608" rx="55" ry="17" fill="#c4cfcc" stroke="#4d6469" stroke-width="1.5"/>
<ellipse cx="700" cy="640" rx="50" ry="16" fill="#819496" stroke="#40575d" stroke-width="1.5"/>
<path d="M657 630C678 641 722 641 743 630" class="highlight" opacity=".4"/>
<!-- wide thumb flange -->
<path d="M568 246V260C568 282 627 300 700 300C773 300 832 282 832 260V246Z" fill="url(#plasticDark)" class="outline"/>
<ellipse cx="700" cy="246" rx="132" ry="40" fill="url(#rim)" class="outline"/>
<ellipse cx="700" cy="245" rx="102" ry="30" fill="#718488" stroke="#40575d" stroke-width="2"/>
<ellipse cx="700" cy="243" rx="88" ry="23" fill="#31474d"/>
<path d="M612 243C628 226 665 220 700 220C735 220 772 226 788 243" fill="none" stroke="#a7b7b6" stroke-width="3" opacity=".7"/>
<path d="M585 254C604 273 648 282 700 282" class="highlight"/>
<path d="M595 235C620 216 661 209 700 209" fill="none" stroke="#fff" stroke-width="2" opacity=".7"/>
</g>
<!-- 02 SEAL -->
<g id="seal">
<ellipse cx="700" cy="787" rx="96" ry="11" fill="#243a40" opacity=".17" filter="url(#softShadow)"/>
<path d="M598 736V758C598 780 644 796 700 796C756 796 802 780 802 758V736Z" fill="url(#rubber)" stroke="#172c32" stroke-width="2"/>
<ellipse cx="700" cy="736" rx="102" ry="31" fill="#455a5e" stroke="#172c32" stroke-width="2"/>
<ellipse cx="700" cy="735" rx="79" ry="22" fill="#263c42" stroke="#718285" stroke-width="1.3"/>
<ellipse cx="700" cy="731" rx="57" ry="15" fill="#3f5357" stroke="#1b3036" stroke-width="1.4"/>
<path d="M603 754C623 774 750 785 794 752" fill="none" stroke="#708184" stroke-width="2" opacity=".65"/>
<path d="M614 724C642 705 732 703 777 721" fill="none" stroke="#94a3a3" stroke-width="2" opacity=".5"/>
</g>
<!-- 03 CHAMBER -->
<g id="chamber">
<ellipse cx="700" cy="1301" rx="146" ry="15" fill="#53686b" opacity=".12" filter="url(#shadow)"/>
<!-- main transparent tube -->
<path d="M575 870L575 1229C575 1253 630 1272 700 1272C770 1272 825 1253 825 1229L825 870Z" fill="url(#plastic)" class="outline"/>
<path d="M594 898L594 1217C594 1234 608 1245 627 1252" class="highlight"/>
<path d="M806 900L806 1219C806 1234 793 1245 778 1252" class="fine" opacity=".45"/>
<path d="M615 901V1211" stroke="#7d9091" stroke-width="1.2" opacity=".3"/>
<path d="M786 901V1210" stroke="#fff" stroke-width="2" opacity=".36"/>
<!-- subtle inner wall visible through plastic -->
<path d="M601 896V1207C601 1226 645 1241 700 1241C755 1241 799 1226 799 1207V896" fill="none" stroke="#728689" stroke-width="1.2" opacity=".36"/>
<!-- chamber opening and rolled rim -->
<ellipse cx="700" cy="870" rx="125" ry="38" fill="url(#rim)" class="outline"/>
<ellipse cx="700" cy="869" rx="109" ry="30" fill="#53696d" stroke="#40575d" stroke-width="1.8"/>
<ellipse cx="700" cy="866" rx="96" ry="24" fill="#283f45"/>
<path d="M604 866C623 847 662 839 700 839C738 839 777 847 796 866" fill="none" stroke="#98aaa9" stroke-width="3" opacity=".65"/>
<path d="M589 882C618 904 772 916 814 879" fill="none" stroke="#eff3ee" stroke-width="3" opacity=".7"/>
<path d="M600 851C628 832 668 827 700 827" fill="none" stroke="#fff" stroke-width="2.2" opacity=".72"/>
<!-- printed volume marks -->
<g font-family="Arial,Helvetica,sans-serif" font-size="18" font-weight="700" fill="#41595e" opacity=".82">
<text x="756" y="962">4</text><text x="756" y="1033">3</text>
<text x="756" y="1104">2</text><text x="756" y="1175">1</text>
</g>
<g stroke="#4d6469" stroke-width="2" opacity=".75">
<path d="M733 956h14M725 963h8M733 1027h14M725 1034h8M733 1098h14M725 1105h8M733 1169h14M725 1176h8"/>
</g>
<text x="636" y="1068" font-family="Arial,Helvetica,sans-serif" font-size="23" font-weight="700" fill="#4a6266" opacity=".72">AeroPress</text>
<text x="652" y="1092" font-family="Arial,Helvetica,sans-serif" font-size="10" letter-spacing="2.3" fill="#4a6266" opacity=".7">ORIGINAL</text>
<!-- hexagonal stability flange -->
<path d="M561 1222L839 1222L873 1247V1270L838 1293H562L527 1270V1247Z" fill="url(#plasticDark)" class="outline"/>
<path d="M561 1222H839L873 1247L838 1269H562L527 1247Z" fill="#b6c3c1" fill-opacity=".85" stroke="#40575d" stroke-width="1.7"/>
<ellipse cx="700" cy="1245" rx="96" ry="28" fill="#5b7074" stroke="#40575d" stroke-width="1.6"/>
<ellipse cx="700" cy="1243" rx="80" ry="21" fill="#2c4349"/>
<path d="M527 1247L562 1269H838L873 1247" fill="none" stroke="#e3e9e4" stroke-width="2" opacity=".7"/>
<path d="M549 1275H851" stroke="#425a60" stroke-width="1.4" opacity=".7"/>
<path d="M568 1285H832" stroke="#e3e9e4" stroke-width="1.5" opacity=".45"/>
</g>
<!-- 04 ROUND PAPER FILTER -->
<g id="paper-filter">
<ellipse cx="700" cy="1410" rx="116" ry="12" fill="#7a6d59" opacity=".15" filter="url(#softShadow)"/>
<path d="M575 1392V1399C575 1418 631 1434 700 1434C769 1434 825 1418 825 1399V1392Z" fill="#d9d1bf" stroke="#a79f8e" stroke-width="1.4"/>
<ellipse cx="700" cy="1392" rx="125" ry="36" fill="#f8f3e6" stroke="#a79f8e" stroke-width="1.5"/>
<ellipse cx="700" cy="1392" rx="121" ry="32" fill="url(#paperGrain)"/>
<ellipse cx="700" cy="1392" rx="112" ry="28" fill="none" stroke="#d7cfbd" stroke-width="1" stroke-dasharray="2 4"/>
<g clip-path="url(#filterClip)" stroke="#c9c0ad" stroke-width=".7" opacity=".36">
<path d="M585 1380L815 1405M590 1372L810 1413M606 1365L796 1419M580 1396L811 1381M600 1410L802 1371"/>
</g>
<path d="M595 1380C626 1359 753 1353 803 1378" fill="none" stroke="#fff" stroke-width="2" opacity=".8"/>
</g>
<!-- 05 FILTER CAP -->
<g id="filter-cap">
<ellipse cx="700" cy="1608" rx="139" ry="16" fill="#344b51" opacity=".16" filter="url(#shadow)"/>
<!-- bayonet tabs behind the cap -->
<path d="M567 1514L535 1523Q522 1527 526 1541L532 1558Q536 1569 551 1565L577 1558Z" fill="url(#capSide)" class="outline"/>
<path d="M833 1514L865 1523Q878 1527 874 1541L868 1558Q864 1569 849 1565L823 1558Z" fill="url(#capSide)" class="outline"/>
<path d="M555 1536V1580C555 1605 620 1625 700 1625C780 1625 845 1605 845 1580V1536Z" fill="url(#capSide)" class="outline"/>
<ellipse cx="700" cy="1536" rx="145" ry="44" fill="url(#capTop)" class="outline"/>
<ellipse cx="700" cy="1535" rx="127" ry="36" fill="#6e8285" stroke="#40575d" stroke-width="1.5"/>
<ellipse cx="700" cy="1534" rx="113" ry="31" fill="#b6c2bf" stroke="#40575d" stroke-width="1.5"/>
<ellipse cx="700" cy="1534" rx="108" ry="28" fill="url(#holes)"/>
<ellipse cx="700" cy="1534" rx="108" ry="28" fill="none" stroke="#d6dfda" stroke-width="1.2"/>
<path d="M570 1546C598 1572 783 1585 831 1544" fill="none" stroke="#d4dfda" stroke-width="2.2" opacity=".7"/>
<path d="M577 1518C613 1493 764 1485 817 1514" fill="none" stroke="#eff3ed" stroke-width="2.3" opacity=".7"/>
<!-- front grip ribs -->
<g stroke="#263f46" stroke-width="3" stroke-linecap="round" opacity=".7">
<path d="M602 1582v14M622 1588v14M644 1592v14M666 1595v14M689 1596v14M712 1596v14M735 1595v14M757 1592v14M779 1588v14M799 1582v14"/>
</g>
<path d="M590 1571C631 1590 766 1601 813 1571" fill="none" stroke="#aebbb8" stroke-width="1.2" opacity=".65"/>
</g>
<!-- Labels and leaders -->
<g id="annotations">
<!-- 01 -->
<circle cx="101" cy="401" r="18" fill="#d76b3f"/><text x="101" y="406" class="index">01</text>
<text x="132" y="396" class="label">PLUNGER</text>
<text x="132" y="422" class="note">Hollow barrel & thumb flange</text>
<path d="M132 444H424L500 421H596" class="leader"/>
<circle cx="596" cy="421" r="4" fill="#d76b3f"/>
<!-- 02 -->
<circle cx="1000" cy="727" r="18" fill="#d76b3f"/><text x="1000" y="732" class="index">02</text>
<text x="1031" y="722" class="label">SILICONE SEAL</text>
<text x="1031" y="748" class="note">Removable pressure gasket</text>
<path d="M806 744H901L956 765H1238" class="leader"/>
<circle cx="806" cy="744" r="4" fill="#d76b3f"/>
<!-- 03 -->
<circle cx="101" cy="1018" r="18" fill="#d76b3f"/><text x="101" y="1023" class="index">03</text>
<text x="132" y="1013" class="label">CHAMBER</text>
<text x="132" y="1039" class="note">Brewing tube with base flange</text>
<text x="132" y="1063" class="note">Printed 1–4 volume marks</text>
<path d="M132 1085H425L500 1055H571" class="leader"/>
<circle cx="571" cy="1055" r="4" fill="#d76b3f"/>
<!-- 04 -->
<circle cx="1000" cy="1356" r="18" fill="#d76b3f"/><text x="1000" y="1361" class="index">04</text>
<text x="1031" y="1351" class="label">PAPER FILTER</text>
<text x="1031" y="1377" class="note">Flat, round single-use disk</text>
<text x="1031" y="1401" class="note">Seats inside the filter cap</text>
<path d="M826 1392H916L955 1422H1248" class="leader"/>
<circle cx="826" cy="1392" r="4" fill="#d76b3f"/>
<!-- 05 -->
<circle cx="101" cy="1493" r="18" fill="#d76b3f"/><text x="101" y="1498" class="index">05</text>
<text x="132" y="1488" class="label">FILTER CAP</text>
<text x="132" y="1514" class="note">Perforated twist-lock closure</text>
<path d="M132 1536H410L486 1555H552" class="leader"/>
<circle cx="552" cy="1555" r="4" fill="#d76b3f"/>
</g>
<!-- Footer -->
<path d="M70 1680H1330" stroke="#d5d9d3"/>
<g transform="translate(70 1714)">
<circle cx="7" cy="-5" r="5" fill="#d76b3f"/>
<text x="25" y="0" class="smallcap ink">ASSEMBLY ORDER</text>
<text x="25" y="28" class="note">Seal onto plunger · filter into cap · cap twist-locks onto chamber</text>
</g>
<text x="1330" y="1714" text-anchor="end" class="smallcap muted">EXPLODED VIEW</text>
<text x="1330" y="1742" text-anchor="end" class="note">Core assembly · not to scale</text>
</svg>Exploded AeroPress: Kimi K3.1 Pro
modelmoonshotai/kimi-k3.1-protaskexploded-aeropress@v1, checks c1, harness h1date2026-10-26rounds1 of 8 allowed, 12 minutes on the clockcost$0.1243thinkingmediumtokens37,718 in, 9,453 out, of which 3,219 reasoningtime3 min 44 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.
run 1 · 2r · $0.1632
run 2 · 3r · $0.2015same prompt, other modelsall 15 runs on Exploded AeroPress →
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.
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.