press.svg · 274 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1100" height="1360" viewBox="0 0 1100 1360">
<defs>
<linearGradient id="steel" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#e8ecf0"/>
<stop offset="0.45" stop-color="#b9c2cc"/>
<stop offset="1" stop-color="#8e9aa6"/>
</linearGradient>
<linearGradient id="steelSide" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#cbd3db"/>
<stop offset="1" stop-color="#7f8b97"/>
</linearGradient>
<linearGradient id="glass" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#d9eef3" stop-opacity="0.55"/>
<stop offset="0.5" stop-color="#eef8fa" stop-opacity="0.25"/>
<stop offset="1" stop-color="#c4dfe8" stop-opacity="0.55"/>
</linearGradient>
<linearGradient id="black" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#4a4a4d"/>
<stop offset="1" stop-color="#17181a"/>
</linearGradient>
<pattern id="mesh" width="9" height="9" patternUnits="userSpaceOnUse" patternTransform="rotate(45)">
<rect width="9" height="9" fill="#d7dde2"/>
<path d="M0 0H9 M0 4.5H9 M0 0V9 M4.5 0V9" stroke="#707c86" stroke-width="0.8"/>
</pattern>
<marker id="arrow" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto">
<path d="M0 0 L8 4 L0 8 z" fill="#8a8f98"/>
</marker>
</defs>
<rect width="1100" height="1360" fill="#f7f5f0"/>
<!-- header -->
<text x="55" y="62" font-family="Georgia, serif" font-size="42" font-weight="700" fill="#22252a">French Press</text>
<text x="57" y="96" font-family="Arial, Helvetica, sans-serif" font-size="17" letter-spacing="2.5" fill="#6d727b">EXPLODED ASSEMBLY DIAGRAM</text>
<line x1="55" y1="112" x2="1045" y2="112" stroke="#c9c3b8" stroke-width="1.5"/>
<text x="1045" y="96" text-anchor="end" font-family="Arial, sans-serif" font-size="13" letter-spacing="1" fill="#8a8578">SCALE: NOT TO SCALE</text>
<!-- centre axis -->
<line x1="400" y1="128" x2="400" y2="1245" stroke="#a8adb5" stroke-width="1.4" stroke-dasharray="14 7 3 7"/>
<!-- assembly direction arrows on far left of axis -->
<g stroke="#9aa0a8" stroke-width="1.6" marker-end="url(#arrow)">
<line x1="225" y1="172" x2="225" y2="198"/>
<line x1="225" y1="285" x2="225" y2="312"/>
<line x1="225" y1="400" x2="225" y2="426"/>
<line x1="225" y1="660" x2="225" y2="688"/>
<line x1="225" y1="742" x2="225" y2="770"/>
</g>
<text x="205" y="152" text-anchor="middle" font-family="Arial, sans-serif" font-size="10" letter-spacing="1.5" fill="#8a8f98" transform="rotate(-90 205 152)"></text>
<!-- ============ 1 KNOB ============ -->
<g>
<!-- threaded stud below knob -->
<rect x="394" y="172" width="12" height="22" fill="url(#steelSide)" stroke="#5f6973" stroke-width="1"/>
<path d="M394 178h12 M394 184h12 M394 190h12" stroke="#5f6973" stroke-width="0.8"/>
<!-- knob ball -->
<ellipse cx="400" cy="148" rx="34" ry="30" fill="url(#black)" stroke="#0e0f10" stroke-width="1.5"/>
<ellipse cx="386" cy="136" rx="11" ry="7" fill="#ffffff" opacity="0.35" transform="rotate(-25 386 136)"/>
<ellipse cx="400" cy="174" rx="18" ry="5" fill="#2b2c2e"/>
</g>
<!-- ============ 2 LID ============ -->
<g>
<!-- skirt / underside rim -->
<path d="M262 232 L262 252 A138 30 0 0 0 538 252 L538 232" fill="url(#steelSide)" stroke="#5f6973" stroke-width="1.4"/>
<ellipse cx="400" cy="252" rx="138" ry="30" fill="#8e9aa6" stroke="#5f6973" stroke-width="1"/>
<ellipse cx="400" cy="250" rx="124" ry="24" fill="#aeb9c3"/>
<!-- raised dome top: tall arc so it reads as a dome, not a flat disc -->
<path d="M262 232 A138 28 0 0 1 538 232 C 510 188, 462 172, 400 172 C 338 172, 290 188, 262 232 Z" fill="url(#steel)" stroke="#5f6973" stroke-width="1.5"/>
<path d="M300 206 C 330 184, 380 176, 430 180" fill="none" stroke="#fff" stroke-width="6" opacity="0.5" stroke-linecap="round"/>
<!-- centre hole boss on top of dome -->
<ellipse cx="400" cy="176" rx="21" ry="7.5" fill="#7f8b97" stroke="#525c66" stroke-width="1.2"/>
<ellipse cx="400" cy="174" rx="9" ry="3.5" fill="#2f363d"/>
</g>
<!-- ============ 3 PLUNGER ROD ============ -->
<g>
<rect x="394" y="298" width="12" height="118" fill="url(#steel)" stroke="#5f6973" stroke-width="1"/>
<rect x="396.5" y="300" width="3" height="112" fill="#fff" opacity="0.5"/>
<!-- top thread (to knob, through lid) -->
<path d="M394 306h12 M394 314h12 M394 322h12" stroke="#5f6973" stroke-width="0.9"/>
<!-- bottom threaded end -->
<rect x="393" y="410" width="14" height="26" fill="#aeb9c3" stroke="#5f6973" stroke-width="1"/>
<path d="M393 416h14 M393 422h14 M393 428h14" stroke="#5f6973" stroke-width="0.9"/>
</g>
<!-- ============ 4 CROSS PLATE ============ -->
<g>
<path d="M272 478 L272 490 A128 27 0 0 0 528 490 L528 478" fill="url(#steelSide)" stroke="#525c66" stroke-width="1.3"/>
<ellipse cx="400" cy="478" rx="128" ry="27" fill="url(#steel)" stroke="#525c66" stroke-width="1.4"/>
<!-- pierced holes: two arcs of holes -->
<g fill="#68737e" stroke="#4c565f" stroke-width="0.7">
<ellipse cx="322" cy="472" rx="11" ry="4.5"/><ellipse cx="352" cy="464" rx="11" ry="4.5"/>
<ellipse cx="448" cy="464" rx="11" ry="4.5"/><ellipse cx="478" cy="472" rx="11" ry="4.5"/>
<ellipse cx="322" cy="488" rx="11" ry="4.5"/><ellipse cx="352" cy="494" rx="11" ry="4.5"/>
<ellipse cx="448" cy="494" rx="11" ry="4.5"/><ellipse cx="478" cy="488" rx="11" ry="4.5"/>
</g>
<!-- cross arms hint: subtle X brace under the holes -->
<path d="M306 466 L494 490 M494 466 L306 490" stroke="#8e9aa6" stroke-width="3" opacity="0.35"/>
<ellipse cx="400" cy="478" rx="17" ry="6.5" fill="#7f8b97" stroke="#4c565f"/>
<ellipse cx="400" cy="477" rx="7" ry="2.8" fill="#2f363d"/>
</g>
<!-- ============ 5 MESH SCREEN ============ -->
<g>
<path d="M268 556 L268 564 A132 28 0 0 0 532 564 L532 556" fill="#9aa5b0" stroke="#525c66" stroke-width="1.2"/>
<ellipse cx="400" cy="556" rx="132" ry="28" fill="url(#mesh)" stroke="#44505a" stroke-width="1.6"/>
<ellipse cx="400" cy="556" rx="132" ry="28" fill="none" stroke="#2f363d" stroke-width="0.6" opacity="0.35"/>
<ellipse cx="400" cy="556" rx="16" ry="6" fill="#c7cfd6" stroke="#525c66"/>
<ellipse cx="400" cy="555" rx="7" ry="2.6" fill="#39424a"/>
<text x="400" y="0" display="none">mesh</text>
</g>
<!-- ============ 6 SPIRAL / SPRING PLATE ============ -->
<g>
<path d="M272 634 L272 644 A128 27 0 0 0 528 644 L528 634" fill="url(#steelSide)" stroke="#525c66" stroke-width="1.2"/>
<ellipse cx="400" cy="634" rx="128" ry="27" fill="url(#steel)" stroke="#525c66" stroke-width="1.3"/>
<!-- coiled spring edge: scalloped ring sitting on the rim -->
<ellipse cx="400" cy="632" rx="130" ry="28" fill="none" stroke="#5c6771" stroke-width="6" stroke-dasharray="5 4"/>
<ellipse cx="400" cy="634" rx="120" ry="24" fill="url(#steel)"/>
<g fill="#7c8792" stroke="#4c565f" stroke-width="0.6">
<ellipse cx="330" cy="628" rx="9" ry="3.6"/><ellipse cx="470" cy="628" rx="9" ry="3.6"/>
<ellipse cx="330" cy="642" rx="9" ry="3.6"/><ellipse cx="470" cy="642" rx="9" ry="3.6"/>
<ellipse cx="400" cy="620" rx="9" ry="3.6"/><ellipse cx="400" cy="649" rx="9" ry="3.6"/>
</g>
<ellipse cx="400" cy="634" rx="17" ry="6.5" fill="#7f8b97" stroke="#4c565f"/>
<ellipse cx="400" cy="633" rx="7" ry="2.8" fill="#2f363d"/>
</g>
<!-- ============ 7 BOTTOM SCREW ============ -->
<g>
<rect x="393" y="676" width="14" height="16" fill="#aeb9c3" stroke="#525c66"/>
<path d="M393 681h14 M393 687h14" stroke="#525c66" stroke-width="0.8"/>
<path d="M384 692 h32 l-4 14 a12 5 0 0 1 -24 0 z" fill="url(#steelSide)" stroke="#525c66" stroke-width="1.2"/>
<line x1="390" y1="699" x2="410" y2="699" stroke="#3c454e" stroke-width="2"/>
</g>
<!-- bracket grouping the 3-piece filter -->
<g fill="none" stroke="#b07a3f" stroke-width="1.6">
<path d="M565 452 h14 v208 h-14"/>
</g>
<text x="592" y="545" font-family="Arial, sans-serif" font-size="12.5" font-weight="700" letter-spacing="0.6" fill="#9a6527">THREE-PIECE</text>
<text x="592" y="563" font-family="Arial, sans-serif" font-size="12.5" font-weight="700" letter-spacing="0.6" fill="#9a6527">FILTER ASSEMBLY</text>
<text x="592" y="582" font-family="Arial, sans-serif" font-size="11" fill="#7d6a4d">mesh sandwiched</text>
<text x="592" y="597" font-family="Arial, sans-serif" font-size="11" fill="#7d6a4d">between the two plates</text>
<!-- ============ 8 GLASS BEAKER ============ -->
<g>
<!-- body -->
<path d="M266 792 L274 1018 A126 26 0 0 0 526 1018 L534 792" fill="url(#glass)" stroke="#5f7f8c" stroke-width="1.8"/>
<!-- spout -->
<path d="M266 792 L244 778 L252 800 L268 806 Z" fill="#d9eef3" stroke="#5f7f8c" stroke-width="1.6" stroke-linejoin="round"/>
<!-- top rim -->
<ellipse cx="400" cy="792" rx="134" ry="27" fill="#eef8fa" fill-opacity="0.35" stroke="#5f7f8c" stroke-width="1.8"/>
<ellipse cx="400" cy="792" rx="120" ry="23" fill="#ffffff" fill-opacity="0.25" stroke="#88a5b0" stroke-width="1"/>
<!-- base thickness -->
<path d="M274 1006 A126 26 0 0 0 526 1006 L524 1020 A124 25 0 0 1 276 1020 Z" fill="#bcd9e2" opacity="0.7"/>
<!-- highlight -->
<path d="M292 820 L298 990" stroke="#fff" stroke-width="9" opacity="0.55" stroke-linecap="round"/>
<!-- measure marks, kept well inside the glass -->
<g stroke="#5f7f8c" stroke-width="1.4" font-family="Arial, sans-serif" font-size="11" fill="#4e6a75">
<line x1="452" y1="862" x2="476" y2="862"/><text x="482" y="866" stroke="none">6</text>
<line x1="456" y1="906" x2="478" y2="906"/><text x="484" y="910" stroke="none">4</text>
<line x1="458" y1="950" x2="478" y2="950"/><text x="484" y="954" stroke="none">2</text>
</g>
<text x="452" y="842" font-family="Arial, sans-serif" font-size="9" letter-spacing="1" fill="#6d8a95">CUPS</text>
</g>
<!-- ============ 9 FRAME / HOLDER ============ -->
<g>
<!-- handle (behind) -->
<path d="M532 1092 C 610 1085, 642 1120, 632 1162 C 625 1192, 590 1208, 540 1206" fill="none" stroke="#22252a" stroke-width="13" stroke-linecap="round"/>
<path d="M532 1092 C 610 1085, 642 1120, 632 1162 C 625 1192, 590 1208, 540 1206" fill="none" stroke="#4a4a4d" stroke-width="4" stroke-linecap="round" opacity="0.6"/>
<!-- vertical support struts joining collar to base -->
<path d="M284 1096 L290 1206 L324 1206 L314 1098 Z" fill="url(#black)" stroke="#111" stroke-width="1"/>
<path d="M486 1098 L476 1206 L510 1206 L516 1096 Z" fill="url(#black)" stroke="#111" stroke-width="1"/>
<!-- top collar band -->
<path d="M262 1082 L262 1102 A138 29 0 0 0 538 1102 L538 1082" fill="url(#black)" stroke="#111" stroke-width="1.2"/>
<ellipse cx="400" cy="1082" rx="138" ry="29" fill="#3a3b3e" stroke="#111" stroke-width="1.3"/>
<ellipse cx="400" cy="1082" rx="124" ry="24" fill="#f7f5f0" stroke="#555" stroke-width="1"/>
<ellipse cx="400" cy="1083" rx="124" ry="24" fill="none" stroke="#222" stroke-width="4" opacity="0.12"/>
<!-- rivet on band -->
<circle cx="532" cy="1094" r="5" fill="#c9ced4" stroke="#555"/>
<!-- feet / base -->
<path d="M268 1204 A132 27 0 0 0 532 1204 L524 1224 A124 24 0 0 1 276 1224 Z" fill="url(#black)" stroke="#111" stroke-width="1.3"/>
<ellipse cx="400" cy="1204" rx="132" ry="27" fill="#2e2f32" stroke="#111" stroke-width="1.2"/>
<ellipse cx="400" cy="1203" rx="112" ry="20" fill="#45464a"/>
</g>
<!-- ============ LABELS ============ -->
<g font-family="Arial, Helvetica, sans-serif">
<!-- helper style via groups -->
<!-- 1 knob left -->
<g>
<circle cx="92" cy="142" r="13" fill="#22252a"/><text x="92" y="147" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">1</text>
<text x="112" y="138" font-size="16" font-weight="700" fill="#22252a">Knob</text>
<text x="112" y="157" font-size="11.5" fill="#71767e">screws onto rod</text>
<path d="M205 146 H330" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="334" cy="146" r="3.5" fill="#22252a"/>
</g>
<!-- 2 lid right -->
<g>
<circle cx="708" cy="222" r="13" fill="#22252a"/><text x="708" y="227" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">2</text>
<text x="728" y="218" font-size="16" font-weight="700" fill="#22252a">Lid</text>
<text x="728" y="237" font-size="11.5" fill="#71767e">rod passes through centre hole</text>
<path d="M540 226 H700" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="536" cy="226" r="3.5" fill="#22252a"/>
</g>
<!-- 3 rod right -->
<g>
<circle cx="708" cy="352" r="13" fill="#22252a"/><text x="708" y="357" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">3</text>
<text x="728" y="348" font-size="16" font-weight="700" fill="#22252a">Plunger rod</text>
<text x="728" y="367" font-size="11.5" fill="#71767e">threaded at both ends</text>
<path d="M410 356 H700" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="406" cy="356" r="3.5" fill="#22252a"/>
</g>
<!-- 4 cross plate left -->
<g>
<circle cx="92" cy="472" r="13" fill="#b07a3f"/><text x="92" y="477" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">4</text>
<text x="112" y="468" font-size="16" font-weight="700" fill="#22252a">Cross plate</text>
<text x="112" y="487" font-size="11.5" fill="#71767e">top plate of the filter</text>
<path d="M248 476 H282" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="286" cy="476" r="3.5" fill="#22252a"/>
<path d="M112 492 L112 500 L250 500 L278 482" stroke="#9aa0a8" stroke-width="1" fill="none" opacity="0"/>
</g>
<!-- 5 mesh left -->
<g>
<circle cx="92" cy="550" r="13" fill="#b07a3f"/><text x="92" y="555" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">5</text>
<text x="112" y="546" font-size="16" font-weight="700" fill="#22252a">Mesh screen</text>
<text x="112" y="565" font-size="11.5" fill="#71767e">fine stainless filter mesh</text>
<path d="M260 554 H282" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="286" cy="554" r="3.5" fill="#22252a"/>
<path d="M215 558 L262 556" stroke="#9aa0a8" stroke-width="1.2"/>
</g>
<!-- need leader lines from text to part for left labels 4/5: draw longer -->
<!-- 6 spiral plate left -->
<g>
<circle cx="92" cy="628" r="13" fill="#b07a3f"/><text x="92" y="633" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">6</text>
<text x="112" y="624" font-size="16" font-weight="700" fill="#22252a">Spiral plate</text>
<text x="112" y="643" font-size="11.5" fill="#71767e">spring edge seals to glass</text>
<path d="M240 632 H282" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="286" cy="632" r="3.5" fill="#22252a"/>
</g>
<!-- 7 screw right -->
<g>
<circle cx="708" cy="690" r="13" fill="#22252a"/><text x="708" y="695" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">7</text>
<text x="728" y="686" font-size="16" font-weight="700" fill="#22252a">Bottom screw</text>
<text x="728" y="705" font-size="11.5" fill="#71767e">clamps plates 4–6 to the rod</text>
<path d="M420 694 H700" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="416" cy="694" r="3.5" fill="#22252a"/>
</g>
<!-- 8 beaker left -->
<g>
<circle cx="92" cy="902" r="13" fill="#22252a"/><text x="92" y="907" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">8</text>
<text x="112" y="898" font-size="16" font-weight="700" fill="#22252a">Glass beaker</text>
<text x="112" y="917" font-size="11.5" fill="#71767e">borosilicate, spouted</text>
<path d="M252 906 H272" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="276" cy="906" r="3.5" fill="#22252a"/>
<path d="M218 910 L254 908" stroke="#9aa0a8" stroke-width="1.2"/>
</g>
<!-- 9 frame right -->
<g>
<circle cx="708" cy="1138" r="13" fill="#22252a"/><text x="708" y="1143" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">9</text>
<text x="728" y="1134" font-size="16" font-weight="700" fill="#22252a">Frame & handle</text>
<text x="728" y="1153" font-size="11.5" fill="#71767e">holder, base and handle</text>
<path d="M545 1142 H700" stroke="#9aa0a8" stroke-width="1.2" fill="none"/><circle cx="541" cy="1142" r="3.5" fill="#22252a"/>
</g>
</g>
<!-- fix left leader lines that were too short: overlay full lines -->
<g stroke="#9aa0a8" stroke-width="1.2">
<line x1="235" y1="476" x2="282" y2="476"/>
<line x1="252" y1="554" x2="282" y2="554"/>
<line x1="248" y1="632" x2="282" y2="632"/>
<line x1="242" y1="906" x2="272" y2="906"/>
</g>
<!-- footer note -->
<line x1="55" y1="1285" x2="1045" y2="1285" stroke="#c9c3b8" stroke-width="1.5"/>
<text x="55" y="1312" font-family="Arial, sans-serif" font-size="12" fill="#71767e">Assembly: stack 4 → 5 → 6 on the rod and tighten screw 7, slide the rod through the lid, fit the knob, then lower the plunger into the beaker seated in the frame.</text>
<text x="55" y="1332" font-family="Arial, sans-serif" font-size="12" fill="#71767e">Dashed line = common centre axis. Arrows show direction of assembly.</text>
</svg>round 1 of 2

