A serving tray where every table gets a drink it will take, by kimi-k3.1-pro
kimi-k3.1-pro · round 2 of 2 · seed 2$0.10SVGPNGtray.svg
tray.svg · 197 lines
<svg xmlns="http://www.w3.org/2000/svg" width="1400" height="1000" viewBox="0 0 1400 1000" role="img" aria-labelledby="title desc">
  <title id="title">The barista's tray: six drinks matched to six tables</title>
  <desc id="desc">Table 1: Vanilla cortado. Table 2: Decaf cortado. Table 3: Decaf oat vanilla latte. Table 4: Iced oat latte. Table 5: Cold brew. Table 6: Filter coffee.</desc>
  <defs>
    <linearGradient id="bg" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0" stop-color="#fbf7ef"/>
      <stop offset="1" stop-color="#eee3d1"/>
    </linearGradient>
    <linearGradient id="tray" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#a56e47"/>
      <stop offset="1" stop-color="#795036"/>
    </linearGradient>
    <linearGradient id="innerTray" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0" stop-color="#c99668"/>
      <stop offset="1" stop-color="#b47c51"/>
    </linearGradient>
    <linearGradient id="coffee" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#4a291d"/>
      <stop offset="1" stop-color="#1d1412"/>
    </linearGradient>
    <linearGradient id="oat" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0" stop-color="#b67b4f"/>
      <stop offset="0.35" stop-color="#d9b992"/>
      <stop offset="0.37" stop-color="#f1e3cb"/>
      <stop offset="1" stop-color="#e4cfad"/>
    </linearGradient>
    <filter id="shadow" x="-30%" y="-30%" width="160%" height="180%">
      <feDropShadow dx="0" dy="8" stdDeviation="9" flood-color="#362519" flood-opacity="0.23"/>
    </filter>
    <filter id="cupShadow" x="-30%" y="-30%" width="160%" height="180%">
      <feDropShadow dx="0" dy="5" stdDeviation="4" flood-color="#4b2f1d" flood-opacity="0.24"/>
    </filter>
    <style>
      .sans { font-family: Arial, Helvetica, sans-serif; }
      .serif { font-family: Georgia, 'Times New Roman', serif; }
      .table { font: 700 18px Arial, Helvetica, sans-serif; letter-spacing: 2px; fill: #fffaf0; }
      .drink { font: 700 24px Georgia, 'Times New Roman', serif; fill: #2e2119; text-anchor: middle; }
      .details { font: 700 12px Arial, Helvetica, sans-serif; letter-spacing: 1.7px; fill: #5c4030; text-anchor: middle; }
      .steam { fill: none; stroke: #f9f2e7; stroke-width: 5; stroke-linecap: round; opacity: .9; }
      .ice { fill: #eaf7f5; fill-opacity: .72; stroke: #ffffff; stroke-width: 2; }
    </style>
  </defs>

  <rect width="1400" height="1000" fill="url(#bg)"/>
  <circle cx="84" cy="80" r="28" fill="#dbc7aa" opacity=".35"/>
  <circle cx="1325" cy="80" r="42" fill="#dbc7aa" opacity=".28"/>
  <text x="700" y="69" class="serif" text-anchor="middle" font-size="42" font-weight="700" fill="#36271d">THE BARISTA’S TRAY</text>
  <text x="700" y="105" class="sans" text-anchor="middle" font-size="15" letter-spacing="3.5" fill="#846a54">SIX DRINKS · SIX TABLES · ONE PERFECT ROUND</text>

  <rect x="57" y="142" width="1286" height="810" rx="52" fill="#5e3e2b" opacity=".18" transform="translate(0 10)"/>
  <rect x="57" y="142" width="1286" height="810" rx="52" fill="url(#tray)"/>
  <rect x="76" y="161" width="1248" height="772" rx="39" fill="url(#innerTray)" stroke="#d7ac83" stroke-width="2"/>
  <path d="M108 188 H1292" stroke="#efd0ad" stroke-opacity=".35" stroke-width="2"/>
  <path d="M108 906 H1292" stroke="#6f452c" stroke-opacity=".28" stroke-width="2"/>
  <path d="M114 180 C260 199 384 171 548 187 S859 195 1009 180 S1211 181 1280 190" fill="none" stroke="#825737" stroke-opacity=".14" stroke-width="3"/>
  <path d="M105 900 C280 882 421 914 620 893 S990 906 1284 887" fill="none" stroke="#6c452e" stroke-opacity=".13" stroke-width="3"/>

  <!-- TABLE 1: Vanilla cortado -->
  <g transform="translate(250 0)">
    <rect x="-73" y="193" width="146" height="47" rx="23.5" fill="#3d2c22"/>
    <text x="0" y="224" class="table" text-anchor="middle">TABLE 1</text>
    <g class="steam">
      <path d="M-28 300 C-47 282 -9 273 -26 252"/>
      <path d="M7 298 C-9 278 26 269 10 247"/>
      <path d="M40 301 C27 283 58 277 46 258"/>
    </g>
    <g>
      <ellipse cx="0" cy="451" rx="102" ry="18" fill="#805639" opacity=".25"/>
      <ellipse cx="0" cy="442" rx="99" ry="18" fill="#f2e8d8"/>
      <ellipse cx="0" cy="440" rx="69" ry="9" fill="#d8c6af"/>
      <path d="M60 334 C116 324 119 408 65 408" fill="none" stroke="#efe5d6" stroke-width="20"/>
      <path d="M-67 324 H67 L55 416 Q52 434 30 437 H-30 Q-52 434 -55 416 Z" fill="#f6eee1"/>
      <ellipse cx="0" cy="325" rx="67" ry="17" fill="#d8c9b7"/>
      <ellipse cx="0" cy="325" rx="57" ry="12" fill="#bd8355"/>
      <path d="M-29 325 C-15 309 16 309 30 325 C16 339 -15 339 -29 325Z" fill="#e9cba8" opacity=".8"/>
      <path d="M-42 348 L-34 407" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity=".55"/>
    </g>
    <text x="0" y="491" class="drink">Vanilla cortado</text>
    <text x="0" y="517" class="details">DAIRY · VANILLA · HOT</text>
  </g>

  <!-- TABLE 2: Decaf cortado -->
  <g transform="translate(700 0)">
    <rect x="-73" y="193" width="146" height="47" rx="23.5" fill="#3d2c22"/>
    <text x="0" y="224" class="table" text-anchor="middle">TABLE 2</text>
    <g class="steam">
      <path d="M-28 300 C-47 282 -9 273 -26 252"/>
      <path d="M7 298 C-9 278 26 269 10 247"/>
      <path d="M40 301 C27 283 58 277 46 258"/>
    </g>
    <g>
      <ellipse cx="0" cy="451" rx="102" ry="18" fill="#805639" opacity=".25"/>
      <ellipse cx="0" cy="442" rx="99" ry="18" fill="#e5e7d9"/>
      <ellipse cx="0" cy="440" rx="69" ry="9" fill="#bcc5ad"/>
      <path d="M60 334 C116 324 119 408 65 408" fill="none" stroke="#dce1d1" stroke-width="20"/>
      <path d="M-67 324 H67 L55 416 Q52 434 30 437 H-30 Q-52 434 -55 416 Z" fill="#dfe5d5"/>
      <ellipse cx="0" cy="325" rx="67" ry="17" fill="#aebba2"/>
      <ellipse cx="0" cy="325" rx="57" ry="12" fill="#ad744c"/>
      <path d="M-30 325 C-13 309 13 309 30 325 C13 339 -13 339 -30 325Z" fill="#e6c49d"/>
      <path d="M-42 348 L-34 407" stroke="#ffffff" stroke-width="6" stroke-linecap="round" opacity=".45"/>
    </g>
    <text x="0" y="491" class="drink">Decaf cortado</text>
    <text x="0" y="517" class="details">DAIRY · DECAF · HOT</text>
  </g>

  <!-- TABLE 3: Decaf oat vanilla latte -->
  <g transform="translate(1150 0)">
    <rect x="-73" y="193" width="146" height="47" rx="23.5" fill="#3d2c22"/>
    <text x="0" y="224" class="table" text-anchor="middle">TABLE 3</text>
    <g class="steam">
      <path d="M-28 293 C-47 275 -9 266 -26 245"/>
      <path d="M7 291 C-9 271 26 262 10 240"/>
      <path d="M40 294 C27 276 58 270 46 251"/>
    </g>
    <g>
      <ellipse cx="0" cy="451" rx="91" ry="17" fill="#805639" opacity=".24"/>
      <ellipse cx="0" cy="442" rx="89" ry="17" fill="#eee1cc"/>
      <path d="M61 321 C116 316 117 405 59 406" fill="none" stroke="#e9d7bc" stroke-width="20"/>
      <path d="M-66 307 H66 L54 420 Q52 437 31 439 H-31 Q-52 437 -54 420 Z" fill="#efdfc7"/>
      <ellipse cx="0" cy="308" rx="66" ry="16" fill="#cfb28b"/>
      <ellipse cx="0" cy="308" rx="56" ry="11" fill="#b67b4f"/>
      <path d="M0 298 C-18 302 -24 307 -28 309 C-11 312 -6 316 0 319 C6 316 11 312 28 309 C24 307 18 302 0 298Z" fill="#f4e6cf"/>
      <path d="M-43 335 L-35 410" stroke="#fffaf0" stroke-width="6" stroke-linecap="round" opacity=".55"/>
    </g>
    <text x="0" y="491" class="drink" font-size="22">Decaf oat vanilla latte</text>
    <text x="0" y="517" class="details">OAT · DECAF · VANILLA · HOT</text>
  </g>

  <!-- TABLE 4: Iced oat latte -->
  <g transform="translate(250 0)">
    <rect x="-73" y="543" width="146" height="47" rx="23.5" fill="#3d2c22"/>
    <text x="0" y="574" class="table" text-anchor="middle">TABLE 4</text>
    <g>
      <ellipse cx="0" cy="811" rx="77" ry="15" fill="#68472f" opacity=".25"/>
      <path d="M-60 632 H60 L49 791 Q48 805 32 808 H-32 Q-48 805 -49 791 Z" fill="#eaf4f0" fill-opacity=".3" stroke="#f7f4e9" stroke-width="5"/>
      <path d="M-53 656 H53 L44 787 Q43 796 31 798 H-31 Q-43 796 -44 787 Z" fill="url(#oat)"/>
      <ellipse cx="0" cy="655" rx="53" ry="10" fill="#a96e47"/>
      <path d="M-52 689 H52" stroke="#f2e3cc" stroke-width="4" opacity=".8"/>
      <g class="ice">
        <rect x="-42" y="666" width="36" height="31" rx="5" transform="rotate(-12 -24 681)"/>
        <rect x="5" y="665" width="38" height="33" rx="5" transform="rotate(13 24 681)"/>
        <rect x="-20" y="706" width="40" height="34" rx="5" transform="rotate(8 0 723)"/>
      </g>
      <path d="M-36 666 L-29 779" stroke="#ffffff" stroke-width="5" stroke-linecap="round" opacity=".55"/>
      <path d="M25 626 L13 735" stroke="#445c50" stroke-width="7" stroke-linecap="round"/>
      <path d="M25 626 L40 608" stroke="#445c50" stroke-width="7" stroke-linecap="round"/>
    </g>
    <text x="0" y="850" class="drink">Iced oat latte</text>
    <text x="0" y="876" class="details">OAT · COLD</text>
  </g>

  <!-- TABLE 5: Cold brew -->
  <g transform="translate(700 0)">
    <rect x="-73" y="543" width="146" height="47" rx="23.5" fill="#3d2c22"/>
    <text x="0" y="574" class="table" text-anchor="middle">TABLE 5</text>
    <g>
      <ellipse cx="0" cy="811" rx="77" ry="15" fill="#68472f" opacity=".25"/>
      <path d="M-60 632 H60 L49 791 Q48 805 32 808 H-32 Q-48 805 -49 791 Z" fill="#eaf4f0" fill-opacity=".3" stroke="#f7f4e9" stroke-width="5"/>
      <path d="M-53 650 H53 L44 787 Q43 796 31 798 H-31 Q-43 796 -44 787 Z" fill="url(#coffee)"/>
      <ellipse cx="0" cy="650" rx="53" ry="10" fill="#382119"/>
      <g class="ice">
        <rect x="-43" y="662" width="38" height="34" rx="5" transform="rotate(-11 -24 679)"/>
        <rect x="5" y="661" width="38" height="34" rx="5" transform="rotate(13 24 678)"/>
        <rect x="-19" y="704" width="39" height="34" rx="5" transform="rotate(7 0 721)"/>
      </g>
      <path d="M-37 670 L-30 779" stroke="#ffffff" stroke-width="5" stroke-linecap="round" opacity=".42"/>
      <path d="M24 626 L12 735" stroke="#8c4d38" stroke-width="7" stroke-linecap="round"/>
      <path d="M24 626 L39 608" stroke="#8c4d38" stroke-width="7" stroke-linecap="round"/>
    </g>
    <text x="0" y="850" class="drink">Cold brew</text>
    <text x="0" y="876" class="details">BLACK · COLD</text>
  </g>

  <!-- TABLE 6: Filter coffee -->
  <g transform="translate(1150 0)">
    <rect x="-73" y="543" width="146" height="47" rx="23.5" fill="#3d2c22"/>
    <text x="0" y="574" class="table" text-anchor="middle">TABLE 6</text>
    <g class="steam">
      <path d="M-28 646 C-47 628 -9 619 -26 598"/>
      <path d="M7 644 C-9 624 26 615 10 593"/>
      <path d="M40 647 C27 629 58 623 46 604"/>
    </g>
    <g>
      <ellipse cx="0" cy="811" rx="99" ry="17" fill="#68472f" opacity=".25"/>
      <ellipse cx="0" cy="802" rx="97" ry="17" fill="#e6d7c3"/>
      <ellipse cx="0" cy="800" rx="68" ry="8" fill="#cbb79f"/>
      <path d="M60 680 C116 672 119 762 62 762" fill="none" stroke="#404b45" stroke-width="21"/>
      <path d="M-67 670 H67 L56 779 Q53 796 31 799 H-31 Q-53 796 -56 779 Z" fill="#435149"/>
      <ellipse cx="0" cy="671" rx="67" ry="17" fill="#2e3934"/>
      <ellipse cx="0" cy="671" rx="57" ry="12" fill="#241713"/>
      <path d="M-42 697 L-35 768" stroke="#73837a" stroke-width="6" stroke-linecap="round" opacity=".55"/>
    </g>
    <text x="0" y="850" class="drink">Filter coffee</text>
    <text x="0" y="876" class="details">BLACK · HOT</text>
  </g>
</svg>
round 1 of 2
A serving tray where every table gets a drink it will take, by Kimi K3.1 Pro, the render after round 1
12What the model saw after each round. The picture above is the round that was scored, round 2.

A serving tray where every table gets a drink it will take: Kimi K3.1 Pro

modelmoonshotai/kimi-k3.1-protaskcup-allocation@v2, checks c1, harness h1date2026-11-08rounds2 of 8 allowed, 12 minutes on the clockcost$0.0953thinkingmediumtokens48,443 in, 6,222 out, of which 1,186 reasoningtime46 s
Serves all sixdecided by a number, from the filepass

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
I'm a barista and I have six drinks ready to go out: - Vanilla cortado: dairy milk, vanilla syrup, hot - Decaf cortado: dairy milk, decaf, hot - Decaf oat vanilla latte: oat milk, decaf, vanilla syrup, hot - Iced oat latte: oat milk, cold - Cold brew: black, cold - Filter coffee: black, hot There are six tables, and each one has asked for something: - Table 1 only drinks dairy milk - Table 2 wants decaf - Table 3 wants vanilla - Table 4 wants oat milk - Table 5 wants something cold - Table 6 wants black coffee Each table gets one drink. Each drink goes to one table. Draw the tray as tray.svg. Label every cup with its table number and the drink's name.
Frozen at v2. This model got this and nothing else.
ground truth

Six drinks with fixed attributes, six tables with fixed notes, one tray. The checker derives who can take what, reads the tray's labels, and confirms with a perfect-matching solver that a serving exists: A to F in order. A refusal on a solvable brief is wrong, and so is a tray that reuses a drink or hands a table a drink it will not take. Whether a drawn cup really holds what its label says is the eye's. How it is scored, and this run's files on GitHub.