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 1200 800" role="img" aria-label="A lighthouse standing on a rocky outcrop during a storm">
  <rect width="1200" height="800" fill="#0B1726"/>

  <!-- Storm clouds -->
  <g fill="#20394A">
    <path d="M0 86C65 50 127 68 160 103C194 34 302 28 347 95C390 62 463 68 486 118C404 143 279 137 177 148C103 156 41 138 0 124Z"/>
    <path d="M695 55C753 19 832 36 861 86C905 31 1012 44 1037 105C1093 73 1163 92 1200 133V194C1109 183 1050 154 952 165C855 177 777 151 690 141Z"/>
    <path d="M198 180C245 143 318 150 346 196C390 158 469 171 487 221C427 244 354 231 292 245C237 257 176 232 152 210Z"/>
  </g>
  <g fill="#587286" opacity=".55">
    <path d="M0 142C88 111 160 138 218 174C144 186 71 191 0 177Z"/>
    <path d="M749 123C826 93 911 119 960 158C881 174 807 166 728 151Z"/>
    <path d="M1000 219C1065 186 1148 203 1200 240V274C1121 266 1066 248 987 255Z"/>
  </g>

  <!-- Lighthouse beam -->
  <path d="M548 253L1200 83V382L548 271Z" fill="#D8C36B" opacity=".63"/>
  <path d="M548 256L1200 151V310L548 268Z" fill="#E7E0C8" opacity=".22"/>
  <path d="M554 260L1200 217V266L554 265Z" fill="#D8C36B" opacity=".82"/>

  <!-- Wind -->
  <g fill="none" stroke="#587286" stroke-width="7" stroke-linecap="round" opacity=".8">
    <path d="M47 275C168 228 279 259 377 236C428 224 451 195 425 178"/>
    <path d="M75 324C196 284 304 317 391 290"/>
    <path d="M741 404C852 363 965 392 1074 353C1121 336 1166 306 1192 280"/>
    <path d="M792 456C882 428 962 450 1037 425"/>
  </g>
  <g fill="none" stroke="#E7E0C8" stroke-width="3" stroke-linecap="round" opacity=".45">
    <path d="M27 298C132 264 225 286 317 269"/>
    <path d="M811 379C902 351 1004 370 1116 329"/>
    <path d="M93 368C164 345 221 360 276 349"/>
  </g>

  <!-- Driving rain -->
  <g fill="none" stroke="#587286" stroke-width="5" stroke-linecap="round" opacity=".88">
    <path d="M80 41l-26 70M177 18l-28 77M280 68l-25 68M394 20l-30 82M506 65l-28 77M624 14l-31 86M738 62l-28 78M849 8l-29 80M967 57l-31 84M1086 19l-29 80M1174 85l-24 67"/>
    <path d="M42 194l-25 68M143 166l-28 77M251 244l-25 68M355 147l-30 82M469 210l-26 72M651 175l-30 83M763 237l-25 69M878 157l-28 77M993 229l-26 73M1112 168l-29 80"/>
    <path d="M87 401l-29 80M204 358l-26 72M319 427l-25 69M692 365l-29 80M825 486l-25 69M938 401l-30 83M1061 470l-27 75M1174 382l-29 80"/>
  </g>
  <g fill="none" stroke="#E7E0C8" stroke-width="3" stroke-linecap="round" opacity=".55">
    <path d="M116 116l-19 51M327 279l-18 49M453 101l-20 54M679 263l-20 55M903 99l-19 51M1035 315l-20 55M565 378l-18 49M164 500l-19 52M1138 249l-18 49"/>
  </g>

  <!-- Distant sea -->
  <path d="M0 536C83 504 150 565 226 535C305 504 367 566 447 536C529 505 599 561 678 532C759 502 826 559 908 530C993 500 1068 559 1200 516V800H0Z" fill="#20394A"/>
  <g fill="none" stroke="#587286" stroke-width="10" stroke-linecap="round">
    <path d="M0 578C68 540 131 540 191 578C250 616 316 611 371 568C426 525 491 536 552 580"/>
    <path d="M707 573C770 530 837 535 899 574C965 615 1023 604 1083 562C1121 535 1158 531 1200 550"/>
    <path d="M17 665C85 624 151 635 214 672C274 707 332 705 393 663"/>
    <path d="M783 680C847 638 910 643 971 681C1032 719 1090 706 1148 667"/>
  </g>

  <!-- Foam and breaking waves -->
  <g fill="#E7E0C8">
    <path d="M0 568C49 531 95 529 137 553C94 551 69 566 52 592C34 586 17 580 0 584Z"/>
    <path d="M743 576C791 529 849 527 898 559C853 552 820 569 802 600C782 589 763 582 743 576Z"/>
    <path d="M1010 611C1054 571 1112 570 1154 600C1114 593 1085 610 1068 638C1048 628 1029 619 1010 611Z"/>
    <path d="M178 698C218 664 269 666 307 693C268 686 242 701 226 725C210 715 194 706 178 698Z"/>
  </g>

  <!-- Rocky outcrop -->
  <path d="M245 800L270 736L321 706L344 650L395 625L438 579L484 603L525 567L576 608L622 589L658 634L716 654L735 707L797 742L824 800Z" fill="#0B1726"/>
  <path d="M286 800L321 730L367 714L389 658L440 621L472 641L510 604L539 647L581 627L624 665L686 688L714 744L772 800Z" fill="#20394A"/>
  <path d="M351 713L398 672L437 661L420 705L377 739Z" fill="#587286"/>
  <path d="M548 673L592 651L636 682L606 716L557 710Z" fill="#587286"/>
  <path d="M664 718L712 744L742 790H681L642 759Z" fill="#587286"/>

  <!-- Lighthouse tower -->
  <path d="M456 627L487 303Q539 286 590 303L622 627Z" fill="#E7E0C8"/>
  <path d="M550 296Q571 297 590 303L622 627L566 612Z" fill="#587286" opacity=".75"/>

  <!-- Red storm bands -->
  <path d="M476 410L601 410L610 490L468 490Z" fill="#8A3E37"/>
  <path d="M461 554L616 554L622 627L456 627Z" fill="#8A3E37"/>
  <path d="M484 337L594 337L601 395L478 395Z" fill="#8A3E37"/>

  <!-- Tower openings -->
  <path d="M519 446Q539 429 559 446V482H519Z" fill="#0B1726"/>
  <rect x="523" y="516" width="33" height="46" rx="15" fill="#0B1726"/>
  <path d="M514 585Q539 560 564 585V627H514Z" fill="#0B1726"/>
  <path d="M525 354Q539 342 553 354V378H525Z" fill="#D8C36B"/>

  <!-- Gallery platform -->
  <rect x="465" y="288" width="149" height="13" rx="5" fill="#0B1726"/>
  <rect x="478" y="277" width="123" height="8" fill="#E7E0C8"/>
  <g fill="#0B1726">
    <rect x="481" y="253" width="6" height="34"/>
    <rect x="503" y="253" width="6" height="34"/>
    <rect x="526" y="253" width="6" height="34"/>
    <rect x="549" y="253" width="6" height="34"/>
    <rect x="572" y="253" width="6" height="34"/>
    <rect x="595" y="253" width="6" height="34"/>
    <rect x="478" y="251" width="126" height="6"/>
  </g>

  <!-- Lantern room -->
  <rect x="495" y="221" width="88" height="65" fill="#E7E0C8"/>
  <rect x="505" y="230" width="68" height="48" fill="#D8C36B"/>
  <circle cx="548" cy="254" r="15" fill="#E7E0C8"/>
  <g fill="#0B1726">
    <rect x="493" y="216" width="92" height="10"/>
    <rect x="494" y="278" width="91" height="9"/>
    <rect x="505" y="222" width="7" height="60"/>
    <rect x="534" y="222" width="7" height="60"/>
    <rect x="565" y="222" width="7" height="60"/>
  </g>

  <!-- Roof and finial -->
  <path d="M481 219Q539 174 597 219L583 231H495Z" fill="#8A3E37"/>
  <rect x="535" y="174" width="8" height="20" fill="#0B1726"/>
  <path d="M539 158L548 176H530Z" fill="#E7E0C8"/>

  <!-- Foreground spray -->
  <g fill="none" stroke="#E7E0C8" stroke-width="8" stroke-linecap="round">
    <path d="M254 723C220 686 213 650 229 617"/>
    <path d="M269 719C258 674 269 644 293 620"/>
    <path d="M783 754C829 715 842 677 829 646"/>
  </g>
  <g fill="#E7E0C8">
    <circle cx="225" cy="608" r="7"/>
    <circle cx="242" cy="631" r="5"/>
    <circle cx="298" cy="611" r="6"/>
    <circle cx="832" cy="636" r="7"/>
    <circle cx="850" cy="666" r="5"/>
  </g>

  <!-- Foreground rain -->
  <g fill="none" stroke="#E7E0C8" stroke-width="4" stroke-linecap="round" opacity=".7">
    <path d="M62 606l-25 69M132 690l-22 61M332 560l-27 74M733 592l-25 70M919 628l-25 69M1093 577l-27 75M1181 686l-22 61"/>
  </g>
</svg>

request envelope — prompt redacted

{
  "model": "openai/gpt-5.6-sol",
  "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": "90a83792-ef53-41af-8207-229c287092e6"
}