Exploded French press: Muse Wonder
modelmeta/muse-wondertasksvg-french-press@v2, checks c1, harness h1date2026-10-13rounds2 of 8 allowed, 12 minutes on the clockcost$0.3653thinkingmediumtokens68,261 in, 12,817 out, of which 2,773 reasoningtime1 min 25 sfailedStack order: false, relation transposed, critical, 3 pairs out of order
All seven partsdecided by looking · Pass if all seven are drawn as separate shapes and each has a label naming it. A part that is only named in a label or a comment, with nothing drawn, fails it.pass
Stack orderdecided by a number, from the filefail
Filter fits the glassdecided by a number, from the filepass
One assembly axisdecided by looking · Pass if one vertical line runs through the middle of every part, and every leader line leaves from the same side. One part pushed off to the side 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 · 6r · $0.5548
run 2 · 3r · $0.3676same prompt, other modelsall 65 runs on Exploded French press →
Draw an exploded assembly diagram of a French press, as an SVG. Use the standard three-piece plunger filter rather than a two-piece travel press.Frozen at v2. This model got this and nothing else.
The standard three-piece plunger, from the top down: spiral (spring) plate, mesh screen, cross-plate. The cross-plate is the bottom piece, because its threaded stem is what the rod screws into. The spiral plate above the mesh is what presses the mesh edge out against the glass. Checked against the WebstaurantStore anatomy diagram, which is drawn exploded and labelled, and against each part's y coordinate in the SVG rather than its comment. Two-piece travel presses exist and stack differently, which is why v2 of the prompt names the design. How it is scored, and this run's files on GitHub.