lighthouse-storm
rendered
the brief, redacted

Draw a lighthouse on a rocky outcrop during a storm, as a single self-contained SVG. Tests composition, layering, and whether a model can suggest weather without raster effects.

338 chars · 53 words · fingerprint 0b46c0c31095

raw output — byte exact

```svg
<svg viewBox="0 0 400 500" xmlns="http://www.w3.org/2000/svg">
  <!-- Define gradients for sky -->
  <defs>
    <linearGradient id="skyGradient" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" style="stop-color:#2c3e50;stop-opacity:1" />
      <stop offset="100%" style="stop-color:#546e7a;stop-opacity:1" />
    </linearGradient>
    <radialGradient id="beamGradient" cx="50%" cy="50%" r="50%">
      <stop offset="0%" style="stop-color:#fff9c4;stop-opacity:0.9" />
      <stop offset="100%" style="stop-color:#fff9c4;stop-opacity:0.1" />
    </radialGradient>
  </defs>

  <!-- Sky background -->
  <rect width="400" height="500" fill="url(#skyGradient)"/>

  <!-- Rain streaks - diagonal lines for wind effect -->
  <line x1="20" y1="80" x2="40" y2="120" stroke="#b0bec5" stroke-width="1.5" opacity="0.6"/>
  <line x1="60" y1="60" x2="80" y2="110" stroke="#b0bec5" stroke-width="1.5" opacity="0.5"/>
  <line x1="100" y1="90" x2="120" y2="140" stroke="#b0bec5" stroke-width="1.5" opacity="0.7"/>
  <line x1="140" y1="70" x2="160" y2="130" stroke="#b0bec5" stroke-width="1.5" opacity="0.6"/>
  <line x1="180" y1="100" x2="200" y2="150" stroke="#b0bec5" stroke-width="1.5" opacity="0.5"/>
  <line x1="220" y1="80" x2="240" y2="140" stroke="#b0bec5" stroke-width="1.5" opacity="0.7"/>
  <line x1="260" y1="110" x2="280" y2="160" stroke="#b0bec5" stroke-width="1.5" opacity="0.6"/>
  <line x1="300" y1="70" x2="320" y2="130" stroke="#b0bec5" stroke-width="1.5" opacity="0.5"/>
  <line x1="340" y1="100" x2="360" y2="150" stroke="#b0bec5" stroke-width="1.5" opacity="0.7"/>
  <line x1="30" y1="200" x2="50" y2="250" stroke="#b0bec5" stroke-width="1.5" opacity="0.6"/>
  <line x1="70" y1="180" x2="90" y2="240" stroke="#b0bec5" stroke-width="1.5" opacity="0.5"/>
  <line x1="110" y1="210" x2="130" y2="260" stroke="#b0bec5" stroke-width="1.5" opacity="0.7"/>
  <line x1="150" y1="190" x2="170" y2="250" stroke="#b0bec5" stroke-width="1.5" opacity="0.6"/>
  <line x1="190" y1="220" x2="210" y2="270" stroke="#b0bec5" stroke-width="1.5" opacity="0.5"/>
  <line x1="230" y1="200" x2="250" y2="260" stroke="#b0bec5" stroke-width="1.5" opacity="0.7"/>
  <line x1="270" y1="210" x2="290" y2="270" stroke="#b0bec5" stroke-width="1.5" opacity="0.6"/>
  <line x1="310" y1="190" x2="330" y2="250" stroke="#b0bec5" stroke-width="1.5" opacity="0.5"/>
  <line x1="350" y1="220" x2="370" y2="270" stroke="#b0bec5" stroke-width="1.5" opacity="0.7"/>

  <!-- Rocky outcrop -->
  <path d="M 150 350 L 120 380 L 90 370 L 70 390 L 60 370 L 40 385 L 30 360 L 50 350 Z" fill="#455a64" stroke="#263238" stroke-width="2"/>
  <path d="M 250 350 L 280 385 L 310 375 L 330 390 L 350 370 L 370 385 L 380 360 L 360 350 Z" fill="#455a64" stroke="#263238" stroke-width="2"/>
  <path d="M 140 360 L 170 390 L 200 385 L 260 390 L 290 360 Z" fill="#37474f" stroke="#263238" stroke-width="2"/>

  <!-- Rocks/boulders for texture -->
  <circle cx="100" cy="375" r="12" fill="#546e7a" stroke="#263238" stroke-width="1"/>
  <circle cx="200" cy="380" r="15" fill="#546e7a" stroke="#263238" stroke-width="1"/>
  <circle cx="320" cy="375" r="13" fill="#546e7a" stroke="#263238" stroke-width="1"/>
  <ellipse cx="150" cy="385" rx="18" ry="8" fill="#37474f" stroke="#263238" stroke-width="1"/>

  <!-- Lighthouse tower -->
  <rect x="175" y="220" width="50" height="140" fill="#eceff1" stroke="#263238" stroke-width="2"/>

  <!-- Lighthouse tower stripes -->
  <rect x="175" y="240" width="50" height="20" fill="#c62828" opacity="0.8"/>
  <rect x="175" y="285" width="50" height="18" fill="#c62828" opacity="0.8"/>

  <!-- Lighthouse gallery/balcony -->
  <ellipse cx="200" cy="218" rx="28" ry="8" fill="#90a4ae" stroke="#263238" stroke-width="1.5"/>
  <rect x="172" y="216" width="56" height="6" fill="#78909c" stroke="#263238" stroke-width="1"/>

  <!-- Lighthouse top/lantern room -->
  <rect x="180" y="195" width="40" height="25" fill="#78909c" stroke="#263238" stroke-width="1.5"/>
  <polygon points="200,185 210,195 190,195" fill="#546e7a" stroke="#263238" stroke-width="1.5"/>

  <!-- Lighthouse lantern/light -->
  <circle cx="200" cy="205" r="8" fill="#ffd54f" stroke="#f57f17" stroke-width="1.5"/>

  <!-- Lighthouse beam - large cone of light -->
  <polygon points="200,205 120,100 280,100" fill="url(#beamGradient)" opacity="0.7"/>
  <polygon points="200,205 100,80 300,80" fill="url(#beamGradient)" opacity="0.5"/>

  <!-- Wind-blown waves/turbulence marks -->
  <path d="M 20 420 Q 40 415 60 420 T 100 420" stroke="#64b5f6" stroke-width="2" fill="none" opacity="0.6"/>
  <path d="M 0 440 Q 30 435 60 440 T 120 440 T 180 440 T 240 440 T 300 440 T 360 440 T 400 440" stroke="#64b5f6" stroke-width="2" fill="none" opacity="0.5"/>
  <path d="M 15 455 Q 45 450 75 455 T 135 455 T 195 455 T 255 455 T 315 455 T 375 455" stroke="#64b5f6" stroke-width="1.5" fill="none" opacity="0.4"/>

  <!-- Wind lines above rocks -->
  <path d="M 80 320 Q 100 315 120 320" stroke="#90a4ae" stroke-width="1.5" fill="none" opacity="0.5"/>
  <path d="M 280 310 Q 300 305 320 310" stroke="#90a4ae" stroke-width="1.5" fill="none" opacity="0.5"/>

</svg>
```

request envelope — prompt redacted

{
  "model": "anthropic/claude-haiku-4.5",
  "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 — 58 words, 338 chars»"
    }
  ],
  "maxOutputTokens": 16000,
  "gatewayStringId": "189809da-2d08-4d08-bf2e-58338b3d0f1a"
}