SVG: exploded French press, by qwen3.8-27b
qwen3.8-27b · round 3 of 3 · seed 1$0.04SVGPNGpress.svg
press.svg · 133 lines
<svg xmlns="http://www.w3.org/2000/svg" width="780" height="1010" viewBox="0 0 780 1010" font-family="Helvetica, Arial, sans-serif">
  <defs>
    <pattern id="mesh" width="7" height="7" patternUnits="userSpaceOnUse">
      <rect width="7" height="7" fill="#efe9df"/>
      <path d="M0 0H7M0 0V7" stroke="#a39c8e" stroke-width="0.9"/>
    </pattern>
    <pattern id="grid" width="18" height="18" patternUnits="userSpaceOnUse">
      <rect width="18" height="18" fill="#d7dbe0"/>
      <path d="M0 0H18M0 0V18" stroke="#707a86" stroke-width="2.2"/>
    </pattern>
    <linearGradient id="glass" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#dcecf4"/>
      <stop offset="0.5" stop-color="#f4fbfe"/>
      <stop offset="1" stop-color="#cfe4ef"/>
    </linearGradient>
    <linearGradient id="metal" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#8d959f"/>
      <stop offset="0.5" stop-color="#d9dee4"/>
      <stop offset="1" stop-color="#7f8791"/>
    </linearGradient>
    <marker id="arrow" markerWidth="9" markerHeight="9" refX="4.5" refY="4.5" orient="auto">
      <path d="M0 0 L9 4.5 L0 9 Z" fill="#5a6068"/>
    </marker>
  </defs>

  <rect width="780" height="1010" fill="#ffffff"/>

  <text x="350" y="46" text-anchor="middle" font-size="26" font-weight="bold" fill="#22262b">French press — exploded assembly</text>
  <text x="350" y="72" text-anchor="middle" font-size="15" fill="#5a6068">Standard three-piece plunger filter (lid, cross retainer, mesh screen)</text>

  <!-- assembly axis -->
  <line x1="350" y1="96" x2="350" y2="952" stroke="#9aa1a9" stroke-width="1.6" stroke-dasharray="8 6"/>

  <!-- ===== LID (top) ===== -->
  <g>
    <!-- knob -->
    <path d="M332 132 Q350 104 368 132 Z" fill="url(#metal)" stroke="#5f666e" stroke-width="1.5"/>
    <ellipse cx="350" cy="132" rx="20" ry="5" fill="#9aa2ab" stroke="#5f666e" stroke-width="1.5"/>
    <!-- lid body -->
    <path d="M236 140 L230 166 A120 16 0 0 0 470 166 L464 140 Z" fill="url(#metal)" stroke="#5f666e" stroke-width="1.8"/>
    <ellipse cx="350" cy="140" rx="114" ry="15" fill="url(#metal)" stroke="#5f666e" stroke-width="1.8"/>
    <ellipse cx="350" cy="140" rx="78" ry="9.5" fill="#aeb6bf" stroke="#5f666e" stroke-width="1.2"/>
  </g>

  <!-- down arrow below lid -->
  <line x1="350" y1="186" x2="350" y2="212" stroke="#5a6068" stroke-width="2" marker-end="url(#arrow)"/>

  <!-- ===== PLUNGER ROD ===== -->
  <g>
    <rect x="344" y="226" width="12" height="158" fill="url(#metal)" stroke="#5f666e" stroke-width="1.4"/>
    <rect x="337" y="380" width="26" height="10" rx="2" fill="#8d959f" stroke="#5f666e" stroke-width="1.4"/>
    <line x1="347" y1="234" x2="347" y2="376" stroke="#eef1f4" stroke-width="1.6"/>
  </g>

  <line x1="350" y1="398" x2="350" y2="420" stroke="#5a6068" stroke-width="2" marker-end="url(#arrow)"/>

  <!-- ===== CROSS RETAINER (filter frame) ===== -->
  <g>
    <path d="M262 432 L258 458 A92 12 0 0 0 442 458 L438 432 Z" fill="url(#grid)" stroke="#5f666e" stroke-width="1.8"/>
    <ellipse cx="350" cy="432" rx="88" ry="11" fill="#e4e7eb" stroke="#5f666e" stroke-width="1.8"/>
    <!-- cross seen from above -->
    <path d="M350 421 L350 443 M300 432 L400 432" stroke="#5f666e" stroke-width="2.4"/>
    <circle cx="350" cy="432" r="4" fill="#5f666e"/>
  </g>

  <line x1="350" y1="472" x2="350" y2="492" stroke="#5a6068" stroke-width="2" marker-end="url(#arrow)"/>

  <!-- ===== MESH SCREEN (filter disc) ===== -->
  <g>
    <path d="M255 500 L252 514 A98 12 0 0 0 448 514 L445 500 Z" fill="url(#mesh)" stroke="#7c7466" stroke-width="1.8"/>
    <ellipse cx="350" cy="500" rx="95" ry="11.5" fill="#f3eee4" stroke="#7c7466" stroke-width="1.8"/>
    <ellipse cx="350" cy="500" rx="9" ry="2.4" fill="#ffffff" stroke="#7c7466" stroke-width="1.2"/>
  </g>

  <line x1="350" y1="530" x2="350" y2="552" stroke="#5a6068" stroke-width="2" marker-end="url(#arrow)"/>

  <!-- ===== GLASS CARAFE ===== -->
  <g>
    <!-- body -->
    <path d="M245 566 L455 566 L449 792 L251 792 Z" fill="url(#glass)" fill-opacity="0.9" stroke="#5a7284" stroke-width="2"/>
    <!-- inner wall -->
    <path d="M256 566 L262 786 M444 566 L438 786" fill="none" stroke="#9db4c2" stroke-width="1.6"/>
    <!-- spout -->
    <path d="M246 560 L220 534 L251 549 Z" fill="url(#glass)" fill-opacity="0.9" stroke="#5a7284" stroke-width="2" stroke-linejoin="round"/>
    <!-- rim -->
    <ellipse cx="350" cy="566" rx="105" ry="13" fill="none" stroke="#5a7284" stroke-width="2.2"/>
    <ellipse cx="350" cy="566" rx="97" ry="10" fill="none" stroke="#9db4c2" stroke-width="1.4"/>
    <!-- outer bottom -->
    <path d="M251 792 A99 12 0 0 0 449 792" fill="none" stroke="#5a7284" stroke-width="2"/>
    <!-- inner bottom -->
    <path d="M256 788 A94 9 0 0 0 444 788" fill="none" stroke="#9db4c2" stroke-width="1.6"/>
    <!-- handle -->
    <path d="M455 606 C548 602 552 708 458 712" fill="none" stroke="#3d434b" stroke-width="13" stroke-linecap="round"/>
    <path d="M455 611 C540 608 543 703 458 707" fill="none" stroke="#6b727b" stroke-width="4" stroke-linecap="round"/>
    <!-- liquid hint -->
    <path d="M262 700 L438 700 L444 786 L256 786 Z" fill="#8a5a2e" fill-opacity="0.35"/>
    <ellipse cx="350" cy="700" rx="88" ry="9" fill="#a06a35" fill-opacity="0.45"/>
  </g>

  <!-- ===== BASE ===== -->
  <g>
    <line x1="350" y1="800" x2="350" y2="824" stroke="#5a6068" stroke-width="2" marker-end="url(#arrow)"/>
    <path d="M254 830 L446 830 L452 862 L248 862 Z" fill="#454b53" stroke="#2b3036" stroke-width="1.8"/>
    <ellipse cx="350" cy="830" rx="96" ry="11" fill="#5c636c" stroke="#2b3036" stroke-width="1.8"/>
    <ellipse cx="350" cy="862" rx="102" ry="11" fill="#33383f" stroke="#2b3036" stroke-width="1.8"/>
  </g>

  <!-- ===== LABELS ===== -->
  <g font-size="16" fill="#22262b">
    <g stroke="#8a9099" stroke-width="1.2">
      <line x1="472" y1="150" x2="540" y2="150"/>
      <line x1="362" y1="300" x2="540" y2="300"/>
      <line x1="444" y1="444" x2="540" y2="444"/>
      <line x1="450" y1="506" x2="540" y2="506"/>
      <line x1="245" y1="730" x2="180" y2="730"/>
      <line x1="462" y1="846" x2="540" y2="846"/>
    </g>
    <text x="548" y="155">Lid (finial on plunger)</text>
    <text x="548" y="305">Plunger rod</text>
    <text x="548" y="449">Cross retainer (frame)</text>
    <text x="548" y="511">Mesh filter screen</text>
    <text x="548" y="851">Base</text>
  </g>
  <text x="172" y="735" text-anchor="end" font-size="16" fill="#22262b">Glass carafe</text>

  <!-- note: three-piece group -->
  <g font-size="14" fill="#4a6a4a">
    <path d="M212 120 L212 522" stroke="#4a6a4a" stroke-width="2" fill="none"/>
    <path d="M198 120 H212 M198 522 H212" stroke="#4a6a4a" stroke-width="2" fill="none"/>
    <text x="188" y="310" transform="rotate(-90 188 310)" text-anchor="middle">plunger filter — 3 pieces</text>
  </g>
</svg>
round 1 of 3
Exploded French press, by Qwen3.8 27B, the render after round 1
123What the model saw after each round. The picture above is the round that was scored, round 3.
gallery/Exploded French press/Qwen3.8 27B, run 1

No spiral plate and no separate knob, and the cross retainer sits above the mesh.

modelqwen/qwen3.8-27btasksvg-french-press@v2date2026-09-22rounds3 of 8 allowedcost$0.0405thinkingmediumtokens63,820 in, 10,660 out, of which 5,918 reasoningtime3 min 14 sfailurecompleteness · part-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.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.