press.svg · 128 lines
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 900" font-family="Helvetica, Arial, sans-serif">
<defs>
<linearGradient id="glass" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#cfe3ee"/>
<stop offset="0.2" stop-color="#eef7fb"/>
<stop offset="0.5" stop-color="#bcd6e4"/>
<stop offset="0.8" stop-color="#eef7fb"/>
<stop offset="1" stop-color="#cfe3ee"/>
</linearGradient>
<linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#8f979e"/>
<stop offset="0.3" stop-color="#e8ecef"/>
<stop offset="0.6" stop-color="#aab3ba"/>
<stop offset="1" stop-color="#788088"/>
</linearGradient>
<linearGradient id="steelv" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#e8ecef"/>
<stop offset="0.5" stop-color="#9aa3ab"/>
<stop offset="1" stop-color="#c8cfd5"/>
</linearGradient>
<linearGradient id="brew" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#6b4326"/>
<stop offset="1" stop-color="#3c2413"/>
</linearGradient>
<linearGradient id="knob" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#2b2b2b"/>
<stop offset="0.4" stop-color="#5a5a5a"/>
<stop offset="1" stop-color="#222"/>
</linearGradient>
</defs>
<rect width="600" height="900" fill="#f7f4ef"/>
<text x="300" y="46" text-anchor="middle" font-size="26" letter-spacing="4" fill="#3a3a3a">FRENCH PRESS</text>
<text x="300" y="70" text-anchor="middle" font-size="13" letter-spacing="2" fill="#8a8578">EXPLODED ASSEMBLY DIAGRAM</text>
<!-- center axis -->
<line x1="300" y1="110" x2="300" y2="850" stroke="#b9b2a4" stroke-width="1" stroke-dasharray="10 6 2 6"/>
<!-- 1 KNOB -->
<g transform="translate(0,-25)">
<ellipse cx="300" cy="130" rx="34" ry="22" fill="url(#knob)"/>
<ellipse cx="290" cy="124" rx="14" ry="8" fill="#6e6e6e" opacity="0.7"/>
<rect x="288" y="140" width="24" height="18" fill="url(#steel)"/>
<text x="380" y="132" font-size="14" fill="#4a4a4a">1 · Knob (bakelite)</text>
<line x1="338" y1="128" x2="372" y2="128" stroke="#9a9284" stroke-width="1"/>
</g>
<!-- 2 PLUNGER ROD -->
<g transform="translate(0,-25)">
<rect x="293" y="160" width="14" height="180" rx="4" fill="url(#steel)"/>
<rect x="289" y="330" width="22" height="16" rx="3" fill="url(#steel)"/>
<text x="380" y="250" font-size="14" fill="#4a4a4a">2 · Plunger rod (stainless)</text>
<line x1="310" y1="248" x2="372" y2="248" stroke="#9a9284" stroke-width="1"/>
</g>
<!-- 3 THREE-PIECE FILTER ASSEMBLY, exploded along the rod axis -->
<!-- 3a spring coil -->
<g transform="translate(0,-25)">
<path d="M262 384 q38 -26 76 0 q-38 26 -76 0 Z" fill="none" stroke="#8a939b" stroke-width="5"/>
<path d="M262 384 q38 26 76 0" fill="none" stroke="#b9c1c8" stroke-width="3"/>
<path d="M262 384 q38 -26 76 0 M262 392 q38 -26 76 0 M262 400 q38 -26 76 0" fill="none" stroke="#7d868e" stroke-width="2.5"/>
<text x="380" y="392" font-size="14" fill="#4a4a4a">3a · Spring coil</text>
<line x1="342" y1="390" x2="372" y2="390" stroke="#9a9284" stroke-width="1"/>
</g>
<!-- 3b cross / pressure plate -->
<g transform="translate(0,-25)">
<ellipse cx="300" cy="440" rx="78" ry="16" fill="url(#steel)"/>
<ellipse cx="300" cy="436" rx="78" ry="16" fill="#d5dbe0"/>
<ellipse cx="300" cy="436" rx="78" ry="16" fill="none" stroke="#7c848c" stroke-width="1.5"/>
<rect x="222" y="430" width="156" height="8" fill="#c3cad0" opacity="0.5"/>
<text x="380" y="440" font-size="14" fill="#4a4a4a">3b · Cross plate</text>
<line x1="382" y1="436" x2="372" y2="436" stroke="#9a9284" stroke-width="1"/>
</g>
<!-- 3c mesh screen -->
<g transform="translate(0,-25)">
<ellipse cx="300" cy="496" rx="80" ry="17" fill="url(#steelv)"/>
<ellipse cx="300" cy="492" rx="80" ry="17" fill="#cdd4da" stroke="#7c848c" stroke-width="1.2"/>
<g stroke="#8b949c" stroke-width="0.7">
<path d="M224 490 h152 M224 494 h152 M226 486 h148 M232 482 h136"/>
<path d="M240 478 v28 M255 476 v32 M270 474 v36 M285 473 v38 M300 473 v38 M315 473 v38 M330 474 v36 M345 476 v32 M360 478 v28"/>
</g>
<text x="405" y="478" font-size="14" fill="#4a4a4a">3c · Mesh screen</text>
<line x1="384" y1="467" x2="398" y2="467" stroke="#9a9284" stroke-width="1"/>
</g>
<!-- 4 LID -->
<g transform="translate(0,-5)">
<ellipse cx="300" cy="580" rx="110" ry="24" fill="#b8bfc6"/>
<ellipse cx="300" cy="572" rx="110" ry="24" fill="url(#steel)" stroke="#757d85" stroke-width="1.5"/>
<ellipse cx="300" cy="570" rx="44" ry="9" fill="#9aa3ab" stroke="#7c848c"/>
<text x="440" y="576" font-size="14" fill="#4a4a4a">4 · Lid</text>
<line x1="408" y1="572" x2="432" y2="572" stroke="#9a9284" stroke-width="1"/>
</g>
<!-- 5 BEAKER with handle, spout and coffee -->
<g>
<!-- handle -->
<path d="M398 660 q70 10 66 70 q-4 56 -70 62" fill="none" stroke="url(#steel)" stroke-width="14" stroke-linecap="round"/>
<!-- body -->
<path d="M205 630 L205 800 q0 60 95 60 q95 0 95 -60 L395 630 Z" fill="url(#glass)" opacity="0.85"/>
<!-- coffee -->
<path d="M209 686 L209 798 q0 56 91 56 q91 0 91 -56 L391 686 q-60 16 -91 16 q-31 0 -91 -16 Z" fill="url(#brew)" opacity="0.92"/>
<!-- glass highlights -->
<path d="M222 645 L222 790" stroke="#ffffff" stroke-width="6" opacity="0.45" stroke-linecap="round"/>
<path d="M380 650 L380 795" stroke="#ffffff" stroke-width="3" opacity="0.3" stroke-linecap="round"/>
<!-- rim -->
<ellipse cx="300" cy="630" rx="95" ry="20" fill="#e8f2f7" opacity="0.6" stroke="#a9c4d2" stroke-width="2"/>
<!-- spout -->
<path d="M215 622 q-22 -14 -14 -26 q6 -8 26 4" fill="#dceaf2" stroke="#a9c4d2" stroke-width="2"/>
<!-- base -->
<ellipse cx="300" cy="858" rx="70" ry="10" fill="#d9dee2" stroke="#aab3ba"/>
<text x="150" y="838" font-size="14" fill="#4a4a4a" text-anchor="end">5 · Carafe (glass)</text>
<line x1="156" y1="834" x2="226" y2="834" stroke="#9a9284" stroke-width="1"/>
</g>
<!-- 6 FRAME / cage -->
<g>
<path d="M212 618 L212 812" stroke="url(#steel)" stroke-width="9" stroke-linecap="round"/>
<path d="M388 618 L388 812" stroke="url(#steel)" stroke-width="9" stroke-linecap="round"/>
<path d="M212 812 q88 34 176 0" fill="none" stroke="url(#steel)" stroke-width="9" stroke-linecap="round"/>
<path d="M212 618 q-10 -14 -6 -24 M388 618 q10 -14 6 -24" fill="none" stroke="#8a939b" stroke-width="5" stroke-linecap="round"/>
<text x="100" y="770" font-size="14" fill="#4a4a4a" text-anchor="end">6 · Frame</text>
<line x1="106" y1="766" x2="200" y2="766" stroke="#9a9284" stroke-width="1"/>
</g>
<text x="300" y="888" text-anchor="middle" font-size="11" letter-spacing="1.5" fill="#a09a8c">ASSEMBLE IN NUMERIC ORDER · STANDARD THREE-PIECE PLUNGER FILTER (3a–3c)</text>
</svg>round 1 of 4

A plate missing, the cross-plate above the mesh, the lid below the filter, and plates wider than the carafe.
modelz-ai/glm-5.3-flashxtasksvg-french-press@v2date2026-09-22rounds4 of 8 allowedcost$0.0191thinkingmediumtokens95,625 in, 6,443 out, of which 1,144 reasoningtime5 min 14 sfailurecompleteness · part-order · physical-plausibility
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.fail
Stack orderdecided by a number, from the filefail
Filter fits the glassdecided by a number, from the filefail
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 · 4r · $0.0203Three filter pieces labelled as one assembly, so which plate is which cannot be read, and all three are under 80% of the glass width.
run 2 · 3r · $0.0111Calls its top piece a spiral cross plate and puts the mesh at the bottom, with the lid below the whole filter and every plate wider than the carafe.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.