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 1020 180" width="100%" height="100%">
  <defs>
    <style>
      .icon-base {
        fill: none;
        stroke: #22252a;
        stroke-width: 6;
        stroke-linecap: round;
        stroke-linejoin: round;
      }
      .cloud-bg {
        fill: #ffffff;
      }
    </style>
  </defs>

  <!-- Global background for clean contrast -->
  <rect width="1020" height="180" fill="#ffffff" rx="16"/>

  <!-- ==================== 1. SUN ==================== -->
  <g transform="translate(10, 0)">
    <!-- Center Circle -->
    <circle cx="80" cy="90" r="22" class="icon-base"/>
    <!-- Rays -->
    <line x1="80" y1="46" x2="80" y2="58" class="icon-base"/>
    <line x1="80" y1="122" x2="80" y2="134" class="icon-base"/>
    <line x1="36" y1="90" x2="48" y2="90" class="icon-base"/>
    <line x1="112" y1="90" x2="124" y2="90" class="icon-base"/>
    <line x1="49" y1="59" x2="57" y2="67" class="icon-base"/>
    <line x1="103" y1="113" x2="111" y2="121" class="icon-base"/>
    <line x1="49" y1="121" x2="57" y2="113" class="icon-base"/>
    <line x1="103" y1="67" x2="111" y2="59" class="icon-base"/>
  </g>

  <!-- ==================== 2. CLOUD ==================== -->
  <g transform="translate(180, 0)">
    <path d="M 60 114 
             L 108 114 
             A 18 18 0 0 0 126 96 
             A 18 18 0 0 0 116 81 
             A 22 22 0 0 0 76 65 
             A 22 22 0 0 0 42 83 
             A 18 18 0 0 0 60 114 Z" 
          class="icon-base cloud-bg"/>
  </g>

  <!-- ==================== 3. RAIN ==================== -->
  <g transform="translate(350, 0)">
    <!-- Cloud -->
    <path d="M 60 102 
             L 108 102 
             A 18 18 0 0 0 126 84 
             A 18 18 0 0 0 116 69 
             A 22 22 0 0 0 76 53 
             A 22 22 0 0 0 42 71 
             A 18 18 0 0 0 60 102 Z" 
          class="icon-base cloud-bg"/>
    <!-- Rain drops -->
    <line x1="62" y1="118" x2="56" y2="132" class="icon-base"/>
    <line x1="84" y1="118" x2="78" y2="132" class="icon-base"/>
    <line x1="106" y1="118" x2="100" y2="132" class="icon-base"/>
  </g>

  <!-- ==================== 4. SNOW ==================== -->
  <g transform="translate(520, 0)">
    <!-- Cloud -->
    <path d="M 60 102 
             L 108 102 
             A 18 18 0 0 0 126 84 
             A 18 18 0 0 0 116 69 
             A 22 22 0 0 0 76 53 
             A 22 22 0 0 0 42 71 
             A 18 18 0 0 0 60 102 Z" 
          class="icon-base cloud-bg"/>
    <!-- Snowflakes (Asterisks) -->
    <!-- Left snowflake -->
    <g transform="translate(60, 126)">
      <line x1="0" y1="-8" x2="0" y2="8" class="icon-base"/>
      <line x1="-7" y1="-4" x2="7" y2="4" class="icon-base"/>
      <line x1="-7" y1="4" x2="7" y2="-4" class="icon-base"/>
    </g>
    <!-- Center snowflake -->
    <g transform="translate(84, 126)">
      <line x1="0" y1="-8" x2="0" y2="8" class="icon-base"/>
      <line x1="-7" y1="-4" x2="7" y2="4" class="icon-base"/>
      <line x1="-7" y1="4" x2="7" y2="-4" class="icon-base"/>
    </g>
    <!-- Right snowflake -->
    <g transform="translate(108, 126)">
      <line x1="0" y1="-8" x2="0" y2="8" class="icon-base"/>
      <line x1="-7" y1="-4" x2="7" y2="4" class="icon-base"/>
      <line x1="-7" y1="4" x2="7" y2="-4" class="icon-base"/>
    </g>
  </g>

  <!-- ==================== 5. FOG ==================== -->
  <g transform="translate(690, 0)">
    <path d="M 52 68 L 100 68 A 12 12 0 0 1 112 80 A 12 12 0 0 1 100 92 L 44 92 A 10 10 0 0 0 34 102 A 10 10 0 0 0 44 112 L 116 112" class="icon-base"/>
    <line x1="48" y1="52" x2="92" y2="52" class="icon-base"/>
    <line x1="64" y1="128" x2="108" y2="128" class="icon-base"/>
  </g>

  <!-- ==================== 6. THUNDERSTORM ==================== -->
  <g transform="translate(860, 0)">
    <!-- Cloud -->
    <path d="M 60 102 
             L 108 102 
             A 18 18 0 0 0 126 84 
             A 18 18 0 0 0 116 69 
             A 22 22 0 0 0 76 53 
             A 22 22 0 0 0 42 71 
             A 18 18 0 0 0 60 102 Z" 
          class="icon-base cloud-bg"/>
    <!-- Lightning Bolt -->
    <polyline points="88,110 70,132 86,132 72,156" class="icon-base"/>
  </g>

</svg>

request envelope — prompt redacted

{
  "model": "google/gemini-3.5-flash-lite",
  "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": "8491f856-2274-4cba-9747-9c6bc0f0c4ae"
}