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 viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#131b26"/>
      <stop offset="70%" stop-color="#22303f"/>
      <stop offset="100%" stop-color="#2b3a4a"/>
    </linearGradient>
    <linearGradient id="beamGrad" x1="0" y1="0" x2="1" y2="0">
      <stop offset="0%" stop-color="#f4e04d" stop-opacity="0.85"/>
      <stop offset="100%" stop-color="#f4e04d" stop-opacity="0"/>
    </linearGradient>
    <linearGradient id="sea" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#2b3a4a"/>
      <stop offset="100%" stop-color="#131b26"/>
    </linearGradient>
  </defs>

  <!-- Sky -->
  <rect x="0" y="0" width="800" height="600" fill="url(#sky)"/>

  <!-- Light beam, drawn before distant rain so rain crosses it -->
  <polygon points="402,168 800,40 800,300" fill="url(#beamGrad)"/>
  <polygon points="402,168 800,300 800,470" fill="url(#beamGrad)" opacity="0.5"/>

  <!-- Wind gust swirls -->
  <g stroke="#e8e4d8" stroke-width="1.3" fill="none" opacity="0.35">
    <path d="M40,90 C90,70 130,110 180,85 C220,65 250,95 300,80"/>
    <path d="M500,50 C540,35 570,65 610,45 C640,30 670,55 700,40"/>
    <path d="M20,200 C60,180 100,220 150,195 C185,178 215,205 260,190"/>
    <path d="M580,150 C615,135 640,165 680,150 C705,140 725,160 760,150"/>
  </g>

  <!-- Rain -->
  <g stroke="#e8e4d8" stroke-width="1.5" opacity="0.45">
    <line x1="20" y1="0" x2="-30" y2="90"/>
    <line x1="70" y1="20" x2="20" y2="120"/>
    <line x1="120" y1="0" x2="70" y2="100"/>
    <line x1="170" y1="40" x2="120" y2="150"/>
    <line x1="220" y1="10" x2="170" y2="110"/>
    <line x1="270" y1="60" x2="220" y2="170"/>
    <line x1="320" y1="0" x2="270" y2="100"/>
    <line x1="370" y1="30" x2="320" y2="140"/>
    <line x1="450" y1="0" x2="400" y2="110"/>
    <line x1="500" y1="40" x2="450" y2="150"/>
    <line x1="550" y1="10" x2="500" y2="120"/>
    <line x1="600" y1="60" x2="550" y2="170"/>
    <line x1="650" y1="0" x2="600" y2="100"/>
    <line x1="700" y1="30" x2="650" y2="140"/>
    <line x1="750" y1="10" x2="700" y2="120"/>
    <line x1="800" y1="50" x2="750" y2="160"/>
    <line x1="60" y1="200" x2="10" y2="310"/>
    <line x1="160" y1="230" x2="110" y2="340"/>
    <line x1="260" y1="210" x2="210" y2="320"/>
    <line x1="360" y1="240" x2="310" y2="350"/>
    <line x1="460" y1="220" x2="410" y2="330"/>
    <line x1="560" y1="250" x2="510" y2="360"/>
    <line x1="660" y1="230" x2="610" y2="340"/>
    <line x1="760" y1="260" x2="710" y2="370"/>
    <line x1="90" y1="380" x2="40" y2="490"/>
    <line x1="230" y1="400" x2="180" y2="510"/>
    <line x1="380" y1="380" x2="330" y2="490"/>
    <line x1="520" y1="400" x2="470" y2="510"/>
    <line x1="660" y1="380" x2="610" y2="490"/>
  </g>

  <!-- Sea -->
  <rect x="0" y="470" width="800" height="130" fill="url(#sea)"/>
  <g stroke="#e8e4d8" stroke-width="2" fill="none" opacity="0.5">
    <path d="M0,490 Q40,480 80,492 T160,488 T240,494 T320,486 T400,492"/>
    <path d="M0,520 Q50,508 100,522 T220,516 T340,524 T460,514"/>
    <path d="M480,500 Q540,488 600,500 T740,494 T800,500"/>
  </g>

  <!-- Rocky outcrop -->
  <polygon points="250,600 270,520 320,540 350,470 400,510 440,460 480,500 520,470 560,530 600,510 630,600"
           fill="#4a4238"/>
  <polygon points="300,600 330,550 370,570 400,540 430,565 470,545 500,600"
           fill="#3a3328"/>
  <g stroke="#2b261f" stroke-width="2" opacity="0.6">
    <line x1="320" y1="540" x2="340" y2="600"/>
    <line x1="420" y1="520" x2="440" y2="600"/>
    <line x1="480" y1="510" x2="500" y2="600"/>
  </g>

  <!-- Lighthouse base pier -->
  <rect x="365" y="440" width="90" height="35" fill="#4a4238"/>

  <!-- Lighthouse tower -->
  <polygon points="382,440 418,440 410,210 390,210" fill="#e8e4d8"/>
  <!-- Stripes -->
  <polygon points="384,410 416,410 413,375 387,375" fill="#a63d33"/>
  <polygon points="388,340 412,340 410,305 390,305" fill="#a63d33"/>
  <polygon points="391,270 409,270 407,240 393,240" fill="#a63d33"/>
  <!-- Gallery deck -->
  <rect x="384" y="205" width="32" height="8" fill="#3a3328"/>
  <!-- Lantern room -->
  <rect x="389" y="168" width="22" height="37" fill="#2b261f"/>
  <rect x="392" y="172" width="16" height="28" fill="#f4e04d" opacity="0.9"/>
  <!-- Roof -->
  <polygon points="386,168 414,168 400,145" fill="#2b261f"/>
  <circle cx="400" cy="141" r="3" fill="#2b261f"/>

  <!-- Door -->
  <rect x="393" y="415" width="14" height="25" rx="6" fill="#2b261f"/>
</svg>

request envelope — prompt redacted

{
  "model": "anthropic/claude-sonnet-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": "913c6230-cffd-4220-a05f-aa5c3bf66c4d"
}
SVG · lighthouse-storm · Benchmark Prompts