Models 44

North Mini Code (free)

by CohereReasoningClean
Open in new window

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

How it went

Total time
7.4 s
Cost
$0
Output tokens
1,912
Spent thinking
0 tokens
Speed
266.4 tok/s
Console errors
0
First token after
247 ms
First visible text after
247 ms
Prompt tokens
506
Code size
5.3 KB
Finish reason
stop
Served by
Cohere
Model id
cohere/north-mini-code:free
Reasoning sent
{"effort":"none"}
Max output
32,000 tokens
Generated
Nov 9, 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 · 131 lines

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 800 600" style="background:#0d1b2a;width:100%;height:100vh;">
  <!-- Define gradients -->
  <defs>
    <linearGradient id="moonGrad" x1="0%" y1="0%" x2="100%" y2="100%">
      <stop offset="0%" stop-color="#ffeb3b"/>
      <stop offset="100%" stop-color="#f9a825"/>
    </linearGradient>
    <linearGradient id="skyGrad" x1="0%" y1="0%" x2="0%" y2="100%">
      <stop offset="0%" stop-color="#1b263b"/>
      <stop offset="100%" stop-color="#0d1b2a"/>
    </linearGradient>
    <linearGradient id="hillGrad" x1="0%" y1="0%" x2="100%" y2="0%">
      <stop offset="0%" stop-color="#2a3a50"/>
      <stop offset="100%" stop-color="#1b263b"/>
    </linearGradient>
    <linearGradient id="foxFurGrad" x1="0%" y1="0%" x2="100%" y2="100%">
      <stop offset="0%" stop-color="#e07a2b"/>
      <stop offset="100%" stop-color="#c8541e"/>
    </linearGradient>
  </defs>

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

  <!-- Distant hills (two layers) -->
  <path d="M0 420 Q200 380 400 420 T800 420" fill="url(#hillGrad)"/>
  <path d="M0 460 Q200 420 400 460 T800 460" fill="url(#hillGrad)" opacity="0.7"/>

  <!-- Trees (simple silhouettes) -->
  <g opacity="0.8">
    <!-- Tree 1 -->
    <circle cx="120" cy="340" r="40" fill="#1b263b"/>
    <ellipse cx="120" cy="280" rx="55" ry="80" fill="#163042"/>
    <!-- Tree 2 -->
    <circle cx="700" cy="350" r="45" fill="#1b263b"/>
    <ellipse cx="700" cy="300" rx="60" ry="90" fill="#163042"/>
  </g>

  <!-- Star definitions for twinkling -->
  <g id="stars">
    <circle class="star" cx="50" cy="80" r="1.5" fill="#fff"/>
    <circle class="star" cx="150" cy="120" r="1" fill="#fff"/>
    <circle class="star" cx="250" cy="90" r="1.2" fill="#fff"/>
    <circle class="star" cx="350" cy="150" r="1.5" fill="#fff"/>
    <circle class="star" cx="450" cy="70" r="1" fill="#fff"/>
    <circle class="star" cx="550" cy="100" r="1.3" fill="#fff"/>
    <circle class="star" cx="650" cy="130" r="1" fill="#fff"/>
    <circle class="star" cx="750" cy="60" r="1.5" fill="#fff"/>
    <circle class="star" cx="200" cy="300" r="1" fill="#fff"/>
    <circle class="star" cx="500" cy="260" r="1.2" fill="#fff"/>
    <circle class="star" cx="700" cy="220" r="1.4" fill="#fff"/>
  </g>

  <!-- Shooting star -->
  <path id="shootingStar" d="M-50 200 L800 600" stroke="url(#moonGrad)" stroke-width="2" fill="none" opacity="0" stroke-dasharray="10 10">
    <animate attributeName="opacity" from="0" to="1" begin="2s;5s;8s;11s;..." dur="4s" repeatCount="indefinite"/>
    <animate attributeName="transform" from="translate(0,0)" to="translate(850, -150)" begin="2s;5s;8s;11s;..." dur="4s" repeatCount="indefinite"/>
  </path>

  <!-- Moon with soft glow -->
  <circle cx="700" cy="80" r="60" fill="url(#moonGrad)" opacity="0.9">
    <animate attributeName="opacity" values="0.9;0.7;0.9" dur="6s" repeatCount="indefinite"/>
  </circle>
  <filter id="glow">
    <feGaussianBlur stdDeviation="4" result="coloredBlur"/>
    <feMerge>
      <feMergeNode in="coloredBlur"/>
      <feMergeNode in="SourceGraphic"/>
    </feMerge>
  </filter>
  <circle cx="700" cy="80" r="70" fill="none" stroke="url(#moonGrad)" stroke-width="4" opacity="0.4" filter="url(#glow)"/>

  <!-- Fox body -->
  <g id="fox">
    <!-- Ears -->
    <ellipse cx="340" cy="210" rx="30" ry="40" fill="url(#foxFurGrad)"/>
    <ellipse cx="460" cy="210" rx="30" ry="40" fill="url(#foxFurGrad)"/>

    <!-- Head -->
    <circle cx="400" cy="240" r="30" fill="url(#foxFurGrad)"/>
    <ellipse cx="370" cy="230" rx="12" ry="8" fill="#000"/>

    <!-- Snout -->
    <path d="M382 240 Q390 260 400 240 Q410 260 418 240" fill="#d9c6b0"/>

    <!-- Eyes -->
    <circle cx="375" cy="230" r="3" fill="#000"/>
    <circle cx="415" cy="230" r="3" fill="#000"/>
    <circle cx="376" cy="229" r="1.5" fill="#fff"/>
    <circle cx="416" cy="229" r="1.5" fill="#fff"/>

    <!-- Body -->
    <rect x="340" y="260" width="120" height="60" rx="20" fill="url(#foxFurGrad)"/>

    <!-- Tail (bushy with white tip) -->
    <path id="tail" d="M460 280 C470 240, 500 260, 520 260 Q540 280, 540 320 Q540 360, 520 380 C500 410, 470 380, 460 340" fill="url(#foxFurGrad)">
      <animateTransform attributeName="transform" type="rotate" from="0 470 320" to="-10 470 320" dur="2s" values="0 470 320; 10 470 320; -8 470 320; 5 470 320; 0 470 320" repeatCount="indefinite"/>
    </path>
    <circle cx="530" cy="300" r="12" fill="#fff" opacity="0.9"/>

    <!-- Legs -->
    <rect x="360" y="310" width="12" height="45" fill="url(#foxFurGrad)"/>
    <rect x="420" y="310" width="12" height="45" fill="url(#foxFurGrad)"/>
    <rect x="460" y="310" width="12" height="45" fill="url(#foxFurGrad)"/>
    <rect x="500" y="310" width="12" height="45" fill="url(#foxFurGrad)"/>
  </g>

  <!-- SMIL for star twinkling -->
  <style>
    @keyframes twinkle {
      0%, 100% { opacity: 0; }
      50% { opacity: 1; }
    }
    .star {
      animation: twinkle 3s infinite ease-in-out;
      transform-origin: center;
    }
  </style>

  <!-- Inline SMIL for star animation -->
  <script type="text/ecmascript">
    <![CDATA[
      const stars = document.querySelectorAll('#stars .star');
      stars.forEach((s,i) => {
        const dur = 2 + Math.random()*3;
        s.style.animationDuration = dur + 's';
        s.style.animationDelay = (Math.random()*2) + 's';
      });
    ]]>
  </script>
</svg>