Skateboarding astronaut catOne-line
GPT-6 Luna
by OpenAIReasoningClean
Running live in a sandboxed frame. Click inside it before using the keyboard.
How it went
- Total time
- 2 min 19 s
- Cost
- $0.0052
- Output tokens
- 10,427
- Spent thinking
- 4,077 tokens
- Speed
- 118.9 tok/s
- Console errors
- 0
- First token after
- 51.4 s
- First visible text after
- 1 min 8 s
- Prompt tokens
- 347
- Code size
- 15.6 KB
- Finish reason
- stop
- Served by
- OpenAI
- Model id
openai/gpt-6-luna- Reasoning sent
{"effort":"xhigh"}- Max output
- 64,000 tokens
- Generated
- Nov 10, 2026
What it was asked
The prompt
“draw me an SVG of an astronaut cat skateboarding on the moon”
System prompt, sent with every prompt
You are generating a self-contained web demo. It will be rendered automatically in a sandboxed iframe and compared side by side with the output of other AI models given the exact same task. Output rules: - Reply with exactly ONE fenced code block containing the complete file: ```html (or ```svg when the task asks for an SVG). No text before or after the code block. - Everything must be inline: CSS in <style>, JavaScript in <script>. No external files, images, fonts or network requests, except the CDN URLs explicitly allowed by the task. - Do not use localStorage, sessionStorage, cookies, IndexedDB, alert(), confirm(), prompt() or window.open(): they are blocked in the sandbox and will throw. - The page must look right in a 1280×800 viewport and adapt gracefully down to 375px wide. No horizontal scrollbar. - Something meaningful must be visible on first paint: a screenshot is taken automatically about 3 seconds after load, without any interaction. - Everything that makes the demo interesting must be visible within the first seconds: nothing hidden behind a high score, a later level or a long play session. - Games must start in a self-playing demo mode (a simple AI plays) behind a "Click or press a key to start" message, so the game can be judged in action without playing. - The iframe only receives keyboard events after the user clicks it: if the demo uses the keyboard, display a clear "Click or press a key to start" message. - The code must run with zero errors in the console of the latest Chrome.
Code run-1.svg · 273 lines
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 800" role="img" aria-labelledby="title desc">
<title id="title">Astronaut cat skateboarding on the moon</title>
<desc id="desc">A cheerful orange-and-white cat in a spacesuit rides a skateboard across a softly lit lunar landscape, with Earth and stars overhead.</desc>
<defs>
<linearGradient id="space" x2="0" y2="1">
<stop stop-color="#101a3b"/>
<stop offset=".57" stop-color="#243b69"/>
<stop offset="1" stop-color="#50658c"/>
</linearGradient>
<radialGradient id="halo">
<stop stop-color="#a5eaff" stop-opacity=".3"/>
<stop offset=".55" stop-color="#83bbf4" stop-opacity=".12"/>
<stop offset="1" stop-color="#759ce4" stop-opacity="0"/>
</radialGradient>
<linearGradient id="moon" x2=".12" y2="1">
<stop stop-color="#e1e6e6"/>
<stop offset=".45" stop-color="#b7c2cb"/>
<stop offset="1" stop-color="#818fa2"/>
</linearGradient>
<linearGradient id="ridge" x2="0" y2="1">
<stop stop-color="#8797ae"/>
<stop offset="1" stop-color="#586b89"/>
</linearGradient>
<linearGradient id="earth" x2=".8" y2="1">
<stop stop-color="#75e4f4"/>
<stop offset=".55" stop-color="#3989d0"/>
<stop offset="1" stop-color="#294a9b"/>
</linearGradient>
<linearGradient id="visor" x2=".8" y2="1">
<stop stop-color="#e9ffff" stop-opacity=".25"/>
<stop offset=".5" stop-color="#8fe4ff" stop-opacity=".08"/>
<stop offset="1" stop-color="#236cbb" stop-opacity=".25"/>
</linearGradient>
<linearGradient id="suit" x2=".9" y2="1">
<stop stop-color="#fffefa"/>
<stop offset=".55" stop-color="#e3edf1"/>
<stop offset="1" stop-color="#b9cbd5"/>
</linearGradient>
<linearGradient id="board" x2="0" y2="1">
<stop stop-color="#ffad59"/>
<stop offset=".48" stop-color="#ff7951"/>
<stop offset="1" stop-color="#d95151"/>
</linearGradient>
<linearGradient id="boot" x2="0" y2="1">
<stop stop-color="#f9ffff"/>
<stop offset="1" stop-color="#c1d1db"/>
</linearGradient>
<filter id="softGlow" x="-100%" y="-100%" width="300%" height="300%">
<feGaussianBlur stdDeviation="15"/>
</filter>
<filter id="shadow" x="-50%" y="-100%" width="200%" height="300%">
<feGaussianBlur stdDeviation="8"/>
</filter>
<clipPath id="visorClip">
<circle cx="620" cy="293" r="84"/>
</clipPath>
</defs>
<!-- Deep space -->
<rect width="1280" height="800" fill="url(#space)"/>
<ellipse cx="628" cy="390" rx="408" ry="330" fill="url(#halo)"/>
<circle cx="632" cy="382" r="260" fill="#8acdf8" opacity=".045" filter="url(#softGlow)"/>
<!-- Stars -->
<g fill="#f4fbff">
<circle cx="76" cy="191" r="2"/><circle cx="144" cy="304" r="1.7"/>
<circle cx="208" cy="144" r="2.3"/><circle cx="275" cy="242" r="1.5"/>
<circle cx="352" cy="101" r="1.8"/><circle cx="428" cy="185" r="1.5"/>
<circle cx="487" cy="113" r="2"/><circle cx="562" cy="171" r="1.4"/>
<circle cx="726" cy="130" r="1.6"/><circle cx="784" cy="206" r="2"/>
<circle cx="848" cy="102" r="1.5"/><circle cx="907" cy="279" r="1.7"/>
<circle cx="1117" cy="302" r="1.7"/><circle cx="1195" cy="211" r="2"/>
<circle cx="1222" cy="354" r="1.5"/><circle cx="103" cy="401" r="1.4"/>
<circle cx="315" cy="366" r="1.7"/><circle cx="945" cy="130" r="1.5"/>
<circle cx="1115" cy="88" r="1.5"/><circle cx="1165" cy="416" r="1.8"/>
</g>
<g stroke="#dff7ff" stroke-width="2" stroke-linecap="round" opacity=".83">
<path d="M104 104v14m-7-7h14"/><path d="M337 300v12m-6-6h12"/>
<path d="M872 178v14m-7-7h14"/><path d="M1172 132v12m-6-6h12"/>
<path d="M1012 365v10m-5-5h10"/>
</g>
<g fill="#b1e7ff" opacity=".8">
<path d="M253 91l3 8 8 3-8 3-3 8-3-8-8-3 8-3z"/>
<path d="M923 338l2.5 7 7 2.5-7 2.5-2.5 7-2.5-7-7-2.5 7-2.5z"/>
</g>
<!-- Earth -->
<circle cx="1058" cy="182" r="70" fill="#92ecff" opacity=".23"/>
<circle cx="1058" cy="182" r="62" fill="url(#earth)" stroke="#b4f1ff" stroke-width="2"/>
<path d="M1021 144c11-12 22-10 30-5l-4 14 11 9-9 12-15-3-10 9-13-8 5-14-8-7z
M1074 195l15-8 17 7 3 14-14 9-3 17-14 8-7-15 5-13-10-8z
M1094 148l12 3 8 12-11 8-12-9z"
fill="#7dd1c0" opacity=".8"/>
<path d="M1016 143c23-25 56-30 82-12" fill="none" stroke="#e6fbff" stroke-width="5" opacity=".65"/>
<!-- Distant lunar ridges -->
<path d="M0 557 Q116 513 232 541T450 526Q550 498 663 540T873 526Q986 480 1080 520T1280 495V800H0Z" fill="url(#ridge)"/>
<path d="M0 584Q146 544 273 569T516 546Q652 523 760 559T997 542Q1123 505 1280 535V800H0Z" fill="#7889a1" opacity=".72"/>
<!-- Foreground moon -->
<path d="M0 583Q127 558 251 584T491 560Q622 535 754 572T1018 551Q1142 519 1280 543V800H0Z" fill="url(#moon)"/>
<path d="M0 627Q157 585 300 621T580 593Q734 568 881 608T1138 581Q1215 567 1280 576V800H0Z" fill="#c5ced2" opacity=".46"/>
<!-- Moon craters and surface marks -->
<g opacity=".45">
<ellipse cx="179" cy="659" rx="73" ry="17" fill="#7c8c9e"/>
<ellipse cx="179" cy="654" rx="70" ry="13" fill="#dce2e1"/>
<ellipse cx="179" cy="655" rx="44" ry="7" fill="#9ba9b2" opacity=".65"/>
<ellipse cx="1032" cy="687" rx="98" ry="22" fill="#8291a0"/>
<ellipse cx="1032" cy="680" rx="92" ry="17" fill="#d6dcda"/>
<ellipse cx="1032" cy="682" rx="60" ry="10" fill="#a3b0b6"/>
<ellipse cx="1166" cy="602" rx="39" ry="10" fill="#e8ece9" opacity=".8"/>
<path d="M75 735q42-16 80 0m118 26q35-11 65 1m786-22q39-13 81-2"
fill="none" stroke="#f1f5f2" stroke-width="3" stroke-linecap="round"/>
</g>
<g fill="#718299" opacity=".42">
<circle cx="92" cy="618" r="3"/><circle cx="290" cy="691" r="4"/>
<circle cx="369" cy="612" r="2.5"/><circle cx="934" cy="634" r="3"/>
<circle cx="1189" cy="729" r="4"/><circle cx="860" cy="723" r="2.5"/>
<circle cx="324" cy="754" r="2"/><circle cx="1110" cy="633" r="2"/>
</g>
<!-- Small poster-like caption -->
<g font-family="Arial, Helvetica, sans-serif" fill="#f0f8ff">
<text x="72" y="83" font-size="13" letter-spacing="4" opacity=".78">THE LUNAR SKATE CLUB</text>
<path d="M72 99h110" stroke="#83e5ee" stroke-width="2"/>
<text x="72" y="129" font-size="22" font-weight="700" letter-spacing="1.5">MOON RIDE</text>
<text x="73" y="151" font-size="11" letter-spacing="2.5" opacity=".7">ZERO GRAVITY. FULL SEND.</text>
</g>
<!-- Dust and motion trails -->
<g fill="none" stroke="#f3fbff" stroke-linecap="round" opacity=".72">
<path d="M288 546q65-20 130-8" stroke-width="3"/>
<path d="M321 563q49-14 85-8" stroke-width="2"/>
<path d="M376 583q30-8 55-4" stroke-width="2"/>
</g>
<g fill="#f6fbf7" opacity=".78">
<circle cx="338" cy="604" r="4"/><circle cx="375" cy="582" r="2.5"/>
<circle cx="400" cy="614" r="3"/><circle cx="432" cy="592" r="2"/>
<circle cx="379" cy="626" r="1.8"/>
</g>
<!-- Rider's ground shadow -->
<ellipse cx="652" cy="681" rx="259" ry="29" fill="#33465e" opacity=".3" filter="url(#shadow)"/>
<!-- Skateboard wheels and trucks -->
<g stroke="#24364f" stroke-linejoin="round" stroke-linecap="round">
<path d="M500 647l-7 24m18-27 6 22M797 611l-6 20m18-23 7 18"
fill="none" stroke="#53647a" stroke-width="8"/>
<path d="M487 667q14-10 30-8m-18 13q15-9 31-7M783 627q14-9 30-7m-20 13q14-9 29-7"
fill="none" stroke="#d7e1e5" stroke-width="5"/>
<circle cx="494" cy="678" r="13" fill="#26364e" stroke-width="3"/>
<circle cx="525" cy="672" r="13" fill="#26364e" stroke-width="3"/>
<circle cx="791" cy="637" r="13" fill="#26364e" stroke-width="3"/>
<circle cx="821" cy="631" r="13" fill="#26364e" stroke-width="3"/>
<circle cx="494" cy="678" r="5" fill="#9ce5ed" stroke="none"/>
<circle cx="525" cy="672" r="5" fill="#9ce5ed" stroke="none"/>
<circle cx="791" cy="637" r="5" fill="#9ce5ed" stroke="none"/>
<circle cx="821" cy="631" r="5" fill="#9ce5ed" stroke="none"/>
</g>
<!-- Skateboard deck -->
<path d="M411 646Q637 602 881 585L896 599Q662 646 424 675Q414 671 411 660Z"
fill="url(#board)" stroke="#263850" stroke-width="6" stroke-linejoin="round"/>
<path d="M425 651Q644 612 876 594" fill="none" stroke="#ffd181" stroke-width="4" opacity=".85"/>
<path d="M445 660Q659 621 859 601" fill="none" stroke="#ec5d51" stroke-width="3" opacity=".7"/>
<g fill="#fff4dd" opacity=".9">
<circle cx="477" cy="646" r="3"/><circle cx="493" cy="643" r="3"/>
<circle cx="509" cy="640" r="3"/><circle cx="525" cy="637" r="3"/>
<circle cx="541" cy="634" r="3"/><circle cx="557" cy="631" r="3"/>
<circle cx="573" cy="628" r="3"/><circle cx="589" cy="625" r="3"/>
</g>
<text x="647" y="626" transform="rotate(-10 647 626)" font-family="Arial, sans-serif"
font-weight="700" font-size="14" letter-spacing="3" fill="#fff6e4">LUNA</text>
<!-- Suit backpack -->
<path d="M663 413Q686 405 701 422L714 483Q713 504 694 511L676 504Z"
fill="#b9ccd5" stroke="#253750" stroke-width="6" stroke-linejoin="round"/>
<path d="M683 427l18 2 8 37-21 5z" fill="#e8f0ef" stroke="#7f96a7" stroke-width="3"/>
<path d="M690 443l16-1m-14 10 17-1" stroke="#7a91a4" stroke-width="3" stroke-linecap="round"/>
<circle cx="702" cy="487" r="5" fill="#ff9a5d"/>
<!-- Left balancing arm -->
<path d="M571 407Q551 395 525 390L480 384Q457 383 441 394L415 411Q407 418 414 425Q420 431 427 426L448 412L478 414Q514 449 560 456L586 431Z"
fill="url(#suit)" stroke="#263750" stroke-width="7" stroke-linejoin="round"/>
<path d="M468 396Q462 407 461 418" fill="none" stroke="#9aafbd" stroke-width="5" stroke-linecap="round"/>
<path d="M419 408Q431 398 444 398L455 409 442 426Q432 432 422 426Z"
fill="#f7fbf8" stroke="#263750" stroke-width="6" stroke-linejoin="round"/>
<path d="M423 411l10-5m-8 12 10-6" stroke="#9aafbd" stroke-width="2.5" stroke-linecap="round"/>
<!-- Right balancing arm -->
<path d="M671 406Q696 390 716 374L754 359Q774 352 790 363L817 382Q825 389 819 397Q814 404 806 398L783 384L757 391Q731 431 690 454L665 433Z"
fill="url(#suit)" stroke="#263750" stroke-width="7" stroke-linejoin="round"/>
<path d="M744 369Q750 379 757 392" fill="none" stroke="#9aafbd" stroke-width="5" stroke-linecap="round"/>
<path d="M785 362Q799 356 809 366L821 382Q826 392 817 398L806 401 790 385Z"
fill="#f7fbf8" stroke="#263750" stroke-width="6" stroke-linejoin="round"/>
<path d="M802 369l10 10m-17-5 10 11" stroke="#9aafbd" stroke-width="2.5" stroke-linecap="round"/>
<!-- Bent legs -->
<path d="M589 508Q569 518 547 540L524 560Q515 570 522 581L542 598Q552 603 560 592L582 571Q600 559 623 547L632 522Z"
fill="url(#suit)" stroke="#263750" stroke-width="7" stroke-linejoin="round"/>
<path d="M652 511Q675 519 695 539L710 554Q720 565 713 576L696 592Q686 598 677 588L657 570Q640 555 620 547L625 521Z"
fill="url(#suit)" stroke="#263750" stroke-width="7" stroke-linejoin="round"/>
<path d="M528 566Q540 566 550 577M689 559q12 0 20 10" fill="none" stroke="#94aab7" stroke-width="4" stroke-linecap="round"/>
<path d="M540 565l13 12m-9-20 13 12M693 553l13 13m-8-21 13 13"
fill="none" stroke="#d9e4e7" stroke-width="3" stroke-linecap="round"/>
<!-- Suit torso -->
<path d="M566 405Q581 386 607 382L641 383Q667 390 682 410L689 462L681 510Q674 539 643 553L616 560Q584 551 563 529Q551 512 550 482L552 439Z"
fill="url(#suit)" stroke="#263750" stroke-width="7" stroke-linejoin="round"/>
<path d="M574 417Q588 403 606 400m48 5q12 8 17 21" fill="none" stroke="#fff" stroke-width="5" opacity=".9" stroke-linecap="round"/>
<path d="M618 399v20" stroke="#8ea4b1" stroke-width="4" stroke-linecap="round"/>
<path d="M611 419h49v62h-49z" rx="8" fill="#738fa4" stroke="#263750" stroke-width="5"/>
<rect x="619" y="427" width="33" height="28" rx="5" fill="#d5f5ee"/>
<path d="M624 448l7-11 7 7 8-12" fill="none" stroke="#3faaa7" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="625" cy="466" r="3" fill="#ff9c62"/><circle cx="637" cy="466" r="3" fill="#8ce0e7"/>
<path d="M575 480q-12 4-19 14m124-7 8 10" fill="none" stroke="#91a8b5" stroke-width="4" stroke-linecap="round"/>
<path d="M567 510q48 25 105 0" fill="none" stroke="#c5d5dc" stroke-width="4"/>
<!-- Left boot -->
<path d="M515 588Q529 589 548 599L556 619L576 633Q585 639 580 647Q577 652 566 652H496Q484 650 487 638L498 614Z"
fill="url(#boot)" stroke="#263750" stroke-width="7" stroke-linejoin="round"/>
<path d="M498 630Q526 636 564 632L580 641Q580 651 568 652H497Q486 649 489 640Z"
fill="#52677f" stroke="#263750" stroke-width="4" stroke-linejoin="round"/>
<path d="M512 603l28 9m-34-1 28 9" stroke="#8ba2b1" stroke-width="4" stroke-linecap="round"/>
<path d="M506 597q18-8 34 4l-3 10q-18-8-34-1z" fill="#8ce1e7" stroke="#263750" stroke-width="3"/>
<!-- Right boot -->
<path d="M691 574Q706 571 724 581L738 599L760 607Q771 611 769 620Q767 628 755 628H701Q687 626 687 615L684 591Z"
fill="url(#boot)" stroke="#263750" stroke-width="7" stroke-linejoin="round"/>
<path d="M689 608Q724 614 758 608L769 616Q768 627 755 628H701Q688 627 687 618Z"
fill="#52677f" stroke="#263750" stroke-width="4" stroke-linejoin="round"/>
<path d="M702 588l27 11m-30-2 25 10" stroke="#8ba2b1" stroke-width="4" stroke-linecap="round"/>
<path d="M694 582q17-9 34 2l2 10q-19-8-35 1z" fill="#8ce1e7" stroke="#263750" stroke-width="3"/>
<!-- Helmet shell and cat inside visor -->
<circle cx="620" cy="293" r="101" fill="#dce7eb" stroke="#263750" stroke-width="8"/>
<circle cx="620" cy="293" r="85" fill="#72c6e1" stroke="#94b5c6" stroke-width="3"/>
<g clip-path="url(#visorClip)">
<path d="M552 310L550 245Q550 232 562 239L593 263Q620 251 647 263L676 239Q689 232 690 246L686 314Q682 350 651 365H587Q557 350 552 310Z"
fill="#e78b50" stroke="#513b45" stroke-width="5" stroke-linejoin="round"/>
<!-- Inner ears -->
<path d="M559 246L565 276 588 267Z" fill="#f4b4a3"/>
<path d="M681 246L674 276 651 267Z" fill="#f4b4a3"/>
<!-- White face blaze and cheeks -->
<path d="M606 275Q620 266 634 275L643 303Q641 321 620 328Q599 321 597 303Z" fill="#fff4dc"/>
<path d="M568 309Q576 291 593 296Q606 299 610 315Q604 336 585 337Q569 332 568 309Z" fill="#fff4dc"/>
<path d="M630 315Q635 299 649 296Q666 292 674 309Q675 331 657 337Q638 336 630 315Z" fill="#fff4dc"/>
<!-- Eyes -->
<ellipse cx="591" cy="302" rx="6.5" ry="9" fill="#25364d"/>
<ellipse cx="649" cy="302" rx="6.5" ry="9" fill="#25364d"/>
<circle cx="589" cy="299" r="2.2" fill="#fff"/>
<circle cx="647" cy="299" r="2.2" fill="#fff"/>
<!-- Nose and smile -->
<path d="M616 317Q620 313 624 317Q623 322 620 322Q617 321 616 317Z" fill="#e66d70"/>
<path d="M620 322v6m0 0q-7 8-13 0m13 0q7 8 13 0" fill="none" stroke="#6d4650" stroke-width="2.5" stroke-linecap="round"/>
<!-- Whiskers -->
<g fill="none" stroke="#d7a77f" stroke-width="2" stroke-linecap="round">
<path d="M581 315l-15-4m15 10-17 2m120-8 15-4m-15 10 17 2"/>
</g>
<!-- Glass reflections -->
<path d="M548 265Q562 225 599 216Q568 252 559 291Z" fill="#fff" opacity=".25"/>
<path d="M668 226q13 8 20 22" fill="none" stroke="#fff" stroke-width="5" opacity=".35" stroke-linecap="round"/>
</g>
<!-- Visor tint and frame details -->
<circle cx="620" cy="293" r="85" fill="url(#visor)" opacity=".7"/>
<path d="M554 249Q567 211 605 208M669 216q25 10 35 34" fill="none" stroke="#fff" stroke-width="5" opacity=".65" stroke-linecap="round"/>
<circle cx="520" cy="294" r="11" fill="#a6bdc9" stroke="#263750" stroke-width="5"/>
<circle cx="720" cy="294" r="11" fill="#a6bdc9" stroke="#263750" stroke-width="5"/>
<path d="M592 386Q620 397 649 386" fill="none" stroke="#a8bbc5" stroke-width="7" stroke-linecap="round"/>
<path d="M594 389Q620 399 646 389" fill="none" stroke="#eef5f4" stroke-width="3" stroke-linecap="round"/>
</svg>Reasoning trace (4,077 tokens)
**Creating a poster design** I’m thinking about how to add atmosphere with stars and a glowing aura around the cat. I might place some typography in the upper left corner, possibly a title like "LUNAR / BOARDING" in a simple sans typeface. I wonder if "MOON / SURFER" would work better, but it might be too distracting. There could also be a small title block saying "ONE SMALL STEP" and a subtitle "ONE GIANT RIDE." It seems important to keep the design aesthetic and clear while making the cat the focal point. I’ll need to check the SVG syntax and details.**Designing the SVG layout** I’m working with SVG code, focusing on creating a large scene where the moon overlaps the terrain. The stars will be simple circles with some four-point glints. I want to get the character's scale right: a head radius of 100 and a body height of 190, making the total around 450 with the board. I think I need to add a head clip and carefully consider the layer order to ensure everything appears correctly. Shadow under the board and detailing the wheels and deck will be vital too.