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 xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 1000">
  <rect width="1000" height="1000" fill="#060B14"/>

  <polygon points="150,0 140,60 170,50 130,120 150,110 90,200 110,190 40,280 45,275 100,195 90,200 140,115 125,120 160,55 140,60 155,0" fill="#FFFFFF"/>
  <polygon points="130,120 80,150 90,140 120,110" fill="#FFFFFF"/>

  <polygon points="0,0 1000,0 1000,300 850,250 700,350 650,300 500,400 450,320 300,420 200,350 0,450" fill="#14243B"/>
  <polygon points="0,0 1000,0 1000,150 900,120 750,200 680,150 550,250 480,200 350,280 250,220 0,300" fill="#324E6B"/>
  
  <polygon points="100,400 300,350 250,380 50,420" fill="#14243B"/>
  <polygon points="400,300 650,200 580,240 350,330" fill="#324E6B"/>
  <polygon points="700,250 950,150 880,190 650,280" fill="#14243B"/>
  <polygon points="1000,50 800,90 850,110 1000,80" fill="#324E6B"/>
  <polygon points="1000,200 600,280 650,300 1000,240" fill="#14243B"/>
  <polygon points="800,350 400,430 460,450 800,380" fill="#14243B"/>
  <polygon points="600,150 300,210 330,230 600,180" fill="#324E6B"/>

  <polygon points="0,650 200,630 400,650 600,600 700,630 850,580 1000,620 1000,1000 0,1000" fill="#060B14"/>

  <polygon points="215,205 1000,-150 1000,-50" fill="#F2C744"/>
  <polygon points="215,205 1000,-50 1000,500" fill="#F2C744"/>
  <polygon points="215,205 1000,100 1000,300" fill="#FFFFFF"/>
  <polygon points="215,205 1000,500 1000,600" fill="#F2C744"/>
  
  <polygon points="185,205 0,100 0,350" fill="#F2C744"/>
  <polygon points="185,205 0,180 0,270" fill="#FFFFFF"/>

  <polygon points="350,-100 365,-100 -35,900 -50,900" fill="#060B14"/>
  <polygon points="420,-100 430,-100 30,900 20,900" fill="#14243B"/>
  <polygon points="480,-100 500,-100 100,900 80,900" fill="#060B14"/>
  <polygon points="560,-100 575,-100 175,900 160,900" fill="#060B14"/>
  <polygon points="640,-100 650,-100 250,900 240,900" fill="#14243B"/>
  <polygon points="720,-100 740,-100 340,900 320,900" fill="#060B14"/>
  <polygon points="800,-100 812,-100 412,900 400,900" fill="#14243B"/>
  <polygon points="880,-100 900,-100 500,900 480,900" fill="#060B14"/>
  <polygon points="980,-100 990,-100 590,900 580,900" fill="#14243B"/>
  <polygon points="1060,-100 1080,-100 680,900 660,900" fill="#060B14"/>
  <polygon points="1140,-100 1165,-100 765,900 740,900" fill="#060B14"/>
  <polygon points="1240,-100 1255,-100 855,900 840,900" fill="#14243B"/>
  <polygon points="1350,-100 1370,-100 970,900 950,900" fill="#060B14"/>
  <polygon points="1420,-100 1430,-100 1030,900 1020,900" fill="#14243B"/>
  <polygon points="1480,-100 1500,-100 1100,900 1080,900" fill="#060B14"/>

  <polygon points="400,-100 402,-100 2,900 0,900" fill="#FFFFFF"/>
  <polygon points="550,-100 552,-100 152,900 150,900" fill="#FFFFFF"/>
  <polygon points="720,-100 723,-100 323,900 320,900" fill="#FFFFFF"/>
  <polygon points="900,-100 901,-100 501,900 500,900" fill="#FFFFFF"/>
  <polygon points="1100,-100 1102,-100 702,900 700,900" fill="#FFFFFF"/>
  <polygon points="1280,-100 1282,-100 882,900 880,900" fill="#FFFFFF"/>

  <polygon points="200,1000 300,750 380,710 420,740 500,660 550,700 650,620 700,680 820,600 880,650 1000,580 1000,1000" fill="#14243B"/>
  <polygon points="400,1000 480,850 550,810 600,840 680,760 740,800 850,720 920,780 1000,700 1000,1000" fill="#324E6B"/>
  <polygon points="1000,1000 700,1000 850,900 900,930 950,850" fill="#14243B"/>
  <polygon points="1000,1000 800,1000 900,950 980,980" fill="#324E6B"/>
  <polygon points="700,1000 500,1000 600,920 650,950 680,880" fill="#060B14"/>
  
  <polygon points="500,660 480,670 460,690 490,670 510,680" fill="#FFFFFF"/>
  <polygon points="650,620 620,640 590,660 630,640 660,650" fill="#FFFFFF"/>
  <polygon points="820,600 790,620 760,640 800,620 830,630" fill="#FFFFFF"/>
  <polygon points="680,760 640,790 600,820 660,780 690,800" fill="#FFFFFF"/>
  <polygon points="850,720 800,760 750,800 820,750 870,760" fill="#FFFFFF"/>
  
  <polygon points="680,760 670,740 685,730" fill="#FFFFFF"/>
  <polygon points="650,770 640,750 655,745" fill="#FFFFFF"/>
  <polygon points="850,720 840,690 860,680" fill="#FFFFFF"/>
  <polygon points="820,740 805,710 825,705" fill="#FFFFFF"/>
  <polygon points="1000,700 980,670 1000,660" fill="#FFFFFF"/>

  <polygon points="0,1000 0,650 50,620 80,660 130,610 180,640 220,600 280,630 350,610 420,680 480,650 550,780 520,850 580,950 450,1000" fill="#060B14"/>
  
  <polygon points="50,620 80,660 60,700 20,660" fill="#14243B"/>
  <polygon points="130,610 180,640 150,690 100,650" fill="#14243B"/>
  <polygon points="220,600 280,630 250,680 190,650" fill="#14243B"/>
  <polygon points="350,610 420,680 380,730 320,660" fill="#14243B"/>
  <polygon points="480,650 550,780 490,820 440,710" fill="#14243B"/>

  <polygon points="150,600 200,600 200,530 155,530" fill="#9B1B22"/>
  <polygon points="200,600 250,600 245,530 200,530" fill="#060B14"/>
  <polygon points="155,530 200,530 200,460 160,460" fill="#FFFFFF"/>
  <polygon points="200,530 245,530 240,460 200,460" fill="#14243B"/>
  <polygon points="160,460 200,460 200,390 165,390" fill="#9B1B22"/>
  <polygon points="200,460 240,460 235,390 200,390" fill="#060B14"/>
  <polygon points="165,390 200,390 200,320 170,320" fill="#FFFFFF"/>
  <polygon points="200,390 235,390 230,320 200,320" fill="#14243B"/>
  <polygon points="170,320 200,320 200,250 175,250" fill="#9B1B22"/>
  <polygon points="200,320 230,320 225,250 200,250" fill="#060B14"/>

  <rect x="195" y="415" width="10" height="20" fill="#F2C744"/>
  <rect x="195" y="415" width="5" height="20" fill="#FFFFFF"/>
  <rect x="195" y="555" width="10" height="20" fill="#F2C744"/>
  <rect x="195" y="555" width="5" height="20" fill="#FFFFFF"/>

  <polygon points="175,250 165,246 175,246" fill="#060B14"/>
  <polygon points="185,250 180,246 185,246" fill="#060B14"/>
  <polygon points="215,250 220,246 215,246" fill="#060B14"/>
  <polygon points="225,250 235,246 225,246" fill="#060B14"/>

  <rect x="160" y="240" width="80" height="6" fill="#060B14"/>
  <rect x="156" y="225" width="88" height="3" fill="#060B14"/>
  <rect x="156" y="225" width="3" height="15" fill="#060B14"/>
  <rect x="170" y="225" width="3" height="15" fill="#060B14"/>
  <rect x="184" y="225" width="3" height="15" fill="#060B14"/>
  <rect x="198" y="225" width="3" height="15" fill="#060B14"/>
  <rect x="212" y="225" width="3" height="15" fill="#060B14"/>
  <rect x="226" y="225" width="3" height="15" fill="#060B14"/>
  <rect x="241" y="225" width="3" height="15" fill="#060B14"/>

  <rect x="175" y="230" width="50" height="10" fill="#14243B"/>
  <rect x="200" y="230" width="25" height="10" fill="#060B14"/>
  
  <rect x="180" y="190" width="40" height="40" fill="#F2C744"/>
  <rect x="190" y="195" width="20" height="30" fill="#FFFFFF"/>
  
  <rect x="180" y="190" width="3" height="40" fill="#060B14"/>
  <rect x="193" y="190" width="3" height="40" fill="#060B14"/>
  <rect x="206" y="190" width="3" height="40" fill="#060B14"/>
  <rect x="219" y="190" width="3" height="40" fill="#060B14"/>

  <polygon points="170,190 200,150 230,190" fill="#9B1B22"/>
  <polygon points="200,150 230,190 200,190" fill="#060B14"/>
  <circle cx="200" cy="145" r="5" fill="#060B14"/>
  <rect x="198" y="130" width="4" height="15" fill="#060B14"/>

  <polygon points="420,680 450,550 430,580 410,500 390,560 350,480 340,570 310,520 320,600 350,610" fill="#FFFFFF"/>
  <polygon points="420,680 450,550 460,600 480,560 470,620 500,600 480,650" fill="#324E6B"/>
  <polygon points="130,610 100,520 120,550 140,500 160,560 180,510 190,580 220,530 250,590 280,510 300,580 270,620" fill="#FFFFFF"/>
  <polygon points="130,610 150,570 170,590 200,560 220,580 250,560 270,620 230,640 180,630" fill="#324E6B"/>

  <polygon points="400,750 410,740 415,755 405,760" fill="#FFFFFF"/>
  <polygon points="430,730 440,715 445,735 435,745" fill="#FFFFFF"/>
  <polygon points="360,680 370,665 375,685 365,695" fill="#FFFFFF"/>
  <polygon points="480,800 495,785 500,805 485,815" fill="#FFFFFF"/>
  <polygon points="320,620 330,605 335,625 325,635" fill="#FFFFFF"/>
  <polygon points="300,580 315,565 320,585 305,595" fill="#FFFFFF"/>

  <path d="M100,-50 L-100,450 M200,-50 L-100,700 M300,-50 L-50,825 M400,-50 L50,825 M500,-50 L100,950 M600,-50 L200,950 M700,-50 L250,1075 M800,-50 L350,1075 M900,-50 L400,1200 M1000,-50 L500,1200 M1100,-50 L600,1200 M1200,-50 L700,1200 M1300,-50 L800,1200" stroke="#324E6B" stroke-width="1.5"/>
  <path d="M50,-50 L-150,450 M150,-50 L-100,575 M250,-50 L-50,700 M350,-50 L50,825 M450,-50 L100,825 M550,-50 L150,950 M650,-50 L200,950 M750,-50 L250,1075 M850,-50 L350,1075 M950,-50 L450,1200 M1050,-50 L550,1200 M1150,-50 L650,1200 M1250,-50 L750,1200" stroke="#14243B" stroke-width="2"/>
  <path d="M150,-50 L-50,450 M350,-50 L0,825 M550,-50 L150,950 M750,-50 L300,1075 M950,-50 L450,1200 M1150,-50 L650,1200" stroke="#FFFFFF" stroke-width="0.75"/>
</svg>

request envelope — prompt redacted

{
  "model": "google/gemini-3.1-pro-preview",
  "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": 32000,
  "gatewayStringId": "46969d2a-0148-4454-b6aa-023c181af8a7"
}