v60.svg · 107 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="1200" viewBox="0 0 1200 1200">
<defs>
<linearGradient id="paper" x1="0" y1="0" x2="1" y2="0"><stop stop-color="#e5d8be"/><stop offset=".22" stop-color="#fff9eb"/><stop offset=".72" stop-color="#f4ead6"/><stop offset="1" stop-color="#d9c9ad"/></linearGradient>
<linearGradient id="ceramic" x1="0" y1="0" x2="1" y2=".25"><stop stop-color="#153f46"/><stop offset=".3" stop-color="#286873"/><stop offset=".62" stop-color="#367b83"/><stop offset="1" stop-color="#17464f"/></linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="1" y2="0"><stop stop-color="#cce1df" stop-opacity=".3"/><stop offset=".22" stop-color="#f8ffff" stop-opacity=".68"/><stop offset=".73" stop-color="#d7eded" stop-opacity=".28"/><stop offset="1" stop-color="#b8d6d5" stop-opacity=".62"/></linearGradient>
<linearGradient id="coffee" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#c8884f"/><stop offset="1" stop-color="#8e512d"/></linearGradient>
<filter id="shadow" x="-.3" y="-.3" width="1.6" height="1.8"><feGaussianBlur stdDeviation="10"/></filter>
<pattern id="speckle" width="13" height="13" patternUnits="userSpaceOnUse"><circle cx="3" cy="4" r=".7" fill="#876e4b" opacity=".25"/><circle cx="10" cy="9" r=".6" fill="#fff" opacity=".5"/></pattern>
</defs>
<!-- warm studio sheet -->
<rect width="1200" height="1200" fill="#f5f2e9"/>
<path d="M54 155H1146" stroke="#d8d3c6" stroke-width="1"/>
<text x="76" y="83" font-family="Arial, Helvetica, sans-serif" font-size="15" font-weight="700" letter-spacing="4" fill="#55716f">BREWWARE / ANATOMY</text>
<text x="74" y="133" font-family="Georgia, 'Times New Roman', serif" font-size="38" fill="#183e42">V60 pour-over</text>
<text x="1128" y="91" text-anchor="end" font-family="Arial, Helvetica, sans-serif" font-size="13" letter-spacing="2" fill="#73817a">EXPLODED ASSEMBLY</text>
<text x="1128" y="119" text-anchor="end" font-family="Arial, Helvetica, sans-serif" font-size="13" letter-spacing="1" fill="#73817a">01 — 03</text>
<!-- exploded axis -->
<path d="M600 206V1024" stroke="#9ba9a0" stroke-width="1.5" stroke-dasharray="3 8" opacity=".8"/>
<!-- PAPER FILTER shadow -->
<ellipse cx="600" cy="442" rx="155" ry="13" fill="#746d5c" opacity=".14" filter="url(#shadow)"/>
<!-- filter cone -->
<path d="M425 267 C450 307 508 388 548 438 Q600 455 652 438 C692 388 750 307 775 267 Z" fill="url(#paper)" stroke="#b9aa90" stroke-width="2"/>
<path d="M425 267 C454 308 512 389 550 438 Q600 450 650 438 C688 389 746 308 775 267 Z" fill="url(#speckle)" opacity=".55"/>
<!-- filter pleats -->
<g fill="none" stroke="#b5a486" stroke-width="1.2" opacity=".85">
<path d="M439 279 Q488 359 565 438"/><path d="M457 282 Q500 365 574 440"/><path d="M477 285 Q515 370 582 442"/><path d="M499 287 Q532 375 590 443"/>
<path d="M761 279 Q712 359 635 438"/><path d="M743 282 Q700 365 626 440"/><path d="M723 285 Q685 370 618 442"/><path d="M701 287 Q668 375 610 443"/>
<path d="M520 289 Q544 365 596 444" opacity=".55"/><path d="M680 289 Q656 365 604 444" opacity=".55"/>
</g>
<!-- filter opening rim -->
<ellipse cx="600" cy="267" rx="175" ry="43" fill="#faf4e7" stroke="#b7a88e" stroke-width="2"/>
<ellipse cx="600" cy="267" rx="157" ry="29" fill="#e7dcc6" stroke="#d3c5ab" stroke-width="1.5"/>
<path d="M446 265 Q600 225 754 265" fill="none" stroke="#fffdf5" stroke-width="5" opacity=".9"/>
<!-- bottom filter seam -->
<ellipse cx="600" cy="440" rx="51" ry="13" fill="#e9dfcb" stroke="#b6a78e" stroke-width="1.5"/>
<!-- DRIPPER soft shadow -->
<ellipse cx="600" cy="704" rx="190" ry="18" fill="#615c4e" opacity=".15" filter="url(#shadow)"/>
<!-- ceramic cone body -->
<path d="M418 498 C443 554 497 641 540 688 Q600 704 660 688 C703 641 757 554 782 498 Z" fill="url(#ceramic)" stroke="#143c42" stroke-width="3"/>
<!-- cone wall highlights / spiral ribs -->
<g fill="none" stroke-linecap="round">
<path d="M438 512 C469 566 520 644 557 682" stroke="#75a2a2" stroke-width="3" opacity=".68"/>
<path d="M461 513 C486 572 535 649 570 690" stroke="#a0c3bd" stroke-width="2.4" opacity=".72"/>
<path d="M485 514 C505 574 547 655 582 695" stroke="#79a8a6" stroke-width="2.2" opacity=".7"/>
<path d="M511 515 C525 579 563 658 592 698" stroke="#98bfbb" stroke-width="2" opacity=".62"/>
<path d="M762 512 C731 566 680 644 643 682" stroke="#75a2a2" stroke-width="3" opacity=".68"/>
<path d="M739 513 C714 572 665 649 630 690" stroke="#a0c3bd" stroke-width="2.4" opacity=".72"/>
<path d="M715 514 C695 574 653 655 618 695" stroke="#79a8a6" stroke-width="2.2" opacity=".7"/>
<path d="M689 515 C675 579 637 658 608 698" stroke="#98bfbb" stroke-width="2" opacity=".62"/>
<path d="M600 519 C600 585 600 650 600 698" stroke="#80afad" stroke-width="2" opacity=".65"/>
</g>
<!-- dripper opening, top rim and interior -->
<ellipse cx="600" cy="498" rx="182" ry="48" fill="#17434a" stroke="#12383e" stroke-width="3"/>
<ellipse cx="600" cy="494" rx="163" ry="34" fill="#102f34" stroke="#6c9b9b" stroke-width="2"/>
<path d="M437 493 Q600 450 763 493" fill="none" stroke="#78a3a1" stroke-width="3" opacity=".85"/>
<!-- lower flange and drain hole -->
<ellipse cx="600" cy="691" rx="61" ry="17" fill="#28636b" stroke="#173f45" stroke-width="2"/>
<ellipse cx="600" cy="692" rx="19" ry="7" fill="#102d31" stroke="#91b6b2" stroke-width="1.5"/>
<!-- server handle, behind body -->
<path d="M690 825 C773 793 826 835 823 898 C820 952 781 973 723 949 L704 932 C756 950 791 927 794 891 C797 852 765 831 704 858 Z" fill="url(#glass)" stroke="#668b8b" stroke-width="5"/>
<path d="M714 843 C766 825 802 846 803 880" fill="none" stroke="#fff" stroke-width="3" opacity=".8"/>
<!-- server ground shadow -->
<ellipse cx="600" cy="1033" rx="180" ry="19" fill="#5c6259" opacity=".16" filter="url(#shadow)"/>
<!-- carafe glass body -->
<path d="M516 785 C520 821 525 838 493 867 C463 895 446 929 451 984 Q455 1016 483 1022 Q600 1041 717 1022 Q745 1016 749 984 C754 929 737 895 707 867 C675 838 680 821 684 785 Z" fill="url(#glass)" stroke="#729596" stroke-width="3"/>
<!-- glass foot/base -->
<path d="M464 1008 Q600 1034 736 1008" fill="none" stroke="#fff" stroke-width="5" opacity=".8"/>
<path d="M475 1019 Q600 1040 725 1019" fill="none" stroke="#779999" stroke-width="2"/>
<!-- coffee inside, lower body -->
<path d="M459 932 Q600 951 741 932 L747 984 Q744 1013 716 1018 Q600 1034 484 1018 Q456 1013 453 984 Z" fill="url(#coffee)" opacity=".88"/>
<path d="M459 932 Q600 951 741 932" fill="none" stroke="#e8bd88" stroke-width="3" opacity=".95"/>
<!-- redraw glass reflections over coffee -->
<path d="M476 887 C462 922 463 975 474 1000" fill="none" stroke="#fff" stroke-width="8" opacity=".55"/>
<path d="M725 890 C739 925 739 974 729 999" fill="none" stroke="#eafafa" stroke-width="5" opacity=".55"/>
<!-- narrow neck and flared mouth / pouring lip -->
<path d="M514 786 Q514 775 530 773 L668 773 Q684 775 686 786 L681 803 Q600 813 519 803 Z" fill="#d9ebea" fill-opacity=".52" stroke="#688b8c" stroke-width="3"/>
<ellipse cx="600" cy="779" rx="86" ry="19" fill="#edf8f4" fill-opacity=".62" stroke="#668b8b" stroke-width="3"/>
<ellipse cx="600" cy="780" rx="70" ry="11" fill="#6c8985" fill-opacity=".18" stroke="#fff" stroke-width="2"/>
<path d="M514 782 L489 777 Q481 777 480 784 L502 795" fill="#d9ebea" fill-opacity=".55" stroke="#688b8c" stroke-width="2.5"/>
<!-- neck edges visible -->
<path d="M528 805 Q530 831 509 853 M672 805 Q670 831 691 853" fill="none" stroke="#f7ffff" stroke-width="4" opacity=".85"/>
<!-- callouts -->
<g font-family="Arial, Helvetica, sans-serif">
<path d="M301 286 H367 L411 279" fill="none" stroke="#82958c" stroke-width="1.5"/>
<circle cx="411" cy="279" r="3" fill="#456f6e"/>
<text x="78" y="279" font-size="12" letter-spacing="2" font-weight="700" fill="#52716e">01 / FILTER</text>
<text x="78" y="302" font-family="Georgia, serif" font-size="20" fill="#244b4b">Pleated paper</text>
<text x="78" y="324" font-size="13" fill="#7a8177">Breathable, disposable cone</text>
<path d="M302 555 H364 L404 545" fill="none" stroke="#82958c" stroke-width="1.5"/>
<circle cx="404" cy="545" r="3" fill="#456f6e"/>
<text x="78" y="548" font-size="12" letter-spacing="2" font-weight="700" fill="#52716e">02 / DRIPPER</text>
<text x="78" y="571" font-family="Georgia, serif" font-size="20" fill="#244b4b">Conical V60</text>
<text x="78" y="593" font-size="13" fill="#7a8177">Spiral ribs · single drain hole</text>
<path d="M796 902 H850 L883 884" fill="none" stroke="#82958c" stroke-width="1.5"/>
<circle cx="796" cy="902" r="3" fill="#456f6e"/>
<text x="901" y="871" font-size="12" letter-spacing="2" font-weight="700" fill="#52716e">03 / SERVER</text>
<text x="901" y="894" font-family="Georgia, serif" font-size="20" fill="#244b4b">Glass carafe</text>
<text x="901" y="916" font-size="13" fill="#7a8177">Wide body · heat-safe handle</text>
</g>
<!-- separation arrows -->
<g stroke="#9baba0" stroke-width="1.5" fill="none">
<path d="M600 463 V480 M594 470 L600 463 L606 470"/><path d="M600 712 V753 M594 719 L600 712 L606 719"/>
</g>
<text x="76" y="1110" font-family="Arial, Helvetica, sans-serif" font-size="12" letter-spacing="1.7" fill="#7a877e">PAPER FILTER SITS INSIDE THE CONE · LIFT TO DISASSEMBLE</text>
<text x="1124" y="1110" text-anchor="end" font-family="Georgia, serif" font-size="14" font-style="italic" fill="#647970">pour slowly, enjoy fully</text>
<path d="M54 1070H1146" stroke="#d8d3c6" stroke-width="1"/>
</svg>Exploded V60 dripper: GPT-6 Luna
modelopenai/gpt-6-lunataskexploded-v60@v1, checks c1, harness h1date2026-10-05rounds1 of 8 allowed, 12 minutes on the clockcost$0.0036thinkingmediumtokens21,832 in, 5,503 out, of which 1,560 reasoningtime1 min 15 s
All three 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 looking · Pass if each listed pair of mating parts looks as if it would go together as stated: the right angle, nested inside, or sitting on top. One pair that plainly could not fails it.pass
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 2 · 2r · $0.0038
run 3 · 1r · $0.0034same prompt, other modelsall 12 runs on Exploded V60 dripper →
Draw an exploded assembly diagram of a V60 pour-over dripper on its glass server, as an SVG. Use the cone dripper with a paper filter rather than a metal mesh filter.Frozen at v1. This model got this and nothing else.
Top to bottom: paper filter, dripper, server. The dripper is a 60 degree cone with spiral ribs and one large hole, and it sits directly on the server. Checked against Hario's V60 and Range Server pages. The server's lid is optional, so it is not required and not marked down. How it is scored, and this run's files on GitHub.