Models 44

GPT-5 Nano

by OpenAIReasoningClean
Open in new window

Running live in a sandboxed frame. Click inside it before using the keyboard.

How it went

Total time
20.1 s
Cost
$0.0013
Output tokens
3,123
Spent thinking
0 tokens
Speed
162.9 tok/s
Console errors
0
First token after
924 ms
First visible text after
924 ms
Prompt tokens
522
Code size
8.4 KB
Finish reason
stop
Served by
OpenAI
Model id
openai/gpt-5-nano
Reasoning sent
{"effort":"minimal"}
Max output
128,000 tokens
Generated
Nov 12, 2026

What it was asked

The prompt
Create a standalone SVG illustration of a fox sitting on a hill, looking at the moon on a starry night, with a few subtle animations. Requirements: - Output a single valid .svg file (```svg code block) with a viewBox of 0 0 800 600. - Hand-written shapes and paths only: no embedded raster images, no external references, no JavaScript. - The fox must be clearly recognizable (pointy ears, snout, bushy tail with a white tip). - Include the moon with a soft glow, many stars, the hill and some background elements (trees, distant hills). - Use a coherent color palette and at least one gradient. - Animations (SMIL or CSS inside the SVG), all looping seamlessly: stars twinkling, the fox's tail swaying gently, and a shooting star crossing the sky every 4 seconds (the first one within 2 seconds).
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 · 208 lines

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600" width="800" height="600" aria-label="A serene night scene with a fox on a hill, moon, stars, and subtle animations">
  <defs>
    <!-- Gradients -->
    <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#0b1020"/>
      <stop offset="60%" stop-color="#1a2a58"/>
      <stop offset="100%" stop-color="#0b1a3a"/>
    </linearGradient>

    <linearGradient id="hillG" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#2a3e2a"/>
      <stop offset="100%" stop-color="#1a2e1b"/>
    </linearGradient>

    <linearGradient id="foxMain" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#ff9d4a"/>
      <stop offset="60%" stop-color="#e36d2b"/>
      <stop offset="100%" stop-color="#d85a1f"/>
    </linearGradient>

    <linearGradient id="foxFur" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#ffd9b3"/>
      <stop offset="60%" stop-color="#f6b37a"/>
      <stop offset="100%" stop-color="#f08a38"/>
    </linearGradient>

    <linearGradient id="moonGlow" x1="0" y1="0" x2="1" y2="1">
      <stop offset="0%" stop-color="#ffffff"/>
      <stop offset="60%" stop-color="#d8e6ff"/>
      <stop offset="100%" stop-color="#a4c7ff"/>
    </linearGradient>

    <!-- Subtle glow blur for moon -->
    <filter id="softGlow" x="-50%" y="-50%" width="200%" height="200%">
      <feGaussianBlur stdDeviation="8" result="blur"/>
      <feMerge>
        <feMergeNode in="blur"/>
        <feMergeNode in="SourceGraphic"/>
      </feMerge>
    </filter>

    <!-- Star twinkle animation via SMIL -->
    <radialGradient id="starCore" cx="50%" cy="50%" r="50%">
      <stop offset="0%" stop-color="#fff"/>
      <stop offset="70%" stop-color="#fff"/>
      <stop offset="100%" stop-color="#cfe3ff"/>
    </radialGradient>

    <!-- Tree gradient -->
    <linearGradient id="treeG" x1="0" y1="0" x2="0" y2="1">
      <stop offset="0%" stop-color="#234e2a"/>
      <stop offset="100%" stop-color="#0b2a14"/>
    </linearGradient>
  </defs>

  <!-- Background sky -->
  <rect width="800" height="600" fill="url(#sky)"/>

  <!-- Moon with glow -->
  <g transform="translate(560,90)">
    <circle cx="0" cy="0" r="40" fill="url(#moonGlow)" filter="url(#softGlow)"/>
    <circle cx="0" cy="0" r="28" fill="#f7f7ff" opacity="0.95"/>
    <circle cx="6" cy="-6" r="8" fill="white" opacity="0.25"/>
    <circle cx="-8" cy="4" r="4" fill="white" opacity="0.2"/>
  </g>

  <!-- Distant hills -->
  <path d="M0,420 C120,380 210,420 320,395 C420,380 560,420 800,400 L800,600 L0,600Z" fill="url(#hillG)" opacity="0.8"/>
  <path d="M0,460 C120,430 260,470 380,450 C520,430 700,470 800,450 L800,600 L0,600Z" fill="#2b4b2b" opacity="0.5"/>

  <!-- Foreground hill where the fox sits -->
  <path d="M0,420 C180,440 360,465 520,430 C600,415 760,420 800,440 L800,600 L0,600Z" fill="url(#hillG)"/>

  <!-- Stars group with twinkling (SMIL) -->
  <g id="stars" fill="white" opacity="0.95">
    <!-- many stars as small circles with varying radii and positions -->
    <circle cx="60" cy="90" r="1.2">
      <animate attributeName="opacity" values="0.8;1;0.8" dur="4s" repeatCount="indefinite"/>
      <animate attributeName="r" values="1.2;1.6;1.2" dur="4s" repeatCount="indefinite"/>
    </circle>
    <circle cx="120" cy="60" r="1" >
      <animate attributeName="opacity" values="0.6;1;0.6" dur="5s" begin="0.5s" repeatCount="indefinite"/>
    </circle>
    <circle cx="210" cy="120" r="1.4">
      <animate attributeName="opacity" values="0.7;0.95;0.7" dur="6s" repeatCount="indefinite"/>
    </circle>
    <circle cx="260" cy="70" r="0.8" >
      <animate attributeName="opacity" values="0.4;1;0.4" dur="5s" repeatCount="indefinite"/>
    </circle>
    <circle cx="320" cy="110" r="1.1" >
      <animate attributeName="opacity" values="0.9;1;0.9" dur="4.5s" repeatCount="indefinite"/>
    </circle>
    <circle cx="380" cy="60" r="0.9">
      <animate attributeName="opacity" values="0.5;1;0.5" dur="3.5s" repeatCount="indefinite"/>
    </circle>
    <circle cx="420" cy="100" r="1.3" >
      <animate attributeName="opacity" values="0.7;1;0.7" dur="4s" repeatCount="indefinite"/>
    </circle>
    <circle cx="480" cy="70" r="0.7" >
      <animate attributeName="opacity" values="0.6;1;0.6" dur="5s" repeatCount="indefinite"/>
    </circle>
    <circle cx="540" cy="90" r="1.2" >
      <animate attributeName="opacity" values="0.8;1;0.8" dur="4.2s" repeatCount="indefinite"/>
    </circle>
    <circle cx="590" cy="130" r="0.9" >
      <animate attributeName="opacity" values="0.6;1;0.6" dur="5.5s" repeatCount="indefinite"/>
    </circle>
    <circle cx="650" cy="60" r="1.1" >
      <animate attributeName="opacity" values="0.9;1;0.9" dur="3s" repeatCount="indefinite"/>
    </circle>
    <circle cx="710" cy="100" r="0.8" >
      <animate attributeName="opacity" values="0.5;1;0.5" dur="4.8s" repeatCount="indefinite"/>
    </circle>
  </g>

  <!-- Shooting star (4s cycle, first within 2s) using SMIL -->
  <g id="shootingStar" opacity="0">
    <polyline points="0,0 180,60" fill="none" stroke="#d8f5ff" stroke-width="2" stroke-linecap="round">
      <animate attributeName="opacity" values="0;1;0" keyTimes="0;0.05;1" dur="4s" begin="2s" repeatCount="indefinite"/>
      <animate attributeName="points" values="
        0,0 180,60;
        40,12 220,72;
        240,0 400,40;
        0,0 180,60" dur="4s" begin="2s" repeatCount="indefinite"/>
    </polyline>
    <circle cx="0" cy="0" r="2" fill="#fff" opacity="0">
      <animate attributeName="opacity" values="0;1;0" keyTimes="0;0.05;1" dur="4s" begin="2s" repeatCount="indefinite"/>
    </circle>
  </g>

  <!-- Fox sitting on hill (a simple yet recognizable fox) -->
  <g id="fox" transform="translate(260,370)">
    <!-- Tail - main fluffy tail with white tip -->
    <path d="M0,60
             C60,40 120,20 170,40
             C210,52 200,92 170,110
             C150,120 110,120 90,110
             C60,94 40,86 20,80
             Z"
          fill="url(#foxMain)" opacity="0.95" transform="rotate(-8 60 80)">
      <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-6 60 80" to="6 60 80" dur="2.5s" repeatCount="indefinite"/>
    </path>
    <path d="M160,76 C190,60 210,40 230,20
             C240,14 250,18 258,26
             C270,42 260,70 232,88
             Z" fill="#ffcdb0" opacity="0.95" transform="translate(-10,-6) scale(0.95)"/>

    <!-- Tail tip white -->
    <path d="M180,100 C210,90 230,82 250,84
             C268,86 276,98 270,110
             C260,124 230,132 210,120
             C196,112 184,106 180,100Z" fill="#ffffff" opacity="0.95">
      <animateTransform attributeName="transform" attributeType="XML" type="rotate" from="-6 210 100" to="6 210 100" dur="2.5s" repeatCount="indefinite"/>
    </path>

    <!-- Body -->
    <path d="M60,90 C40,70 20,60 10,40
             C2,24 18,8 42,12
             C66,16 78,28 86,38
             C92,46 100,60 108,74
             C120,100 140,120 170,120
             C170,120 150,100 120,92
             C88,82 72,86 60,90Z"
          fill="url(#foxFur)" opacity="0.95"/>

    <!-- Head -->
    <path d="M120,70
             C125,60 140,54 150,58
             C160,62 168,74 164,86
             C160,98 146,106 132,108
             C118,110 110,100 110,90
             C110,82 112,76 120,70Z"
          fill="#ffb07a"/>

    <!-- Ear left -->
    <path d="M132,54 L118,34 L136,40 Z" fill="#ff9a4d"/>
    <!-- Ear right -->
    <path d="M152,54 L170,38 L144,44 Z" fill="#ff9a4d"/>

    <!-- Eye -->
    <circle cx="140" cy="78" r="2.6" fill="#1a1a1a"/>
    <!-- Nose -->
    <circle cx="148" cy="92" r="3" fill="#1a1a1a"/>

    <!-- Front leg -->
    <path d="M100,118 L110,118 L112,144 L102,144 Z" fill="#e58a45"/>
    <!-- Back leg -->
    <path d="M40,120 C50,118 64,124 72,132 L78,144 L66,146 L48,136 Z" fill="#e58a45"/>

  </g>

  <!-- Ground shading behind fox for depth -->
  <ellipse cx="320" cy="480" rx="180" ry="40" fill="rgba(0,0,0,0.05)"/>

  <!-- Foreground subtle stars twinkling via group opacity (pure SVG animation) -->
  <g opacity="0.6" fill="white" stroke="none">
    <circle cx="210" cy="170" r="2">
      <animate attributeName="opacity" values="0.8;1;0.8" dur="3s" repeatCount="indefinite"/>
    </circle>
    <circle cx="260" cy="150" r="1.6">
      <animate attributeName="opacity" values="0.7;1;0.7" dur="4s" repeatCount="indefinite"/>
    </circle>
    <circle cx="310" cy="190" r="1.2">
      <animate attributeName="opacity" values="0.5;1;0.5" dur="5s" repeatCount="indefinite"/>
    </circle>
  </g>

</svg>