SVG: exploded French press, by glm-5.3-flashx
glm-5.3-flashx · round 4 of 4 · seed 1$0.02SVGPNGpress.svg
press.svg · 120 lines
<svg xmlns="http://www.w3.org/2000/svg" width="700" height="1060" viewBox="0 0 700 1060">
  <defs>
    <linearGradient id="steel" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#8d949c"/>
      <stop offset="0.35" stop-color="#e8ecf0"/>
      <stop offset="0.6" stop-color="#b8bfc7"/>
      <stop offset="1" stop-color="#7c838b"/>
    </linearGradient>
    <linearGradient id="glass" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#cfdbe2" stop-opacity="0.85"/>
      <stop offset="0.3" stop-color="#eef6fa" stop-opacity="0.5"/>
      <stop offset="0.7" stop-color="#b9c9d2" stop-opacity="0.6"/>
      <stop offset="1" stop-color="#9fb2bd" stop-opacity="0.85"/>
    </linearGradient>
    <linearGradient id="black" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0" stop-color="#1e2126"/>
      <stop offset="0.4" stop-color="#4a5058"/>
      <stop offset="1" stop-color="#23262b"/>
    </linearGradient>
  </defs>

  <rect width="700" height="1060" fill="#f7f4ee"/>
  <text x="350" y="60" text-anchor="middle" font-family="Georgia, serif" font-size="26" fill="#333">French Press — Exploded Assembly</text>

  <!-- center axis -->
  <line x1="350" y1="110" x2="350" y2="1000" stroke="#999" stroke-width="1" stroke-dasharray="6 6"/>

  <!-- 1. Knob -->
  <g>
    <ellipse cx="350" cy="130" rx="42" ry="16" fill="url(#black)"/>
    <ellipse cx="350" cy="122" rx="42" ry="16" fill="#3a4048"/>
    <rect x="308" y="122" width="84" height="8" fill="url(#black)"/>
    <text x="420" y="130" font-family="Arial" font-size="15" fill="#444">1. Knob</text>
  </g>

  <!-- dashed connector -->
  <line x1="350" y1="150" x2="350" y2="200" stroke="#aaa" stroke-width="1.5" stroke-dasharray="4 5"/>

  <!-- 2. Lid -->
  <g>
    <ellipse cx="350" cy="232" rx="120" ry="22" fill="url(#black)"/>
    <ellipse cx="350" cy="224" rx="120" ry="22" fill="#464d56"/>
    <ellipse cx="350" cy="222" rx="120" ry="22" fill="url(#black)"/>
    <ellipse cx="350" cy="222" rx="26" ry="6" fill="#111418"/>
    <text x="500" y="228" font-family="Arial" font-size="15" fill="#444">2. Lid</text>
  </g>

  <line x1="350" y1="252" x2="350" y2="310" stroke="#aaa" stroke-width="1.5" stroke-dasharray="4 5"/>

  <!-- 3. Plunger rod -->
  <g>
    <rect x="344" y="305" width="12" height="280" rx="4" fill="url(#steel)"/>
    <ellipse cx="350" cy="305" rx="6" ry="3" fill="#dfe4e9"/>
    <text x="250" y="450" text-anchor="end" font-family="Arial" font-size="15" fill="#444">3. Plunger rod</text>
  </g>

  <line x1="350" y1="595" x2="350" y2="630" stroke="#aaa" stroke-width="1.5" stroke-dasharray="4 5"/>

  <!-- 4. Filter assembly (three-piece: top cross plate, mesh, base plate) -->
  <g>
    <!-- top cross/spiral plate -->
    <ellipse cx="350" cy="652" rx="95" ry="18" fill="url(#steel)"/>
    <ellipse cx="350" cy="648" rx="95" ry="18" fill="#d3d9df"/>
    <path d="M258 646 Q350 618 442 646" fill="none" stroke="#9aa2ab" stroke-width="2"/>
    <path d="M262 654 Q350 630 438 654" fill="none" stroke="#9aa2ab" stroke-width="2"/>
    <rect x="342" y="642" width="16" height="10" rx="2" fill="#6b737c"/>

    <!-- mesh disc -->
    <ellipse cx="350" cy="684" rx="93" ry="17" fill="#c9ced4" stroke="#7f868e" stroke-width="1.5"/>
    <g stroke="#8b929a" stroke-width="0.8">
      <line x1="258" y1="682" x2="442" y2="682"/>
      <line x1="262" y1="676" x2="438" y2="676"/>
      <line x1="262" y1="690" x2="438" y2="690"/>
      <line x1="272" y1="671" x2="428" y2="671"/>
      <line x1="272" y1="696" x2="428" y2="696"/>
      <line x1="300" y1="668" x2="300" y2="700"/>
      <line x1="350" y1="667" x2="350" y2="701"/>
      <line x1="400" y1="668" x2="400" y2="700"/>
    </g>

    <!-- base retaining plate -->
    <ellipse cx="350" cy="716" rx="88" ry="16" fill="url(#steel)"/>
    <ellipse cx="350" cy="712" rx="88" ry="16" fill="#cfd5db"/>
    <circle cx="300" cy="712" r="4" fill="#7d848c"/>
    <circle cx="400" cy="712" r="4" fill="#7d848c"/>
    <circle cx="350" cy="700" r="4" fill="#7d848c"/>

    <text x="480" y="690" font-family="Arial" font-size="15" fill="#444">4. Filter assembly</text>
    <text x="480" y="708" font-family="Arial" font-size="12" fill="#777">(plate · mesh · plate)</text>
  </g>

  <!-- 5. Carafe -->
  <g>
    <!-- glass beaker body -->
    <path d="M225 785 L225 930 Q225 950 250 950 L450 950 Q475 950 475 930 L475 785 Q475 763 450 761 L250 761 Q225 763 225 785 Z"
          fill="url(#glass)" stroke="#8fa3ad" stroke-width="2.5"/>
    <path d="M240 775 L240 935" stroke="#ffffff" stroke-opacity="0.7" stroke-width="8" stroke-linecap="round"/>
    <ellipse cx="350" cy="761" rx="112" ry="14" fill="none" stroke="#8fa3ad" stroke-width="2.5"/>
    <!-- spout -->
    <path d="M225 777 L200 765 L200 781 L225 791 Z" fill="url(#glass)" stroke="#8fa3ad" stroke-width="2"/>
    <!-- handle -->
    <path d="M475 790 Q540 797 540 905 Q540 940 480 940" fill="none" stroke="url(#black)" stroke-width="12" stroke-linecap="round"/>
    <text x="150" y="800" font-family="Arial" font-size="15" fill="#444">5. Carafe</text>
  </g>

  <!-- 6. Base / cage bottom -->
  <g>
    <path d="M245 1020 L245 1013 Q245 1003 258 1003 L442 1003 Q455 1003 455 1013 L455 1020 Z" fill="url(#black)"/>
    <ellipse cx="350" cy="1003" rx="107" ry="10" fill="#3c434b"/>
    <text x="580" y="1015" font-family="Arial" font-size="15" fill="#444">6. Base</text>
  </g>

  <!-- assembly arrow -->
  <g stroke="#b0562f" stroke-width="2.5" fill="#b0562f">
    <line x1="130" y1="180" x2="130" y2="830"/>
    <path d="M123 820 L130 838 L137 820" fill="none"/>
    <text x="118" y="530" transform="rotate(-90 118 530)" text-anchor="middle" font-family="Arial" font-size="14" fill="#b0562f" stroke="none">assembly direction</text>
  </g>
</svg>
round 1 of 4
Exploded French press, by GLM 5.3 FlashX, the render after round 1
1234What the model saw after each round. The picture above is the round that was scored, round 4.
gallery/Exploded French press/GLM 5.3 FlashX, run 1

Three filter pieces labelled as one assembly, so which plate is which cannot be read, and all three are under 80% of the glass width.

modelz-ai/glm-5.3-flashxtasksvg-french-press@v2date2026-09-22rounds4 of 8 allowedcost$0.0203thinkingmediumtokens113,499 in, 6,255 out, of which 446 reasoningtime1 min 44 sfailurephysical-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.pass
Stack orderdecided by a number, from the filen/d
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.

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.