press.svg · 166 lines
<svg xmlns="http://www.w3.org/2000/svg" width="950" height="1360" viewBox="0 0 950 1360" font-family="Helvetica, Arial, sans-serif">
<defs>
<linearGradient id="steelV" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#f4f6f7"/>
<stop offset="0.5" stop-color="#c9d0d5"/>
<stop offset="0.8" stop-color="#a8b1b8"/>
<stop offset="1" stop-color="#d6dbdf"/>
</linearGradient>
<linearGradient id="rodG" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#f0f2f3"/>
<stop offset="0.45" stop-color="#aab3b9"/>
<stop offset="0.7" stop-color="#7f888e"/>
<stop offset="1" stop-color="#dfe3e5"/>
</linearGradient>
<radialGradient id="knobG" cx="0.38" cy="0.32" r="0.75">
<stop offset="0" stop-color="#6a7278"/>
<stop offset="0.45" stop-color="#3a4046"/>
<stop offset="1" stop-color="#17191c"/>
</radialGradient>
<radialGradient id="lidTop" cx="0.42" cy="0.38" r="0.8">
<stop offset="0" stop-color="#4a5157"/>
<stop offset="0.55" stop-color="#2c3136"/>
<stop offset="1" stop-color="#1d2125"/>
</radialGradient>
<linearGradient id="glass" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" stop-color="#eaf6fb"/>
<stop offset="0.5" stop-color="#cfe7f1"/>
<stop offset="1" stop-color="#b6d7e4"/>
</linearGradient>
<pattern id="mesh" width="6.5" height="6.5" patternUnits="userSpaceOnUse">
<path d="M6.5,0 H0 V6.5" fill="none" stroke="#79848c" stroke-width="0.9"/>
</pattern>
</defs>
<!-- background -->
<rect x="0" y="0" width="950" height="1360" fill="#ffffff"/>
<!-- title -->
<text x="60" y="56" font-size="32" font-weight="bold" fill="#22282e" letter-spacing="2">FRENCH PRESS</text>
<text x="60" y="86" font-size="20" fill="#5a646c">Exploded assembly diagram</text>
<!-- axis -->
<line x1="450" y1="96" x2="450" y2="1270" stroke="#b9c2c8" stroke-width="1.5" stroke-dasharray="7 8"/>
<!-- ===================== 1 KNOB ===================== -->
<rect x="444" y="140" width="12" height="26" fill="#33383d"/>
<circle cx="450" cy="118" r="32" fill="url(#knobG)" stroke="#14171a" stroke-width="1"/>
<ellipse cx="438" cy="105" rx="11" ry="8" fill="#ffffff" opacity="0.3"/>
<!-- ===================== 2 LID ===================== -->
<path d="M300,228 A150,40 0 0 0 600,228 L600,244 A150,40 0 0 1 300,244 Z" fill="#2d3237"/>
<ellipse cx="450" cy="228" rx="150" ry="40" fill="url(#lidTop)" stroke="#14171a" stroke-width="1"/>
<path d="M402,212 A48,13 0 0 0 498,212 L498,224 A48,13 0 0 1 402,224 Z" fill="#262b30"/>
<ellipse cx="450" cy="212" rx="48" ry="13" fill="#343a40" stroke="#14171a" stroke-width="1"/>
<ellipse cx="450" cy="212" rx="9" ry="3" fill="#0c0e10"/>
<!-- ===================== 3 PLUNGER ROD ===================== -->
<rect x="445" y="300" width="10" height="315" fill="url(#rodG)" stroke="#7c848a" stroke-width="0.6"/>
<g stroke="#7c848a" stroke-width="1.2">
<line x1="445" y1="306" x2="455" y2="306"/>
<line x1="445" y1="311" x2="455" y2="311"/>
<line x1="445" y1="316" x2="455" y2="316"/>
<line x1="445" y1="585" x2="455" y2="585"/>
<line x1="445" y1="591" x2="455" y2="591"/>
<line x1="445" y1="597" x2="455" y2="597"/>
<line x1="445" y1="603" x2="455" y2="603"/>
<line x1="445" y1="609" x2="455" y2="609"/>
</g>
<!-- ===================== 4 SPIRAL SPRING ===================== -->
<!-- Open spring plate; the peripheral coil seals the mesh to the glass. -->
<ellipse cx="450" cy="681" rx="128" ry="36" fill="none" stroke="#89949c" stroke-width="12"/>
<ellipse cx="450" cy="681" rx="128" ry="36" fill="none" stroke="#eef1f3" stroke-width="10" stroke-dasharray="2 4"/>
<ellipse cx="450" cy="681" rx="120" ry="31" fill="none" stroke="#76828b" stroke-width="2"/>
<path d="M362,660 L538,702 M362,702 L538,660" fill="none" stroke="#75818a" stroke-width="13"/>
<path d="M362,660 L538,702 M362,702 L538,660" fill="none" stroke="#c9d1d7" stroke-width="9"/>
<path d="M438,681 A12,4 0 0 0 462,681 L462,687 A12,4 0 0 1 438,687 Z" fill="#7d868d"/>
<ellipse cx="450" cy="681" rx="12" ry="4" fill="#aeb6bc" stroke="#6f7880" stroke-width="0.8"/>
<ellipse cx="450" cy="681" rx="4" ry="1.4" fill="#5a646c"/>
<!-- ===================== 5 MESH SCREEN ===================== -->
<path d="M315,780 A135,38 0 0 0 585,780 L585,788 A135,38 0 0 1 315,788 Z" fill="#9aa3aa"/>
<ellipse cx="450" cy="780" rx="135" ry="38" fill="url(#steelV)"/>
<ellipse cx="450" cy="780" rx="135" ry="38" fill="url(#mesh)" opacity="0.55"/>
<ellipse cx="450" cy="780" rx="135" ry="38" fill="none" stroke="#79838b" stroke-width="1.4"/>
<ellipse cx="450" cy="780" rx="124" ry="34.5" fill="none" stroke="#7e8890" stroke-width="1" opacity="0.55"/>
<ellipse cx="450" cy="780" rx="9" ry="3" fill="white" stroke="#6f7880" stroke-width="1.2"/>
<!-- ===================== 6 CROSS PLATE ===================== -->
<ellipse cx="450" cy="879" rx="128" ry="35" fill="none" stroke="#7d8992" stroke-width="12"/>
<ellipse cx="450" cy="875" rx="128" ry="35" fill="none" stroke="#c2cbd2" stroke-width="12"/>
<ellipse cx="450" cy="875" rx="134" ry="38" fill="none" stroke="#79838b" stroke-width="1"/>
<path d="M359,850 L541,900 M359,900 L541,850" fill="none" stroke="#77838c" stroke-width="20"/>
<path d="M359,847 L541,897 M359,897 L541,847" fill="none" stroke="#cbd2d7" stroke-width="16"/>
<path d="M433,865 A17,6 0 0 0 467,865 L467,877 A17,6 0 0 1 433,877 Z" fill="url(#rodG)" stroke="#78838b"/>
<ellipse cx="450" cy="865" rx="17" ry="6" fill="#e2e6e9" stroke="#78838b"/>
<ellipse cx="450" cy="865" rx="5" ry="2.5" fill="#424d56"/>
<!-- ===================== 7 GLASS CARAFE ===================== -->
<path d="M300,1000 C302,1100 304,1165 318,1216 A132,33 0 0 0 582,1216 C596,1165 598,1100 600,1000 A150,40 0 0 0 300,1000 Z"
fill="url(#glass)" opacity="0.55" stroke="#7fa8b8" stroke-width="2"/>
<ellipse cx="450" cy="1000" rx="150" ry="40" fill="#d8ecf4" opacity="0.5" stroke="#7fa8b8" stroke-width="2"/>
<ellipse cx="450" cy="1000" rx="136" ry="35" fill="#b8d6e2" opacity="0.55" stroke="#8fb5c4" stroke-width="1.2"/>
<path d="M318,1216 A132,33 0 0 0 582,1216 L582,1230 A132,33 0 0 1 318,1230 Z" fill="#a9c8d6" opacity="0.8" stroke="#7fa8b8" stroke-width="1"/>
<ellipse cx="450" cy="1230" rx="132" ry="33" fill="#c9e2ec" opacity="0.85" stroke="#7fa8b8" stroke-width="1.5"/>
<ellipse cx="450" cy="1226" rx="106" ry="24" fill="#b7d5e1" opacity="0.5"/>
<path d="M312,986 Q262,986 244,1002 Q264,1022 316,1018 Z" fill="#cfe6f0" opacity="0.9" stroke="#7fa8b8" stroke-width="1.5"/>
<path d="M596,1016 C672,1022 694,1056 694,1102 C694,1152 662,1178 584,1186" fill="none" stroke="#7fa8b8" stroke-width="22" stroke-linecap="round"/>
<path d="M596,1016 C672,1022 694,1056 694,1102 C694,1152 662,1178 584,1186" fill="none" stroke="#d5e9f1" stroke-width="14" stroke-linecap="round"/>
<rect x="318" y="1046" width="16" height="178" rx="8" fill="#ffffff" opacity="0.45"/>
<rect x="342" y="1058" width="6" height="150" rx="3" fill="#ffffff" opacity="0.3"/>
<!-- ===================== CALLOUTS ===================== -->
<g stroke="#8a949b" stroke-width="1.5">
<line x1="486" y1="118" x2="674" y2="118"/>
<line x1="604" y1="228" x2="674" y2="228"/>
<line x1="458" y1="455" x2="674" y2="455"/>
<line x1="569" y1="690" x2="674" y2="690"/>
<line x1="589" y1="780" x2="674" y2="780"/>
<line x1="589" y1="875" x2="674" y2="875"/>
<line x1="702" y1="1112" x2="744" y2="1112"/>
<line x1="312" y1="1150" x2="231" y2="1150"/>
<line x1="248" y1="1002" x2="231" y2="1002"/>
</g>
<g fill="#8a949b">
<circle cx="486" cy="118" r="3"/>
<circle cx="604" cy="228" r="3"/>
<circle cx="458" cy="455" r="3"/>
<circle cx="569" cy="690" r="3"/>
<circle cx="589" cy="780" r="3"/>
<circle cx="589" cy="875" r="3"/>
<circle cx="312" cy="1150" r="3"/>
<circle cx="248" cy="1002" r="3"/>
</g>
<g font-size="21" fill="#2b3138">
<g font-size="15" font-weight="bold" fill="#ffffff" text-anchor="middle">
<circle cx="690" cy="118" r="13" fill="#2b3138"/><text x="690" y="123">1</text>
<circle cx="690" cy="228" r="13" fill="#2b3138"/><text x="690" y="233">2</text>
<circle cx="690" cy="455" r="13" fill="#2b3138"/><text x="690" y="460">3</text>
<circle cx="690" cy="690" r="13" fill="#2b3138"/><text x="690" y="695">4</text>
<circle cx="690" cy="780" r="13" fill="#2b3138"/><text x="690" y="785">5</text>
<circle cx="690" cy="875" r="13" fill="#2b3138"/><text x="690" y="880">6</text>
<circle cx="760" cy="1105" r="13" fill="#2b3138"/><text x="760" y="1110">8</text>
<circle cx="215" cy="1150" r="13" fill="#2b3138"/><text x="215" y="1155">7</text>
<circle cx="215" cy="1002" r="13" fill="#2b3138"/><text x="215" y="1007">9</text>
</g>
<text x="712" y="124">Knob</text>
<text x="712" y="234">Lid / rod guide</text>
<text x="712" y="461">Plunger rod</text>
<text x="712" y="696">Spring plate</text>
<text x="712" y="718" font-size="15" fill="#5a646c">Coiled perimeter seal</text>
<text x="712" y="786">Mesh screen</text>
<text x="712" y="881">Cross plate</text>
<text x="712" y="903" font-size="15" fill="#5a646c">Threaded filter support</text>
<text x="782" y="1111">Handle</text>
<text x="193" y="1156" text-anchor="end">Glass carafe</text>
<text x="193" y="1008" text-anchor="end">Pour spout</text>
</g>
<!-- notes -->
<text x="475" y="1306" font-size="19" fill="#5a646c" text-anchor="middle">Three-piece plunger filter (4–6) threads onto the plunger rod (3).</text>
<text x="475" y="1332" font-size="19" fill="#5a646c" text-anchor="middle">Rod passes through lid and filter; its lower end screws into the cross plate.</text>
</svg>Exploded French press: Pareto
modelunbiased/paretotasksvg-french-press@v2date2026-10-01rounds4 of 8 allowedcost$0.4670
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 filepass
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 · 5r · $0.3558Seven parts, the stack the right way up, and labels on both sides of one axis.
run 2 · 4r · $0.3719The same result in one round fewer, with a handle drawn on the carafe.
run 2 · 2r · $0.2169
run 3 · 2r · $0.4528Cross-plate on top of the mesh again, and plates that are the wrong diameter for the glass. Cut off by provider timeouts after round 2.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.