v60.svg · 105 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1100" height="1240" viewBox="0 0 1100 1240">
<defs>
<linearGradient id="paper" x1="0" y1="0" x2="1" y2="0"><stop stop-color="#e5d8bb"/><stop offset=".45" stop-color="#fff7e6"/><stop offset="1" stop-color="#ecdfc4"/></linearGradient>
<linearGradient id="paperInside" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#f6ecd8"/><stop offset="1" stop-color="#d6c3a0"/></linearGradient>
<linearGradient id="ceramic" x1="0" y1="0" x2="1" y2=".2"><stop stop-color="#cbd8d9"/><stop offset=".32" stop-color="#f8fcf9"/><stop offset=".63" stop-color="#eff5f2"/><stop offset="1" stop-color="#bacdd0"/></linearGradient>
<linearGradient id="inside" x1="0" y1="0" x2="0" y2="1"><stop stop-color="#b2c8ca"/><stop offset="1" stop-color="#e9f1ed"/></linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="1" y2="0"><stop stop-color="#d6e6e6" stop-opacity=".8"/><stop offset=".22" stop-color="#f8fcf9" stop-opacity=".35"/><stop offset=".7" stop-color="#edf5f1" stop-opacity=".25"/><stop offset="1" stop-color="#bfd5d7" stop-opacity=".65"/></linearGradient>
<clipPath id="coneClip"><path d="M258 498 C258 531 344 553 450 553 C556 553 642 531 642 498 L480 700 Q450 723 420 700 Z"/></clipPath>
<marker id="arrow" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto"><path d="M1 1 L5 4 L1 7" fill="none" stroke="#c66b43" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></marker>
</defs>
<rect width="1100" height="1240" fill="#f6f3ec"/>
<g font-family="Arial, Helvetica, sans-serif" fill="#263e44">
<text x="70" y="66" font-size="13" font-weight="700" letter-spacing="3">BREW EQUIPMENT / ASSEMBLY STUDY</text>
<text x="67" y="117" font-size="45" font-weight="600" letter-spacing="-1.5">V60 pour-over</text>
<text x="70" y="150" font-size="16" fill="#63777a">Exploded view · paper-filter setup</text>
<text x="1027" y="69" text-anchor="end" font-size="13" fill="#63777a" letter-spacing="2">FIG. 01</text>
</g>
<path d="M70 176 H1030" stroke="#d7dbd3"/>
<!-- Shared assembly axis, visible only between components. -->
<g fill="none" stroke="#c66b43" stroke-width="1.6" stroke-dasharray="4 7">
<path d="M450 196 V223"/>
<path d="M450 414 V446" marker-end="url(#arrow)"/>
<path d="M450 751 V804" marker-end="url(#arrow)"/>
</g>
<!-- 01: open paper cone. The inset ellipse is the open mouth, not a lid. -->
<g stroke="#8f8064" stroke-linejoin="round">
<path d="M302 257 L438 401 Q450 413 462 401 L598 257 Z" fill="url(#paper)" stroke-width="2"/>
<ellipse cx="450" cy="257" rx="148" ry="43" fill="url(#paperInside)" stroke-width="2"/>
<path d="M339 230 Q375 269 450 287 Q520 271 567 239" fill="none" stroke="#c7b591" stroke-width="1.2" opacity=".65"/>
<path d="M527 225 Q498 264 450 287" fill="none" stroke="#c7b591" stroke-width="1.2" opacity=".65"/>
<path d="M309 260 C341 291 407 301 450 300 C500 300 558 288 590 260" fill="none" stroke="#fff9ec" stroke-width="4"/>
<path d="M579 280 L461 397" fill="none" stroke="#bcab89" stroke-width="2"/>
<path d="M571 283 L457 395" fill="none" stroke="#fff8e8" stroke-width="2"/>
<path d="M331 287 L437 393" fill="none" stroke="#d5c6a7" stroke-width="1"/>
</g>
<!-- 02: ceramic V60, flange first so the conical body sits on it. -->
<g stroke="#48626a" stroke-width="2.4" stroke-linejoin="round">
<path d="M320 718 V729 C320 748 580 748 580 729 V718" fill="#c1d2d3"/>
<ellipse cx="450" cy="718" rx="130" ry="24" fill="#e4edE9"/>
<!-- Integral loop handle with a true open center. -->
<path d="M626 516 C682 490 728 513 728 553 C728 592 681 620 602 598 L617 578 C669 590 701 574 701 550 C701 529 674 522 636 542 Z" fill="url(#ceramic)"/>
<path d="M258 498 L420 700 Q450 723 480 700 L642 498 Z" fill="url(#ceramic)"/>
<g clip-path="url(#coneClip)" fill="none" stroke-linecap="round">
<g stroke="#a6bdc0" stroke-width="5">
<path d="M282 520 C308 577 377 647 435 705"/>
<path d="M325 538 C337 589 393 657 443 709"/>
<path d="M373 548 C376 598 414 668 451 712"/>
<path d="M425 553 C422 606 438 673 459 710"/>
<path d="M478 551 C462 608 462 673 465 707"/>
<path d="M529 546 C502 603 488 664 472 703"/>
<path d="M575 535 C543 594 514 653 478 700"/>
<path d="M615 518 C582 580 538 642 486 693"/>
</g>
<g stroke="#fafffa" stroke-width="2">
<path d="M287 521 C313 578 382 648 440 705"/>
<path d="M330 539 C342 590 398 658 448 709"/>
<path d="M378 549 C381 599 419 669 456 712"/>
<path d="M430 554 C427 607 443 674 464 710"/>
<path d="M483 552 C467 609 467 674 470 707"/>
<path d="M534 547 C507 604 493 665 477 703"/>
<path d="M580 536 C548 595 519 654 483 700"/>
</g>
</g>
<ellipse cx="450" cy="498" rx="192" ry="57" fill="#f4f8f3"/>
<ellipse cx="450" cy="498" rx="179" ry="46" fill="url(#inside)" stroke-width="1.6"/>
<!-- Spiral ribs seen across the rear interior wall. -->
<g fill="none" stroke="#8daaad" stroke-width="2" opacity=".7">
<path d="M309 472 Q321 497 365 509"/><path d="M353 459 Q361 491 398 513"/>
<path d="M403 454 Q401 488 432 517"/><path d="M454 453 Q440 488 465 517"/>
<path d="M505 455 Q477 491 497 515"/><path d="M553 463 Q518 495 529 511"/>
<path d="M596 476 Q559 496 559 506"/>
</g>
<path d="M271 498 C271 524 351 544 450 544 C549 544 629 524 629 498" fill="none" stroke="#fafffa" stroke-width="5"/>
<ellipse cx="450" cy="715" rx="20" ry="7" fill="#4b6265" stroke-width="1.5"/>
</g>
<!-- 03: open, heat-resistant glass server with a pouring lip. -->
<g stroke="#56747b" stroke-width="2.3" stroke-linejoin="round">
<!-- Glass handle behind the body. -->
<path d="M553 889 C654 869 699 914 686 977 C678 1018 643 1046 585 1034 L587 1008 C625 1016 652 994 658 971 C667 931 636 906 561 917 Z" fill="url(#glass)"/>
<path d="M564 899 C643 890 675 924 672 957" fill="none" stroke="#fafef9" stroke-width="5"/>
<!-- Open neck widens into the server's gently rounded belly. -->
<path d="M348 849 C346 889 346 908 325 937 C299 972 287 1014 294 1050 C302 1098 363 1120 450 1120 C537 1120 598 1098 606 1050 C613 1014 601 972 575 937 C554 908 554 884 552 849 Z" fill="url(#glass)"/>
<ellipse cx="450" cy="1091" rx="126" ry="20" fill="none" stroke="#a1b9bb" stroke-width="1.5"/>
<path d="M348 849 C348 833 390 821 450 821 C507 821 549 832 552 849 C552 865 506 878 450 878 C411 878 377 872 359 865 L320 847 L346 843 Z" fill="#e8f0ec"/>
<path d="M360 848 C363 836 402 829 450 829 C500 829 540 837 540 849 C540 861 500 870 450 870 C413 870 382 865 369 858 L340 848 Z" fill="#d5e3e1" stroke-width="1.5"/>
<path d="M363 886 C363 921 341 946 327 980 C315 1010 314 1041 325 1058" fill="none" stroke="#ffffff" stroke-width="7" opacity=".85" stroke-linecap="round"/>
<path d="M551 944 C574 976 587 1009 583 1042" fill="none" stroke="#9dbabd" stroke-width="2" opacity=".7"/>
<path d="M321 1080 C353 1105 532 1117 583 1074" fill="none" stroke="#fffefa" stroke-width="4" opacity=".85"/>
</g>
<!-- Subtle volume graduation on the glass. -->
<g stroke="#759295" stroke-width="1.5" fill="none"><path d="M494 977 H532 M507 999 H532 M494 1021 H532 M507 1043 H532"/></g>
<g font-family="Arial, Helvetica, sans-serif" font-size="11" fill="#759295"><text x="540" y="981">500</text><text x="540" y="1025">300</text><text x="499" y="1065" letter-spacing="1">mL</text></g>
<!-- Numbered callouts: fine horizontal leaders and aligned text. -->
<g fill="none" stroke="#a4aeaa" stroke-width="1.2">
<path d="M584 310 H744"/><path d="M532 636 H744"/><path d="M688 975 H744"/>
</g>
<g fill="#c66b43"><circle cx="584" cy="310" r="3"/><circle cx="532" cy="636" r="3"/><circle cx="688" cy="975" r="3"/></g>
<g font-family="Arial, Helvetica, sans-serif">
<g font-size="13" font-weight="700" fill="#c66b43" letter-spacing="2"><text x="772" y="289">01</text><text x="772" y="615">02</text><text x="772" y="954">03</text></g>
<g fill="#263e44" font-size="24" font-weight="600"><text x="771" y="323">Paper filter</text><text x="771" y="649">V60 dripper</text><text x="771" y="988">Glass server</text></g>
<g fill="#63777a" font-size="15"><text x="772" y="350">Disposable conical paper</text><text x="772" y="374">Seats inside the dripper</text><text x="772" y="676">Spiral-ribbed ceramic cone</text><text x="772" y="700">Single outlet · 60° angle</text><text x="772" y="1015">Heat-resistant glass</text><text x="772" y="1039">Dripper rests on open neck</text></g>
</g>
<path d="M70 1168 H1030" stroke="#d7dbd3"/>
<g font-family="Arial, Helvetica, sans-serif" font-size="12" fill="#63777a"><text x="70" y="1198" letter-spacing="1.5">ASSEMBLY ORDER</text><text x="250" y="1198">Server → dripper → paper filter</text><text x="1030" y="1198" text-anchor="end">Schematic · not to scale</text></g>
</svg>round 1 of 2

Exploded V60 dripper: GPT-6.1 Sol
modelopenai/gpt-6.1-soltaskexploded-v60@v1, checks c1, harness h1date2026-10-07rounds2 of 8 allowed, 12 minutes on the clockcost$0.0728thinkingmediumtokens41,313 in, 4,944 out, of which 708 reasoningtime1 min 43 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.0697
run 3 · 2r · $0.0716same 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.