SVG: exploded French press, by pareto-26.10-preview
pareto-26.10-preview · round 3 of 3 · seed 2$0.09SVGPNGpress.svg
press.svg · 168 lines
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 900 1420" font-family="Helvetica, Arial, sans-serif">
  <defs>
    <linearGradient id="chrome" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#f8f9fa"/>
      <stop offset="0.22" stop-color="#c6ccd3"/>
      <stop offset="0.48" stop-color="#8e959e"/>
      <stop offset="0.72" stop-color="#cdd2d8"/>
      <stop offset="1" stop-color="#71767e"/>
    </linearGradient>
    <linearGradient id="chromeV" gradientUnits="userSpaceOnUse" x1="300" y1="0" x2="625" y2="0">
      <stop offset="0" stop-color="#e2e6ea"/>
      <stop offset="0.25" stop-color="#bfc5cc"/>
      <stop offset="0.5" stop-color="#878e97"/>
      <stop offset="0.75" stop-color="#cdd2d8"/>
      <stop offset="1" stop-color="#71767e"/>
    </linearGradient>
    <linearGradient id="plastic" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#565a61"/>
      <stop offset="0.45" stop-color="#2b2e33"/>
      <stop offset="1" stop-color="#14161a"/>
    </linearGradient>
    <linearGradient id="glassGrad" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#eef5f9" stop-opacity="0.18"/>
      <stop offset="1" stop-color="#c7d9e5" stop-opacity="0.42"/>
    </linearGradient>
    <pattern id="meshPat" width="7" height="7" patternUnits="userSpaceOnUse">
      <path d="M0 0 H7 M0 0 V7" stroke="#7d848d" stroke-width="1"/>
    </pattern>
  </defs>

  <!-- background -->
  <rect x="0" y="0" width="900" height="1420" fill="#fcfcfd"/>

  <!-- assembly axis -->
  <line x1="430" y1="52" x2="430" y2="1402" stroke="#c9cfd6" stroke-width="2" stroke-dasharray="7 7"/>

  <!-- title -->
  <text x="450" y="40" text-anchor="middle" font-size="32" font-weight="bold" fill="#22262b">French Press</text>
  <text x="450" y="66" text-anchor="middle" font-size="16" font-style="italic" fill="#7a828c">Exploded assembly &#8212; standard three-piece plunger filter</text>

  <!-- ======================= 1 KNOB ======================= -->
  <path d="M 385 128 A 45 36 0 0 1 475 128 A 45 11 0 0 1 385 128 Z" fill="url(#plastic)" stroke="#101216" stroke-width="1"/>
  <ellipse cx="417" cy="107" rx="21" ry="9" fill="#ffffff" opacity="0.14"/>
  <rect x="425" y="134" width="10" height="26" rx="3" fill="#3a3e44"/>

  <!-- ======================= 2 PLUNGER ROD ======================= -->
  <rect x="423" y="158" width="14" height="196" rx="2" fill="url(#chrome)" stroke="#8b9099" stroke-width="0.5"/>
  <line x1="423" y1="332" x2="437" y2="332" stroke="#71767e" stroke-width="1.4"/>
  <line x1="423" y1="338" x2="437" y2="338" stroke="#71767e" stroke-width="1.4"/>
  <line x1="423" y1="344" x2="437" y2="344" stroke="#71767e" stroke-width="1.4"/>
  <rect x="420" y="350" width="20" height="10" rx="3" fill="#9aa0a8" stroke="#71767e" stroke-width="0.5"/>

  <!-- ======================= 3 FILTER PLATE ======================= -->
  <ellipse cx="430" cy="396" rx="96" ry="21" fill="#878d96"/>
  <ellipse cx="430" cy="390" rx="96" ry="21" fill="url(#chrome)" stroke="#8b9099" stroke-width="1"/>
  <ellipse cx="430" cy="390" rx="10" ry="4" fill="#4a4f57"/>
  <ellipse cx="370" cy="388" rx="3.5" ry="1.6" fill="#7c828b"/>
  <ellipse cx="490" cy="388" rx="3.5" ry="1.6" fill="#7c828b"/>
  <ellipse cx="400" cy="382" rx="3.5" ry="1.6" fill="#7c828b"/>
  <ellipse cx="460" cy="396" rx="3.5" ry="1.6" fill="#7c828b"/>
  <ellipse cx="456" cy="380" rx="3.5" ry="1.6" fill="#7c828b"/>
  <ellipse cx="404" cy="396" rx="3.5" ry="1.6" fill="#7c828b"/>

  <!-- ======================= 4 SPRING DISC ======================= -->
  <ellipse cx="430" cy="432" rx="90" ry="13" fill="none" stroke="#a7adb6" stroke-width="4.5"/>
  <ellipse cx="430" cy="444" rx="90" ry="13" fill="none" stroke="#989ea7" stroke-width="4.5"/>
  <ellipse cx="430" cy="456" rx="90" ry="13" fill="none" stroke="#a7adb6" stroke-width="4.5"/>
  <ellipse cx="430" cy="468" rx="90" ry="13" fill="none" stroke="#8f959e" stroke-width="4.5"/>

  <!-- ======================= 5 MESH SCREEN ======================= -->
  <ellipse cx="430" cy="514" rx="100" ry="20" fill="#b6bcc4" stroke="#8b9099" stroke-width="1"/>
  <ellipse cx="430" cy="514" rx="100" ry="20" fill="url(#meshPat)"/>

  <!-- ======================= 6 LID ======================= -->
  <path d="M 285 630 C 305 584 555 584 575 630 A 145 24 0 0 1 285 630 Z" fill="url(#plastic)" stroke="#101216" stroke-width="1"/>
  <ellipse cx="430" cy="630" rx="145" ry="24" fill="none" stroke="#4a4f57" stroke-width="1.2"/>
  <ellipse cx="430" cy="598" rx="70" ry="11" fill="#ffffff" opacity="0.10"/>
  <ellipse cx="430" cy="590" rx="13" ry="5" fill="#101216" stroke="#565b63" stroke-width="1"/>
  <path d="M 575 624 L 597 619 L 578 633 Z" fill="#23262b" stroke="#101216" stroke-width="0.5"/>

  <!-- ======================= 7 FRAME + HANDLE ======================= -->
  <path d="M 306 710 Q 430 686 554 710" fill="none" stroke="url(#chromeV)" stroke-width="9" stroke-linecap="round"/>
  <path d="M 306 710 L 306 942 Q 306 968 334 968" fill="none" stroke="url(#chromeV)" stroke-width="9" stroke-linecap="round"/>
  <path d="M 554 710 L 554 942 Q 554 968 526 968" fill="none" stroke="url(#chromeV)" stroke-width="9" stroke-linecap="round"/>
  <ellipse cx="336" cy="970" rx="15" ry="5" fill="#9aa0a8" stroke="#71767e" stroke-width="0.6"/>
  <ellipse cx="524" cy="970" rx="15" ry="5" fill="#9aa0a8" stroke="#71767e" stroke-width="0.6"/>
  <path d="M 554 748 L 600 748" stroke="#aeb3ba" stroke-width="8" stroke-linecap="round"/>
  <path d="M 554 902 L 600 902" stroke="#aeb3ba" stroke-width="8" stroke-linecap="round"/>
  <rect x="592" y="735" width="30" height="180" rx="14" fill="url(#plastic)" stroke="#101216" stroke-width="1"/>
  <rect x="599" y="743" width="5" height="164" rx="2.5" fill="#ffffff" opacity="0.12"/>

  <!-- ======================= 8 GLASS CARAFE ======================= -->
  <path d="M 300 1012 C 297 1105 290 1195 297 1272 A 133 23 0 0 0 563 1272 C 570 1195 563 1105 560 1012 A 130 23 0 0 1 300 1012 Z"
        fill="url(#glassGrad)" stroke="#8fa7b8" stroke-width="1.5"/>
  <ellipse cx="430" cy="1272" rx="133" ry="23" fill="#aebfcb" opacity="0.25"/>
  <ellipse cx="430" cy="1012" rx="130" ry="23" fill="#eef4f8" opacity="0.5" stroke="#8fa7b8" stroke-width="1.5"/>
  <path d="M 558 1006 Q 580 994 598 998 L 562 1022 Z" fill="#dfeaf2" opacity="0.7" stroke="#8fa7b8" stroke-width="1"/>
  <path d="M 330 1040 C 326 1120 322 1200 328 1258" fill="none" stroke="#ffffff" stroke-width="10" opacity="0.35" stroke-linecap="round"/>
  <path d="M 356 1046 C 353 1120 351 1190 355 1246" fill="none" stroke="#ffffff" stroke-width="4" opacity="0.22" stroke-linecap="round"/>

  <!-- ======================= 9 BASE ======================= -->
  <ellipse cx="430" cy="1368" rx="150" ry="22" fill="#6f757e"/>
  <ellipse cx="430" cy="1358" rx="150" ry="22" fill="url(#chrome)" stroke="#8b9099" stroke-width="1"/>
  <ellipse cx="430" cy="1358" rx="60" ry="9" fill="#d9dde2" opacity="0.6"/>
  <ellipse cx="430" cy="1395" rx="170" ry="9" fill="#000000" opacity="0.06"/>

  <!-- ======================= CALLOUTS ======================= -->
  <g stroke="#9aa1a9" stroke-width="1.2">
    <line x1="478" y1="120" x2="688" y2="120"/>
    <line x1="172" y1="250" x2="420" y2="250"/>
    <line x1="530" y1="392" x2="688" y2="392"/>
    <line x1="172" y1="450" x2="336" y2="450"/>
    <line x1="532" y1="514" x2="688" y2="514"/>
    <line x1="172" y1="632" x2="283" y2="632"/>
    <line x1="620" y1="842" x2="688" y2="842"/>
    <line x1="172" y1="1150" x2="290" y2="1150"/>
    <line x1="584" y1="1363" x2="688" y2="1363"/>
  </g>
  <g fill="#6b7178">
    <circle cx="478" cy="120" r="3"/>
    <circle cx="420" cy="250" r="3"/>
    <circle cx="530" cy="392" r="3"/>
    <circle cx="336" cy="450" r="3"/>
    <circle cx="532" cy="514" r="3"/>
    <circle cx="283" cy="632" r="3"/>
    <circle cx="620" cy="842" r="3"/>
    <circle cx="290" cy="1150" r="3"/>
    <circle cx="584" cy="1363" r="3"/>
  </g>
  <g>
    <circle cx="701" cy="120" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="701" y="125" text-anchor="middle" font-size="13" fill="#44464c">1</text>
    <text x="718" y="125" text-anchor="start" font-size="19" fill="#33343a">Knob</text>

    <circle cx="159" cy="250" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="159" y="255" text-anchor="middle" font-size="13" fill="#44464c">2</text>
    <text x="142" y="255" text-anchor="end" font-size="19" fill="#33343a">Plunger rod</text>

    <circle cx="701" cy="392" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="701" y="397" text-anchor="middle" font-size="13" fill="#44464c">3</text>
    <text x="718" y="397" text-anchor="start" font-size="19" fill="#33343a">Filter plate</text>

    <circle cx="159" cy="450" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="159" y="455" text-anchor="middle" font-size="13" fill="#44464c">4</text>
    <text x="142" y="455" text-anchor="end" font-size="19" fill="#33343a">Spring disc</text>

    <circle cx="701" cy="514" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="701" y="519" text-anchor="middle" font-size="13" fill="#44464c">5</text>
    <text x="718" y="519" text-anchor="start" font-size="19" fill="#33343a">Mesh screen</text>

    <circle cx="159" cy="632" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="159" y="637" text-anchor="middle" font-size="13" fill="#44464c">6</text>
    <text x="142" y="637" text-anchor="end" font-size="19" fill="#33343a">Lid</text>

    <circle cx="701" cy="842" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="701" y="847" text-anchor="middle" font-size="13" fill="#44464c">7</text>
    <text x="718" y="847" text-anchor="start" font-size="19" fill="#33343a">Frame &amp; handle</text>

    <circle cx="159" cy="1150" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="159" y="1155" text-anchor="middle" font-size="13" fill="#44464c">8</text>
    <text x="142" y="1155" text-anchor="end" font-size="19" fill="#33343a">Glass carafe</text>

    <circle cx="701" cy="1363" r="11" fill="#eceff2" stroke="#9aa1a9" stroke-width="1"/>
    <text x="701" y="1368" text-anchor="middle" font-size="13" fill="#44464c">9</text>
    <text x="718" y="1368" text-anchor="start" font-size="19" fill="#33343a">Base</text>
  </g>
</svg>
gallery/Exploded French press/Pareto 26.10 Preview, run 2

Exploded French press: Pareto 26.10 Preview

modelunbiased/pareto-26.10-previewtasksvg-french-press@v2date2026-10-02rounds3 of 8 allowedcost$0.0862failurecompleteness
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 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.

its other runs
the prompt it was given
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.
ground truth

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.