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 960 240" width="960" height="240" fill="none">
  <!-- Shared stroke styling (monochrome, stroke-based) -->
  <g stroke="#111" stroke-width="10" stroke-linecap="round" stroke-linejoin="round">
    <!-- Layout: 6 icons across, each 160px wide -->
    
    <!-- 1) Sun -->
    <g transform="translate(0,0)">
      <!-- Outer circle -->
      <circle cx="80" cy="120" r="34"/>
      <!-- Rays (designed, hand-like spacing) -->
      <path d="M80 52 L80 68"/>
      <path d="M80 172 L80 188"/>
      <path d="M146 120 L130 120"/>
      <path d="M30 120 L46 120"/>
      <path d="M129 76 L118 87"/>
      <path d="M42 164 L53 153"/>
      <path d="M129 164 L118 153"/>
      <path d="M42 76 L53 87"/>
    </g>

    <!-- 2) Cloud -->
    <g transform="translate(160,0)">
      <path d="M45 132
               C45 116, 58 104, 74 104
               C80 88, 95 78, 112 78
               C129 78, 143 88, 148 103
               C165 103, 178 115, 178 131
               C178 147, 165 158, 149 158
               L74 158
               C58 158, 45 148, 45 132 Z"/>
    </g>

    <!-- 3) Rain -->
    <g transform="translate(320,0)">
      <!-- Cloud -->
      <path d="M45 118
               C45 102, 58 90, 74 90
               C80 74, 95 64, 112 64
               C129 64, 143 74, 148 89
               C165 89, 178 101, 178 117
               C178 133, 165 144, 149 144
               L74 144
               C58 144, 45 134, 45 118 Z"/>
      <!-- Rain drops -->
      <path d="M88 150 L88 168"/>
      <path d="M112 150 L112 170"/>
      <path d="M136 150 L136 168"/>
    </g>

    <!-- 4) Snow -->
    <g transform="translate(480,0)">
      <!-- Cloud -->
      <path d="M45 118
               C45 102, 58 90, 74 90
               C80 74, 95 64, 112 64
               C129 64, 143 74, 148 89
               C165 89, 178 101, 178 117
               C178 133, 165 144, 149 144
               L74 144
               C58 144, 45 134, 45 118 Z"/>
      <!-- Snowflakes (stroke-based, simple hand-drawn look) -->
      <path d="M92 156 L92 175"/>
      <path d="M83 165 L101 165"/>
      <path d="M120 154 L120 178"/>
      <path d="M111 166 L129 166"/>
      <path d="M148 156 L148 176"/>
      <path d="M139 166 L157 166"/>
    </g>

    <!-- 5) Fog -->
    <g transform="translate(640,0)">
      <!-- Cloud base softened into fog bands -->
      <path d="M40 122
               C52 110, 70 110, 82 122
               C94 110, 112 110, 124 122
               C136 110, 154 110, 166 122
               C178 110, 196 110, 208 122
               "/>
      <path d="M30 142
               C44 128, 66 128, 80 142
               C94 128, 116 128, 130 142
               C144 128, 166 128, 180 142
               C194 128, 216 128, 230 142
               "/>
      <path d="M45 164
               C58 152, 74 152, 87 164
               C100 152, 116 152, 129 164
               C142 152, 158 152, 171 164
               C184 152, 200 152, 213 164
               "/>
    </g>

    <!-- 6) Thunderstorm -->
    <g transform="translate(800,0)">
      <!-- Cloud -->
      <path d="M35 114
               C35 98, 49 86, 66 86
               C73 70, 89 60, 107 60
               C125 60, 141 70, 147 85
               C164 85, 178 97, 178 113
               C178 129, 165 140, 149 140
               L74 140
               C56 140, 35 132, 35 114 Z"/>
      <!-- Lightning bolt -->
      <path d="M118 92 L96 132 L120 132 L104 168 L142 120 L118 120 Z"/>
      <!-- Rain drops -->
      <path d="M74 150 L74 170"/>
      <path d="M98 150 L98 172"/>
      <path d="M122 150 L122 168"/>
    </g>
  </g>

  <!-- Subtle frame separators (no fills, stroke only) to emphasize grid without changing monochrome icon look -->
  <g stroke="#111" stroke-width="4" stroke-linecap="round" opacity="0.10">
    <path d="M0 40 L960 40"/>
    <path d="M0 200 L960 200"/>
    <path d="M160 0 L160 240"/>
    <path d="M320 0 L320 240"/>
    <path d="M480 0 L480 240"/>
    <path d="M640 0 L640 240"/>
    <path d="M800 0 L800 240"/>
  </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"
}