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

I’ll generate a storm-swept SVG scene of a lighthouse on a rocky outcrop, with wind, rain, and a clear beam cutting across the dark sky.
```svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 800">
  <defs>
    <!-- Clip path for the lighthouse tower taper -->
    <clipPath id="towerClip">
      <polygon points="380,580 520,580 480,280 420,280"/>
    </clipPath>
  </defs>

  <!-- BACKGROUND SKY -->
  <rect width="800" height="800" fill="#0A0D14"/>
  
  <!-- STORM CLOUDS -->
  <path d="M 0,0 L 800,0 L 800,250 Q 600,150 400,300 T 0,200 Z" fill="#1E1E24"/>
  <path d="M 0,180 Q 200,100 400,280 T 800,150 L 800,400 L 0,400 Z" fill="#2B3B4B"/>
  <path d="M 0,300 Q 250,200 500,400 T 800,250 L 800,600 L 0,600 Z" fill="#1E1E24"/>

  <!-- LIGHTNING (Right side) -->
  <g fill="none" stroke="#F4F6F9" stroke-linecap="round" stroke-linejoin="round">
    <polyline points="780,0 740,100 760,120 680,250 710,280 620,450 640,480 580,650" stroke-width="4"/>
    <polyline points="760,120 720,160 750,180 700,240" stroke-width="2"/>
    <polyline points="710,280 680,320 700,340 650,400" stroke-width="2"/>
    <polyline points="660,420 640,450 660,470 620,520" stroke-width="1.5"/>
    <polyline points="620,450 580,480 600,500 560,560" stroke-width="1.5"/>
  </g>

  <!-- LIGHTHOUSE BEAM -->
  <!-- Outer glow -->
  <polygon points="450,240 -50,50 -50,430" fill="#FFD166" opacity="0.2"/>
  <!-- Inner glow -->
  <polygon points="450,240 -50,150 -50,330" fill="#F4F6F9" opacity="0.4"/>
  <!-- Core beam -->
  <polygon points="450,240 -50,220 -50,260" fill="#F4F6F9" opacity="0.8"/>

  <!-- OCEAN & WAVES -->
  <ellipse cx="400" cy="680" rx="500" ry="120" fill="#2B3B4B"/>
  <path d="M 0,620 Q 80,600 160,620 T 320,610 T 480,630 T 640,610 T 800,630 L 800,800 L 0,800 Z" fill="#1E1E24"/>
  <path d="M 0,650 Q 100,630 200,650 T 400,640 T 600,660 T 800,640 L 800,800 L 0,800 Z" fill="#0A0D14"/>
  
  <!-- Wave crests and foam lines -->
  <path d="M 0,600 Q 50,580 100,600 T 200,600 T 300,600 T 400,600 T 500,600 T 600,600 T 700,600 T 800,600" fill="none" stroke="#F4F6F9" stroke-width="2" opacity="0.4"/>
  <path d="M 50,620 Q 80,610 120,625 T 200,620" fill="none" stroke="#F4F6F9" stroke-width="2" opacity="0.5"/>
  <path d="M 600,640 Q 640,620 680,645 T 750,640" fill="none" stroke="#F4F6F9" stroke-width="2" opacity="0.5"/>

  <!-- ROCKY OUTCROP -->
  <!-- Background layer -->
  <polygon points="220,800 260,650 320,620 380,640 440,590 500,620 580,580 640,630 700,600 760,650 800,800" fill="#1E1E24"/>
  <!-- Midground layer -->
  <polygon points="260,800 300,680 360,640 420,650 480,610 540,640 600,610 660,660 720,620 780,700" fill="#2B3B4B"/>
  <!-- Foreground layer -->
  <polygon points="280,800 320,720 380,680 440,690 500,650 560,680 620,650 680,700 740,660 800,800" fill="#0A0D14"/>

  <!-- Rock highlights (catching the beam and lightning) -->
  <g fill="none" stroke-linecap="round" stroke-linejoin="round">
    <path d="M 320,720 L 380,680" stroke="#FFD166" stroke-width="3" opacity="0.8"/>
    <path d="M 440,690 L 500,650" stroke="#FFD166" stroke-width="3" opacity="0.9"/>
    <path d="M 420,650 L 480,610" stroke="#FFD166" stroke-width="2" opacity="0.7"/>
    <path d="M 600,650 L 660,700" stroke="#F4F6F9" stroke-width="3" opacity="0.7"/>
    <path d="M 680,700 L 740,660" stroke="#F4F6F9" stroke-width="3" opacity="0.8"/>
    <path d="M 580,610 L 640,630" stroke="#F4F6F9" stroke-width="2" opacity="0.6"/>
  </g>

  <!-- Splashes around the rocks -->
  <g fill="none" stroke="#F4F6F9" stroke-width="2" opacity="0.6" stroke-linecap="round">
    <path d="M 360,640 Q 370,620 380,630" />
    <path d="M 380,630 Q 390,610 400,620" />
    <path d="M 480,610 Q 490,590 500,600" />
    <path d="M 500,600 Q 510,580 520,590" />
    <path d="M 660,660 Q 670,640 680,650" />
  </g>

  <!-- LIGHTHOUSE STRUCTURE -->
  <!-- Base platform -->
  <polygon points="370,610 530,610 540,580 360,580" fill="#1E1E24"/>
  <polygon points="360,620 540,620 530,610 370,610" fill="#0A0D14"/>

  <!-- Main Tower (clipped for taper) -->
  <g clip-path="url(#towerClip)">
    <!-- White tower body -->
    <rect x="370" y="280" width="160" height="300" fill="#F4F6F9"/>
    
    <!-- Red stripes -->
    <rect x="360" y="490" width="180" height="90" fill="#E85D3A"/>
    <rect x="360" y="340" width="180" height="90" fill="#E85D3A"/>
    
    <!-- Windows -->
    <rect x="440" y="515" width="20" height="35" rx="10" fill="#FFD166"/>
    <rect x="445" y="420" width="18" height="30" rx="9" fill="#FFD166"/>
    <rect x="450" y="330" width="14" height="25" rx="7" fill="#FFD166"/>
    
    <!-- Window highlights -->
    <rect x="445" y="520" width="10" height="25" rx="5" fill="#F4F6F9"/>
    <rect x="450" y="425" width="8" height="20" rx="4" fill="#F4F6F9"/>
    <rect x="454" y="334" width="6" height="17" rx="3" fill="#F4F6F9"/>

    <!-- Shadow on the right side of the tower -->
    <polygon points="460,280 480,280 520,580 460,580" fill="#1E1E24" opacity="0.3"/>
  </g>

  <!-- Lantern Room -->
  <!-- Balcony / Base -->
  <polygon points="405,280 495,280 505,260 395,260" fill="#1E1E24"/>
  <rect x="390" y="255" width="120" height="8" rx="2" fill="#F4F6F9"/>
  
  <!-- Glass section -->
  <polygon points="410,255 490,255 480,210 420,210" fill="#FFD166"/>
  
  <!-- Muntins (window frames) -->
  <line x1="430" y1="255" x2="425" y2="210" stroke="#1E1E24" stroke-width="4"/>
  <line x1="470" y1="255" x2="475" y2="210" stroke="#1E1E24" stroke-width="4"/>
  <line x1="450" y1="255" x2="450" y2="210" stroke="#1E1E24" stroke-width="4"/>
  <line x1="415" y1="232" x2="485" y2="232" stroke="#1E1E24" stroke-width="4"/>
  
  <!-- Local lantern glow -->
  <circle cx="450" cy="240" r="60" fill="#FFD166" opacity="0.3"/>
  <circle cx="450" cy="240" r="30" fill="#F4F6F9" opacity="0.5"/>
  <polygon points="410,255 430,255 425,210 410,210" fill="#F4F6F9" opacity="0.6"/>

  <!-- Roof Dome -->
  <path d="M 490,210 Q 450,130 410,210 Z" fill="#E85D3A"/>
  <path d="M 480,210 Q 450,150 420,210 Z" fill="#E85D3A" opacity="0.4"/>
  
  <!-- Roof top details and spire -->
  <rect x="445" y="145" width="10" height="10" fill="#1E1E24"/>
  <circle cx="450" cy="140" r="8" fill="#1E1E24"/>
  <line x1="450" y1="132" x2="450" y2="100" stroke="#1E1E24" stroke-width="4"/>
  <circle cx="450" cy="95" r="6" fill="#1E1E24"/>

  <!-- STORM ELEMENTS (WIND & RAIN) -->
  <!-- Wind gusts -->
  <g fill="none" stroke-linecap="round">
    <path d="M -100,100 Q 100,50 250,150 T 500,100 T 900,200" 
          stroke="#2B3B4B" stroke-width="5" stroke-dasharray="80 30 150 40 60 20"/>
    <path d="M -100,300 Q 150,250 300,350 T 600,300 T 900,450" 
          stroke="#1E1E24" stroke-width="7" stroke-dasharray="40 20 120 40 80 20"/>
    <path d="M -100,500 Q 100,450 250,550 T 500,500 T 900,650" 
          stroke="#2B3B4B" stroke-width="3" stroke-dasharray="100 30 50 20 150 30"/>
    <path d="M -100,200 Q 50,180 150,250 T 400,200 T 800,300" 
          stroke="#1E1E24" stroke-width="4" stroke-dasharray="60 40 100 30" opacity="0.6"/>
  </g>

  <!-- Rain - Background (Slanted via transform) -->
  <g transform="rotate(15, 400, 400)" stroke="#2B3B4B" stroke-width="2" opacity="0.6" fill="none">
    <path d="M 100,-100 L 100,900 M 200,-100 L 200,900 M 300,-100 L 300,900 M 400,-100 L 400,900 M 500,-100 L 500,900 M 600,-100 L 600,900 M 700,-100 L 700,900 M 800,-100 L 800,900" 
          stroke-dasharray="20 30 40 50 10 40"/>
  </g>

  <!-- Rain - Midground -->
  <g transform="rotate(20, 400, 400)" stroke="#1E1E24" stroke-width="3" opacity="0.8" fill="none">
    <path d="M 150,-100 L 150,900 M 250,-100 L 250,900 M 350,-100 L 350,900 M 450,-100 L 450,900 M 550,-100 L 550,900 M 650,-100 L 650,900 M 750,-100 L 750,900" 
          stroke-dasharray="30 20 60 25 15 35"/>
  </g>

  <!-- Rain - Foreground (catches the light) -->
  <g transform="rotate(25, 400, 400)" stroke="#F4F6F9" stroke-width="1.5" opacity="0.5" fill="none">
    <path d="M 50,-100 L 50,900 M 150,-100 L 150,900 M 250,-100 L 250,900 M 350,-100 L 350,900 M 450,-100 L 450,900 M 550,-100 L 550,900 M 650,-100 L 650,900 M 750,-100 L 750,900" 
          stroke-dasharray="10 25 35 40 20 15"/>
  </g>
</svg>
```
The composition uses a restrained palette of six colors, with layered clouds, slanted rain lines, and curved wind strokes to build the storm atmosphere. The lighthouse stands at center-right on jagged rocks, while its bright beam and warm lantern glow contrast strongly against the night sky and sea.

request envelope — prompt redacted

{
  "model": "deepseek/deepseek-v4-pro",
  "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": "fe6a6f66-4ed7-4df8-8302-305b7500d370"
}