icon-set-weather
rendered
the brief, redacted

Produce a six-icon weather set on a shared grid, in one SVG. Tests visual consistency across repeated elements — the place where most models drift.

386 chars · 64 words · fingerprint cea26cacf025

raw output — byte exact

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 720 160" role="img" aria-label="Six monochrome weather icons: sun, cloud, rain, snow, fog, thunderstorm">
  <defs>
    <style>
      .w { fill: none; stroke: #111; stroke-linecap: round; stroke-linejoin: round; stroke-width: 8; }
      .faint { fill: none; stroke: #111; stroke-linecap: round; stroke-linejoin: round; stroke-width: 6; opacity: 0.95; }
    </style>
  </defs>

  <!-- Cell geometry: 120x160, evenly spaced across 6 -->
  <!-- Common: stroke weight 8, corner radius via rounded linecaps/joins -->

  <!-- 1) SUN (x 0..120) -->
  <g transform="translate(60,80)">
    <circle class="w" cx="0" cy="0" r="24" />
    <g class="w">
      <path d="M0 -44 L0 -56" />
      <path d="M0 44 L0 56" />
      <path d="M44 0 L56 0" />
      <path d="M-44 0 L-56 0" />
      <path d="M31 -31 L39 -39" />
      <path d="M-31 31 L-39 39" />
      <path d="M31 31 L39 39" />
      <path d="M-31 -31 L-39 -39" />
    </g>
  </g>

  <!-- 2) CLOUD (x 120..240) -->
  <g transform="translate(180,80)">
    <path class="w" d="M-38 22
      C-55 22 -68 10 -68 -6
      C-68 -22 -56 -35 -40 -35
      C-33 -50 -16 -58 0 -58
      C18 -58 33 -48 38 -33
      C56 -31 68 -18 68 -2
      C68 14 55 22 40 22
      Z" />
    <path class="faint" d="M-22 10 C-5 10 5 0 18 0" />
  </g>

  <!-- 3) RAIN (x 240..360) -->
  <g transform="translate(300,80)">
    <path class="w" d="M-38 16
      C-55 16 -68 6 -68 -10
      C-68 -24 -58 -35 -44 -35
      C-38 -52 -20 -60 -2 -60
      C16 -60 32 -50 38 -34
      C55 -32 68 -20 68 -4
      C68 10 56 16 42 16
      Z" />
    <g class="w">
      <path d="M-24 34 L-24 54" />
      <path d="M0 34 L0 56" />
      <path d="M24 34 L24 52" />
    </g>
  </g>

  <!-- 4) SNOW (x 360..480) -->
  <g transform="translate(420,80)">
    <path class="w" d="M-38 16
      C-55 16 -68 6 -68 -10
      C-68 -24 -58 -35 -44 -35
      C-38 -52 -20 -60 -2 -60
      C16 -60 32 -50 38 -34
      C55 -32 68 -20 68 -4
      C68 10 56 16 42 16
      Z" />
    <g class="w">
      <!-- snowflake 1 -->
      <path d="M-30 34 L-30 56" />
      <path d="M-40 44 L-20 44" />
      <path d="M-36 36 L-24 52" />
      <path d="M-24 36 L-36 52" />

      <!-- snowflake 2 -->
      <path d="M0 34 L0 56" />
      <path d="M-10 44 L10 44" />
      <path d="M-6 36 L6 52" />
      <path d="M6 36 L-6 52" />

      <!-- snowflake 3 -->
      <path d="M30 34 L30 54" />
      <path d="M20 44 L40 44" />
      <path d="M26 36 L38 52" />
      <path d="M38 36 L26 52" />
    </g>
  </g>

  <!-- 5) FOG (x 480..600) -->
  <g transform="translate(540,80)">
    <path class="w" d="M-56 54 C-42 42 -26 42 -12 54
                        C2 40 20 40 34 54
                        C48 42 62 42 76 54" />
    <path class="w" d="M-64 34 C-48 22 -30 22 -14 34
                        C2 20 22 20 38 34
                        C54 22 70 22 86 34" />
    <path class="w" d="M-56 14 C-42 2 -26 2 -12 14
                        C2 0 20 0 34 14
                        C48 2 62 2 76 14" />
  </g>

  <!-- 6) THUNDERSTORM (x 600..720) -->
  <g transform="translate(660,80)">
    <path class="w" d="M-38 16
      C-55 16 -68 6 -68 -10
      C-68 -24 -58 -35 -44 -35
      C-38 -52 -20 -60 -2 -60
      C16 -60 32 -50 38 -34
      C55 -32 68 -20 68 -4
      C68 10 56 16 42 16
      Z" />
    <!-- lightning bolt -->
    <g class="w">
      <path d="M-4 34 L12 34 L0 58 L18 58 L-18 96" opacity="0"/>
      <path d="M-2 34 L14 34 L2 56 L18 56 L-18 96" />
    </g>
    <!-- add subtle rain streaks to connect -->
    <g class="w" opacity="0.95">
      <path d="M-6 66 L-6 88" />
      <path d="M12 66 L12 86" />
    </g>
  </g>
</svg>

request envelope — prompt redacted

{
  "model": "openai/gpt-5.4-nano",
  "system": "Respond with a single complete <svg> element and nothing else. No markdown fences, no explanation. Include an explicit viewBox. Do not reference external fonts, images, or stylesheets — the SVG must be fully self-contained.",
  "messages": [
    {
      "role": "user",
      "content": "«REDACTED — 68 words, 386 chars»"
    }
  ],
  "maxOutputTokens": 16000,
  "gatewayStringId": "68b9ca2e-24f6-4b26-96f8-029a2a0acdf1"
}