press.svg · 126 lines
<svg xmlns="http://www.w3.org/2000/svg" width="900" height="1520" viewBox="0 0 900 1520" font-family="Helvetica, Arial, sans-serif">
<defs>
<linearGradient id="steel" x1="0" x2="1"><stop offset="0" stop-color="#8a9097"/><stop offset=".45" stop-color="#eef1f4"/><stop offset="1" stop-color="#7d838a"/></linearGradient>
<linearGradient id="glass" x1="0" x2="1"><stop offset="0" stop-color="#cfe6f2" stop-opacity=".7"/><stop offset=".3" stop-color="#ffffff" stop-opacity=".4"/><stop offset="1" stop-color="#a9cde0" stop-opacity=".7"/></linearGradient>
<linearGradient id="black" x1="0" x2="1"><stop offset="0" stop-color="#222"/><stop offset=".4" stop-color="#666"/><stop offset="1" stop-color="#1a1a1a"/></linearGradient>
<pattern id="mesh" width="5" height="5" patternUnits="userSpaceOnUse"><path d="M0 0L5 5M5 0L0 5" stroke="#666" stroke-width=".5"/></pattern>
</defs>
<rect width="900" height="1520" fill="#fafaf7"/>
<text x="450" y="40" text-anchor="middle" font-size="26" font-weight="bold">French Press — Exploded Assembly</text>
<text x="450" y="64" text-anchor="middle" font-size="14" fill="#555">Standard three-piece plunger filter</text>
<!-- center axis -->
<line x1="330" y1="80" x2="330" y2="1490" stroke="#999" stroke-dasharray="10 4 2 4" stroke-width="1"/>
<!-- 1 knob -->
<g stroke="#111" stroke-width="1.5">
<rect x="324" y="122" width="12" height="10" fill="url(#steel)"/>
<ellipse cx="330" cy="105" rx="22" ry="20" fill="url(#black)"/>
</g>
<!-- 2 lid -->
<g stroke="#111" stroke-width="1.5">
<path d="M220 200 Q230 160 330 155 Q430 160 440 200 Z" fill="url(#steel)"/>
<rect x="215" y="200" width="230" height="10" rx="3" fill="url(#steel)"/>
<rect x="235" y="210" width="190" height="16" fill="url(#steel)"/>
<ellipse cx="330" cy="155" rx="10" ry="3" fill="#333"/>
<path d="M235 218 h190" stroke="#666" stroke-width="1"/>
<rect x="425" y="210" width="14" height="10" fill="#555"/>
</g>
<!-- 3 rod -->
<g stroke="#111" stroke-width="1.5">
<rect x="325" y="250" width="10" height="290" fill="url(#steel)"/>
<path d="M325 250 h10" />
<g stroke="#333" stroke-width="1">
<path d="M325 254 l10 3M325 260 l10 3M325 266 l10 3"/>
<path d="M325 524 l10 3M325 530 l10 3M325 536 l10 3"/>
</g>
</g>
<!-- 4 cross plate -->
<g stroke="#111" stroke-width="1.5">
<ellipse cx="330" cy="592" rx="124" ry="25" fill="none" stroke-width="6" stroke="#666"/>
<ellipse cx="330" cy="592" rx="124" ry="25" fill="none"/>
<g stroke="#777" stroke-width="7" stroke-linecap="round"><path d="M210 592 H450"/><path d="M330 568 V616"/><path d="M245 575 L415 609"/><path d="M245 609 L415 575"/></g>
<g stroke="#ddd" stroke-width="2" stroke-linecap="round"><path d="M210 591 H450"/><path d="M330 568 V616"/><path d="M245 574 L415 608"/><path d="M245 608 L415 574"/></g>
<ellipse cx="330" cy="592" rx="16" ry="6" fill="url(#steel)"/>
<ellipse cx="330" cy="592" rx="5" ry="2" fill="#222"/>
</g>
<!-- 5 mesh screen -->
<g stroke="#111" stroke-width="1.5">
<ellipse cx="330" cy="670" rx="132" ry="27" fill="url(#mesh)"/>
<ellipse cx="330" cy="670" rx="132" ry="27" fill="none" stroke="#777" stroke-width="3"/>
<ellipse cx="330" cy="670" rx="132" ry="27" fill="none"/>
<ellipse cx="330" cy="670" rx="10" ry="4" fill="#fafaf7"/>
</g>
<!-- 6 bottom plate -->
<g stroke="#111" stroke-width="1.5">
<ellipse cx="330" cy="749" rx="118" ry="24" fill="url(#steel)"/>
<ellipse cx="330" cy="745" rx="118" ry="24" fill="url(#steel)"/>
<ellipse cx="330" cy="746" rx="126" ry="27" fill="none" stroke="#444" stroke-width="6" stroke-dasharray="2 2"/>
<g fill="#555" stroke="none">
<ellipse cx="270" cy="740" rx="9" ry="3"/><ellipse cx="300" cy="755" rx="9" ry="3"/>
<ellipse cx="365" cy="735" rx="9" ry="3"/><ellipse cx="390" cy="752" rx="9" ry="3"/>
<ellipse cx="315" cy="730" rx="9" ry="3"/><ellipse cx="410" cy="738" rx="9" ry="3"/>
<ellipse cx="245" cy="752" rx="9" ry="3"/><ellipse cx="355" cy="760" rx="9" ry="3"/>
</g>
<ellipse cx="330" cy="745" rx="14" ry="5" fill="url(#steel)"/>
<ellipse cx="330" cy="745" rx="5" ry="2" fill="#222"/>
</g>
<!-- 7 nut -->
<g stroke="#111" stroke-width="1.5">
<path d="M316 800 h28 v14 h-28 z" fill="url(#steel)"/>
<path d="M325 800 v14 M335 800 v14" stroke-width="1"/>
<ellipse cx="330" cy="800" rx="14" ry="4" fill="#ccc"/>
<ellipse cx="330" cy="800" rx="5" ry="1.8" fill="#222"/>
</g>
<!-- 8 glass beaker -->
<g stroke="#111" stroke-width="1.5">
<path d="M186 878 Q196 864 216 866 L212 880 Z" fill="url(#glass)"/><path d="M210 880 L210 1150 Q210 1165 225 1165 L435 1165 Q450 1165 450 1150 L450 880" fill="url(#glass)"/>
<ellipse cx="330" cy="880" rx="120" ry="14" fill="none"/>
<ellipse cx="330" cy="1163" rx="118" ry="6" fill="none" stroke="#7fa8bd" stroke-width="1"/>
<path d="M230 900 v240" stroke="#fff" stroke-width="6" opacity=".7"/>
<g stroke="#7fa8bd" stroke-width="1">
<path d="M420 960 h18M425 1000 h13M420 1040 h18M425 1080 h13"/>
</g>
</g>
<!-- 9 frame with handle (shown offset left, same axis) -->
<g stroke="#111" stroke-width="1.5">
<!-- drawn behind beaker position, outline only, at bottom -->
</g>
<!-- frame: separate, below -->
<g stroke="#111" stroke-width="1.5" transform="translate(0,0)">
</g>
<g stroke="#111" stroke-width="1.5">
<path d="M205 1215 h20 v240 h-20 z" fill="url(#steel)"/>
<path d="M435 1215 h20 v240 h-20 z" fill="url(#steel)"/>
<path d="M205 1220 h250 v10 h-250 z" fill="url(#steel)"/>
<path d="M200 1440 h260 v25 q0 10 -10 10 h-240 q-10 0 -10 -10 z" fill="url(#steel)"/>
<ellipse cx="216" cy="1475" rx="8" ry="4" fill="#333"/><ellipse cx="444" cy="1475" rx="8" ry="4" fill="#333"/>
<path d="M455 1240 C530 1240 530 1250 530 1300 L530 1400 C530 1420 510 1425 455 1425 L455 1400 C500 1400 505 1395 505 1385 L505 1290 C505 1270 500 1265 455 1265 Z" fill="url(#black)"/>
</g>
<path d="M530 1340 H600" stroke="#333" fill="none"/><circle cx="600" cy="1340" r="2" fill="#333"/>
<text x="610" y="1345" font-size="15"><tspan font-weight="bold">9</tspan> Frame / holder with handle</text>
<path d="M330 1170 v35" stroke="#888" stroke-width="1.5" marker-end="none"/>
<path d="M324 1197 l6 8 l6 -8" fill="none" stroke="#888" stroke-width="1.5"/>
<!-- leader lines and labels -->
<g font-size="15" fill="#111">
<g stroke="#333" stroke-width="1" fill="none">
<path d="M352 105 H600"/><path d="M445 190 H600"/><path d="M335 400 H600"/>
<path d="M454 592 H600"/><path d="M462 670 H600"/><path d="M456 745 H600"/>
<path d="M344 807 H600"/><path d="M450 1000 H600"/>
</g>
<g fill="#333"><circle cx="600" cy="105" r="2"/><circle cx="600" cy="190" r="2"/><circle cx="600" cy="400" r="2"/><circle cx="600" cy="592" r="2"/><circle cx="600" cy="670" r="2"/><circle cx="600" cy="745" r="2"/><circle cx="600" cy="807" r="2"/><circle cx="600" cy="1000" r="2"/></g>
<text x="610" y="110"><tspan font-weight="bold">1</tspan> Knob</text>
<text x="610" y="186"><tspan font-weight="bold">2</tspan> Lid with pour-spout</text><text x="628" y="204" font-size="12" fill="#555">strainer slot</text>
<text x="610" y="405"><tspan font-weight="bold">3</tspan> Plunger rod (threaded ends)</text>
<text x="610" y="588"><tspan font-weight="bold">4</tspan> Cross plate (top)</text><text x="628" y="606" font-size="12" fill="#555">filter piece 1 of 3</text>
<text x="610" y="666"><tspan font-weight="bold">5</tspan> Mesh filter screen</text><text x="628" y="684" font-size="12" fill="#555">filter piece 2 of 3 · fine stainless mesh</text>
<text x="610" y="741"><tspan font-weight="bold">6</tspan> Spiral plate (bottom)</text><text x="628" y="759" font-size="12" fill="#555">filter piece 3 of 3 · coil-spring rim seals glass</text>
<text x="610" y="812"><tspan font-weight="bold">7</tspan> Retaining nut</text>
<text x="610" y="996"><tspan font-weight="bold">8</tspan> Glass beaker (carafe)</text><text x="628" y="1014" font-size="12" fill="#555">with pour spout</text>
</g>
<rect x="590" y="555" width="290" height="240" fill="none" stroke="#b33" stroke-dasharray="5 4"/>
<text x="870" y="788" text-anchor="end" font-size="12" fill="#b33">plunger filter assembly</text>
</svg>Exploded French press: Opus 5.5
modelanthropic/claude-opus-5.5tasksvg-french-press@v2date2026-10-01rounds3 of 8 allowedcost$0.2307failurepart-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 · 3r · $0.2115The cleanest press on the bench, with the cross-plate on top of the mesh.
run 2 · 2r · $0.2084The stack the right way up in two rounds, with the frame drawn beside the glass instead of under it.
run 2 · 2r · $0.1625
run 3 · 3r · $0.2209Right in round 1, then it swapped the plates, and its filter is wider than the glass.same prompt, other modelsall 33 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.