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
- 46.2 s
- Cost
- $0.0021
- Output tokens
- 4,194
- Spent thinking
- 124 tokens
- Speed
- 125.9 tok/s
- Console errors
- 0
- First token after
- 12.9 s
- First visible text after
- 14.0 s
- Prompt tokens
- 347
- Code size
- 10.0 KB
- Finish reason
- stop
- Served by
- OpenAI
- Model id
openai/gpt-6-luna- Reasoning sent
{"effort":"low"}- 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 · 181 lines
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 800" role="img" aria-labelledby="title desc">
<title id="title">Moonboarder</title>
<desc id="desc">A cheerful astronaut cat skateboards across a cratered moon beneath a starry sky.</desc>
<defs>
<linearGradient id="sky" x2="0" y2="1">
<stop stop-color="#101b3c"/>
<stop offset="1" stop-color="#292e58"/>
</linearGradient>
<linearGradient id="moon" x2=".2" y2="1">
<stop stop-color="#e5e2dd"/>
<stop offset="1" stop-color="#aaaebd"/>
</linearGradient>
<linearGradient id="visor" x2=".9" y2="1">
<stop stop-color="#a8f1fa" stop-opacity=".86"/>
<stop offset=".45" stop-color="#416c9d" stop-opacity=".92"/>
<stop offset="1" stop-color="#17294f"/>
</linearGradient>
<linearGradient id="board" x2="0" y2="1">
<stop stop-color="#ffb856"/>
<stop offset="1" stop-color="#e85f64"/>
</linearGradient>
<filter id="shadow" x="-.3" y="-.3" width="1.6" height="1.7">
<feGaussianBlur stdDeviation="8"/>
</filter>
<filter id="glow" x="-.5" y="-.5" width="2" height="2">
<feGaussianBlur stdDeviation="2.5" result="b"/>
<feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Deep space -->
<rect width="1280" height="800" fill="url(#sky)"/>
<circle cx="1020" cy="185" r="78" fill="#fff3d3" opacity=".08"/>
<circle cx="1020" cy="185" r="54" fill="#fff1d4" opacity=".9"/>
<circle cx="1001" cy="171" r="11" fill="#d7d2c8" opacity=".5"/>
<circle cx="1040" cy="201" r="7" fill="#d7d2c8" opacity=".4"/>
<circle cx="1038" cy="160" r="4" fill="#d7d2c8" opacity=".55"/>
<!-- Stars -->
<g fill="#f8f5e9">
<circle cx="106" cy="114" r="2"/><circle cx="216" cy="207" r="2.5"/>
<circle cx="330" cy="92" r="1.8"/><circle cx="447" cy="158" r="2"/>
<circle cx="548" cy="82" r="2.3"/><circle cx="700" cy="119" r="1.7"/>
<circle cx="822" cy="75" r="2.5"/><circle cx="1164" cy="100" r="2"/>
<circle cx="1194" cy="288" r="2.3"/><circle cx="89" cy="335" r="1.8"/>
<circle cx="286" cy="303" r="2"/><circle cx="1106" cy="390" r="1.7"/>
<circle cx="922" cy="325" r="2"/><circle cx="176" cy="435" r="1.6"/>
</g>
<g stroke="#fff3d3" stroke-width="2" opacity=".85">
<path d="M168 278v18m-9-9h18"/><path d="M736 241v16m-8-8h16"/>
<path d="M1144 332v14m-7-7h14"/><path d="M395 352v12m-6-6h12"/>
</g>
<!-- Distant ridgeline -->
<path d="M0 552 Q120 491 248 543 Q379 477 513 542 Q673 469 829 537 Q1000 466 1137 523 Q1214 492 1280 520 L1280 800 0 800Z" fill="#737b9a"/>
<path d="M0 591 Q155 526 286 575 Q419 518 548 578 Q716 513 872 571 Q1031 514 1170 565 Q1230 544 1280 560 L1280 800 0 800Z" fill="url(#moon)"/>
<!-- Lunar ground details -->
<g fill="#9298aa" opacity=".65">
<ellipse cx="180" cy="669" rx="67" ry="13"/><ellipse cx="180" cy="665" rx="50" ry="7" fill="#c7c8ce"/>
<ellipse cx="1070" cy="637" rx="87" ry="16"/><ellipse cx="1070" cy="632" rx="65" ry="8" fill="#d1d0d2"/>
<ellipse cx="858" cy="730" rx="42" ry="9"/><ellipse cx="858" cy="727" rx="28" ry="4" fill="#c8c8ce"/>
<ellipse cx="375" cy="741" rx="58" ry="10"/><ellipse cx="375" cy="738" rx="39" ry="5" fill="#c8c8ce"/>
</g>
<g fill="#8e95a8" opacity=".55">
<circle cx="70" cy="615" r="3"/><circle cx="294" cy="642" r="4"/>
<circle cx="981" cy="687" r="3"/><circle cx="1179" cy="716" r="4"/>
<circle cx="748" cy="628" r="3"/><circle cx="465" cy="690" r="2.5"/>
</g>
<!-- Action swooshes -->
<g fill="none" stroke-linecap="round">
<path d="M351 414 Q432 366 508 392" stroke="#8adce8" stroke-width="5" opacity=".65"/>
<path d="M314 448 Q410 404 483 422" stroke="#f6c96c" stroke-width="3" opacity=".75"/>
<path d="M803 398 Q876 368 936 388" stroke="#8adce8" stroke-width="4" opacity=".5"/>
</g>
<!-- Soft cast shadow -->
<ellipse cx="652" cy="680" rx="172" ry="24" fill="#454b68" opacity=".33" filter="url(#shadow)"/>
<!-- Scooter-like flying dust -->
<g fill="#f4d58c" opacity=".85">
<circle cx="456" cy="629" r="5"/><circle cx="427" cy="613" r="3"/>
<circle cx="470" cy="648" r="3"/><circle cx="883" cy="624" r="4"/>
</g>
<!-- Skateboard, tilted in motion -->
<g transform="rotate(-5 648 638)">
<path d="M482 624 Q500 610 530 615 L756 615 Q790 617 812 632 Q790 651 756 652 L529 650 Q497 650 482 638Z"
fill="#262c4d"/>
<path d="M485 615 Q498 603 529 607 L757 607 Q789 609 811 625 Q790 642 757 644 L529 642 Q498 641 485 630Z"
fill="url(#board)" stroke="#ffe0a2" stroke-width="3"/>
<path d="M528 616 Q646 608 770 618" fill="none" stroke="#ffd884" stroke-width="4" opacity=".85"/>
<path d="M546 625 l19-8 19 9-18 10z" fill="#fff0c6" opacity=".8"/>
<path d="M627 625 l19-8 19 9-18 10z" fill="#fff0c6" opacity=".8"/>
<path d="M546 644v13m206-13v13" stroke="#3a3c55" stroke-width="7" stroke-linecap="round"/>
<circle cx="548" cy="663" r="13" fill="#29304e"/><circle cx="548" cy="663" r="6" fill="#90d7df"/>
<circle cx="751" cy="663" r="13" fill="#29304e"/><circle cx="751" cy="663" r="6" fill="#90d7df"/>
</g>
<!-- Back leg, boot -->
<path d="M601 462 Q555 505 527 546 L494 590 Q477 605 491 617 Q511 627 532 610 L582 570 Q624 543 649 504Z"
fill="#f6f2e9" stroke="#343b59" stroke-width="9" stroke-linejoin="round"/>
<path d="M494 588 Q511 597 532 610 L520 625 Q501 635 480 621 Q468 612 482 597Z"
fill="#dce8ef" stroke="#343b59" stroke-width="7"/>
<path d="M482 620 Q499 628 520 622" fill="none" stroke="#66d6e2" stroke-width="5"/>
<!-- Front leg -->
<path d="M682 455 Q719 488 746 523 L722 568 Q712 583 728 597 Q745 609 764 594 L793 559 Q806 542 793 524 L738 444Z"
fill="#fffaf0" stroke="#343b59" stroke-width="9" stroke-linejoin="round"/>
<path d="M725 574 Q745 584 766 592 L759 610 Q739 621 717 606 Q704 596 716 582Z"
fill="#dce8ef" stroke="#343b59" stroke-width="7"/>
<path d="M719 605 Q739 615 759 608" fill="none" stroke="#66d6e2" stroke-width="5"/>
<!-- Suit torso -->
<path d="M575 330 Q619 307 674 326 Q715 342 725 390 L710 468 Q664 496 594 472 L561 405 Q555 359 575 330Z"
fill="#f8f5ed" stroke="#343b59" stroke-width="10" stroke-linejoin="round"/>
<path d="M575 350 Q621 369 711 352 L718 390 Q650 415 568 393Z" fill="#dfe8ec"/>
<path d="M584 407 Q632 424 714 404 L706 456 Q654 477 599 456Z" fill="#e8e9e5"/>
<!-- Chest panel -->
<rect x="627" y="382" width="58" height="47" rx="10" fill="#344260" stroke="#8adce8" stroke-width="4" transform="rotate(-4 656 405)"/>
<rect x="637" y="391" width="37" height="6" rx="3" fill="#8adce8"/>
<circle cx="642" cy="411" r="5" fill="#ffbd5c"/><circle cx="660" cy="411" r="5" fill="#ee7881"/>
<path d="M619 339 Q642 351 690 340" fill="none" stroke="#66d6e2" stroke-width="6"/>
<!-- Arm reaching out -->
<path d="M579 350 Q548 340 527 312 L484 287 Q465 278 453 296 Q449 310 467 321 L518 355 Q540 377 574 381Z"
fill="#f8f5ed" stroke="#343b59" stroke-width="9" stroke-linejoin="round"/>
<path d="M454 286 Q438 273 424 287 L411 301 Q404 315 421 324 L443 329 Q458 319 466 302Z"
fill="#dfe8ec" stroke="#343b59" stroke-width="7"/>
<path d="M421 302 Q438 299 452 313" fill="none" stroke="#66d6e2" stroke-width="4"/>
<!-- Arm lifted -->
<path d="M699 350 Q738 336 752 301 L772 261 Q782 242 800 252 Q815 263 804 281 L783 330 Q773 375 727 393Z"
fill="#f8f5ed" stroke="#343b59" stroke-width="9" stroke-linejoin="round"/>
<path d="M772 258 Q771 236 789 225 L805 216 Q824 218 824 237 L814 260 Q800 272 784 269Z"
fill="#dfe8ec" stroke="#343b59" stroke-width="7"/>
<path d="M790 229 Q806 237 814 252" fill="none" stroke="#66d6e2" stroke-width="4"/>
<!-- Helmet rim -->
<path d="M552 289 Q548 204 621 178 Q698 162 741 224 Q758 253 743 305 Q731 338 697 351 L580 338 Q554 322 552 289Z"
fill="#f9f5eb" stroke="#343b59" stroke-width="12"/>
<path d="M563 281 Q560 213 621 193 Q686 179 724 229 Q741 252 730 292 Q719 323 690 335 L586 325 Q566 310 563 281Z"
fill="url(#visor)" stroke="#b9edf0" stroke-width="5"/>
<!-- Cat ears inside helmet -->
<path d="M588 225 L587 186 Q588 177 597 184 L623 208Z" fill="#f4e8d5" stroke="#313956" stroke-width="7" stroke-linejoin="round"/>
<path d="M680 207 L705 183 Q714 176 716 187 L714 226Z" fill="#f4e8d5" stroke="#313956" stroke-width="7" stroke-linejoin="round"/>
<path d="M596 196 L597 188 L610 205Z" fill="#e98b91"/>
<path d="M704 191 L709 187 L708 207Z" fill="#e98b91"/>
<!-- Cat face -->
<path d="M609 258 Q614 249 622 258 Q632 269 643 258 Q652 249 660 258" fill="none" stroke="#28304e" stroke-width="5" stroke-linecap="round"/>
<path d="M635 274 l7 0 -3.5 5z" fill="#e98591"/>
<path d="M639 279 Q634 286 627 283 M639 279 Q644 286 651 282" fill="none" stroke="#28304e" stroke-width="3" stroke-linecap="round"/>
<g stroke="#effbfa" stroke-width="2.5" stroke-linecap="round" opacity=".9">
<path d="M612 276l-18-3"/><path d="M612 282l-18 3"/>
<path d="M663 276l18-3"/><path d="M663 282l18 3"/>
</g>
<!-- Visor reflections -->
<path d="M582 246 Q593 215 618 208" fill="none" stroke="#fff" stroke-width="7" opacity=".72" stroke-linecap="round"/>
<path d="M695 224 Q707 232 713 246" fill="none" stroke="#fff" stroke-width="4" opacity=".55" stroke-linecap="round"/>
<!-- Helmet side fittings -->
<circle cx="557" cy="296" r="13" fill="#f6c365" stroke="#343b59" stroke-width="5"/>
<circle cx="739" cy="294" r="13" fill="#f6c365" stroke="#343b59" stroke-width="5"/>
<path d="M547 305 Q529 313 526 331" fill="none" stroke="#dce8ec" stroke-width="6"/>
<!-- Tiny sparkle -->
<g fill="#fff3c9" filter="url(#glow)">
<path d="M858 260l5 14 14 5-14 5-5 14-5-14-14-5 14-5z"/>
<path d="M472 227l3 8 8 3-8 3-3 8-3-8-8-3 8-3z"/>
</g>
<!-- Caption -->
<g font-family="Arial, Helvetica, sans-serif" text-anchor="middle">
<text x="640" y="93" fill="#f9f1d9" font-size="18" letter-spacing="7" opacity=".8">LUNAR FIELD NOTES · 04</text>
<text x="640" y="137" fill="#fff8e7" font-size="30" font-weight="700" letter-spacing="2">ONE SMALL STEP</text>
<text x="640" y="162" fill="#b8dce6" font-size="13" letter-spacing="5">ONE GIANT OLLIE</text>
</g>
</svg>Reasoning trace (124 tokens)
**Creating SVG Illustration** I'm working on an output SVG to create a polished, self-contained illustration. I'll design it with an astronaut cat riding a skateboard on the moon’s surface. The dimensions will have a viewBox of 0 0 1280 800. I aim to include gradients, stars, and maybe some typography. The cat will be in a dynamic pose, positioned around the center for coherent anatomy, with the ground at y610. I'll remember to ensure all elements work together seamlessly!