• Updated 30 Oct, 21:11 UTC
  • Next run 31 Oct, 05:17 UTCNext 31 Oct 05:17
  • Last 7 days: 4 new models · 475 runs7 d: 4 models · 475 runs
Wristwatch that shows the current time

GPT-6.1 TerraOpenAI

Network offOpen alone (new tab)

Run details

Model
openai/gpt-6.1-terra
Route
OpenRouter API, one user message
Served by
OpenAI
Effort
medium, OpenRouter's default for this model
Limits
60 min · 128,000 output tokens (the model's limit)
Date
27 Oct 2026
Time
54 s
Size
12 kB
Tokens
82 in, 4,781 out (662 of them thinking)
List price
$0.024 at today's price ($1 in / $5 out per M)
Paid
$0.024

Raw files: output · meta.json

Exact prompt

Draw a mechanical wristwatch that shows the current local time, with a sweeping seconds hand and a date window. Make it look expensive.

It must be one complete, self-contained HTML file: inline all CSS and JavaScript, and make no network requests of any kind (no CDNs, web fonts or remote images). Reply with the file in a single ```html code block.

Source

12 kB 278 lines Raw

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Aurel — Mechanical Watch</title>
<style>
  :root { color-scheme: dark; }
  * { box-sizing: border-box; }
  html, body { margin: 0; min-height: 100%; }
  body {
    min-height: 100vh;
    min-height: 100dvh;
    display: grid;
    place-items: center;
    overflow-x: hidden;
    background:
      radial-gradient(ellipse at 50% 44%, #292824 0%, #171817 42%, #0d0f0f 100%);
    color: #d8c7a3;
    font-family: Georgia, "Times New Roman", serif;
  }
  main {
    width: min(100%, 670px);
    padding: 12px;
  }
  svg {
    display: block;
    width: 100%;
    height: auto;
    max-height: calc(100dvh - 24px);
    overflow: visible;
    filter: drop-shadow(0 28px 25px rgba(0, 0, 0, .55));
  }
  .fine { font-family: Georgia, "Times New Roman", serif; fill: #d9c8a5; }
  .sans { font-family: Arial, sans-serif; fill: #c9b994; }
</style>
</head>
<body>
<main>
  <svg id="watch" viewBox="0 0 600 800" role="img"
       aria-label="A gold mechanical wristwatch showing the current local time and date">
    <title>Mechanical wristwatch</title>
    <desc>A polished gold watch with a dark dial, leather strap, sweeping seconds hand, and date window.</desc>
    <defs>
      <linearGradient id="leather" x1="0" x2="1" y1="0" y2="0">
        <stop offset="0" stop-color="#17110e"/>
        <stop offset=".12" stop-color="#35251b"/>
        <stop offset=".35" stop-color="#483124"/>
        <stop offset=".55" stop-color="#38261c"/>
        <stop offset=".86" stop-color="#2a1c15"/>
        <stop offset="1" stop-color="#120e0b"/>
      </linearGradient>
      <pattern id="grain" width="22" height="29" patternUnits="userSpaceOnUse">
        <path d="M-3 8 Q7 3 16 9 T28 10 M-5 22 Q5 16 15 23 T27 23"
              fill="none" stroke="#aa8060" stroke-opacity=".08" stroke-width="1"/>
        <path d="M3 0 Q7 8 3 14 M18 13 Q14 20 19 29"
              fill="none" stroke="#080605" stroke-opacity=".18"/>
      </pattern>
      <linearGradient id="gold" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0" stop-color="#6f4a23"/>
        <stop offset=".14" stop-color="#f5d89a"/>
        <stop offset=".27" stop-color="#a97639"/>
        <stop offset=".43" stop-color="#f6dfaa"/>
        <stop offset=".61" stop-color="#9a6b33"/>
        <stop offset=".8" stop-color="#e8c47e"/>
        <stop offset="1" stop-color="#60401f"/>
      </linearGradient>
      <linearGradient id="edgeGold" x1="0" y1="0" x2="0" y2="1">
        <stop stop-color="#f8e4b3"/>
        <stop offset=".25" stop-color="#b18448"/>
        <stop offset=".5" stop-color="#765020"/>
        <stop offset=".75" stop-color="#d2a662"/>
        <stop offset="1" stop-color="#5b3b1c"/>
      </linearGradient>
      <radialGradient id="dial" cx=".38" cy=".27" r=".78">
        <stop stop-color="#303b3a"/>
        <stop offset=".42" stop-color="#172322"/>
        <stop offset=".78" stop-color="#0b1414"/>
        <stop offset="1" stop-color="#030909"/>
      </radialGradient>
      <linearGradient id="handGold" x1="0" y1="0" x2="1" y2="0">
        <stop stop-color="#76501f"/>
        <stop offset=".38" stop-color="#ffe5a9"/>
        <stop offset=".68" stop-color="#d2a65c"/>
        <stop offset="1" stop-color="#775123"/>
      </linearGradient>
      <linearGradient id="glass" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0" stop-color="#fff" stop-opacity=".14"/>
        <stop offset=".3" stop-color="#fff" stop-opacity=".015"/>
        <stop offset=".6" stop-color="#fff" stop-opacity="0"/>
        <stop offset="1" stop-color="#b6d6cf" stop-opacity=".055"/>
      </linearGradient>
      <filter id="shadow" x="-50%" y="-50%" width="200%" height="200%">
        <feGaussianBlur stdDeviation="2.5"/>
      </filter>
      <clipPath id="dialClip"><circle cx="300" cy="400" r="174"/></clipPath>
    </defs>

    <!-- Leather strap -->
    <path d="M211 0 H389 L404 196 Q405 230 388 254 H212 Q195 230 196 196 Z"
          fill="url(#leather)" stroke="#120e0b" stroke-width="3"/>
    <path d="M212 546 H388 Q405 570 404 604 L389 800 H211 L196 604 Q195 570 212 546 Z"
          fill="url(#leather)" stroke="#120e0b" stroke-width="3"/>
    <path d="M211 0 H389 L404 196 Q405 230 388 254 H212 Q195 230 196 196 Z
             M212 546 H388 Q405 570 404 604 L389 800 H211 L196 604 Q195 570 212 546 Z"
          fill="url(#grain)"/>
    <g fill="none" stroke="#c0a17c" stroke-opacity=".45" stroke-width="2"
       stroke-linecap="round" stroke-dasharray="4 8">
      <path d="M224 0 L213 195 Q213 217 224 234"/>
      <path d="M376 0 L387 195 Q387 217 376 234"/>
      <path d="M224 566 Q213 583 213 605 L224 800"/>
      <path d="M376 566 Q387 583 387 605 L376 800"/>
    </g>
    <g fill="none" stroke="#070605" stroke-opacity=".45">
      <path d="M232 0 L224 183 M368 0 L376 183"/>
      <path d="M224 617 L232 800 M376 617 L368 800"/>
    </g>

    <!-- Lugs and crown -->
    <g fill="url(#gold)" stroke="#6c4a25" stroke-width="2">
      <path d="M184 259 L194 200 Q197 187 214 187 H242 L249 242 Z"/>
      <path d="M416 259 L406 200 Q403 187 386 187 H358 L351 242 Z"/>
      <path d="M184 541 L194 600 Q197 613 214 613 H242 L249 558 Z"/>
      <path d="M416 541 L406 600 Q403 613 386 613 H358 L351 558 Z"/>
    </g>
    <g fill="none" stroke="#fbe1a7" stroke-opacity=".6" stroke-width="2">
      <path d="M199 226 L204 200 Q206 195 218 195"/>
      <path d="M401 226 L396 200 Q394 195 382 195"/>
      <path d="M199 574 L204 600 Q206 605 218 605"/>
      <path d="M401 574 L396 600 Q394 605 382 605"/>
    </g>
    <path d="M491 366 Q513 365 518 378 L518 422 Q513 435 491 434 Z"
          fill="url(#gold)" stroke="#76501f" stroke-width="2"/>
    <rect x="504" y="373" width="29" height="54" rx="10"
          fill="url(#edgeGold)" stroke="#68451f" stroke-width="2"/>
    <g stroke="#6f4a21" stroke-width="1.5" opacity=".8">
      <path d="M510 377 V423 M516 375 V425 M522 375 V425 M528 378 V422"/>
    </g>
    <path d="M531 389 Q539 400 531 411" fill="none" stroke="#f5dba3" stroke-width="2"/>

    <!-- Case and bezel -->
    <circle cx="300" cy="405" r="204" fill="#000" opacity=".55" filter="url(#shadow)"/>
    <circle cx="300" cy="400" r="203" fill="url(#gold)" stroke="#503619" stroke-width="3"/>
    <circle cx="300" cy="400" r="197" fill="none" stroke="#fce7b4" stroke-opacity=".8" stroke-width="2"/>
    <circle cx="300" cy="400" r="191" fill="#735026" stroke="#493316" stroke-width="2"/>
    <circle cx="300" cy="400" r="187" fill="url(#edgeGold)"/>
    <circle cx="300" cy="400" r="181" fill="#0b1211" stroke="#f5d9a1" stroke-width="1.5"/>
    <circle cx="300" cy="400" r="176" fill="url(#dial)" stroke="#574626" stroke-width="2"/>
    <circle cx="300" cy="400" r="158" fill="none" stroke="#c0a77c" stroke-opacity=".25" stroke-width=".7"/>
    <circle cx="300" cy="400" r="145" fill="none" stroke="#b49a70" stroke-opacity=".12" stroke-width=".7"/>

    <!-- Minute track and applied indices are filled in by the script -->
    <g id="minute-track"></g>
    <g id="hour-indices"></g>

    <g class="fine" text-anchor="middle">
      <text x="300" y="282" font-size="25">12</text>
      <text x="179" y="408" font-size="25">9</text>
      <text x="300" y="538" font-size="25">6</text>
    </g>

    <!-- Dial signature -->
    <g text-anchor="middle">
      <path d="M290 315 L295 307 L300 315 L305 307 L310 315 L307 320 H293 Z"
            fill="none" stroke="#d1b77e" stroke-width="1.2"/>
      <circle cx="295" cy="306" r="1.2" fill="#d1b77e"/>
      <circle cx="305" cy="306" r="1.2" fill="#d1b77e"/>
      <text x="300" y="340" class="fine" font-size="17" letter-spacing="4">AUREL</text>
      <text x="300" y="354" class="sans" font-size="6.5" letter-spacing="2.5">GENÈVE</text>
      <text x="300" y="468" class="fine" font-size="10" letter-spacing="2">AUTOMATIC</text>
      <text x="300" y="482" class="sans" font-size="6.5" letter-spacing="1.4">28 JEWELS · SWISS MADE</text>
    </g>

    <!-- Date aperture -->
    <rect x="397" y="384" width="42" height="32" rx="2"
          fill="#050908" stroke="#d2b477" stroke-width="2"/>
    <rect x="400" y="387" width="36" height="26" fill="#e5d9be"/>
    <text id="date" x="418" y="407" text-anchor="middle"
          fill="#1a211e" font-family="Georgia, serif" font-size="20">1</text>

    <!-- Subtle reflection under the hands -->
    <g clip-path="url(#dialClip)" pointer-events="none">
      <path d="M116 225 H347 Q270 311 185 471 L116 465 Z" fill="url(#glass)" opacity=".55"/>
      <circle cx="300" cy="400" r="174" fill="url(#glass)"/>
    </g>

    <!-- Hands rotate around the dial's center -->
    <g id="hour-hand">
      <path d="M-5 17 L-7 -55 L0 -96 L7 -55 L5 17 Z"
            fill="url(#handGold)" stroke="#67491f" stroke-width="1"/>
      <path d="M0 -84 L3 -54 L3 -11 L-3 -11 L-3 -54 Z" fill="#e9dcb5" opacity=".75"/>
    </g>
    <g id="minute-hand">
      <path d="M-4 20 L-5 -100 L0 -140 L5 -100 L4 20 Z"
            fill="url(#handGold)" stroke="#67491f" stroke-width="1"/>
      <path d="M0 -127 L2.3 -99 L2.3 -13 L-2.3 -13 L-2.3 -99 Z" fill="#e9dcb5" opacity=".8"/>
    </g>
    <g id="second-hand">
      <path d="M-1.1 36 L-1.1 -156 L0 -164 L1.1 -156 L1.1 36 Z" fill="#e9c87f"/>
      <circle cx="0" cy="31" r="5" fill="none" stroke="#e9c87f" stroke-width="1.8"/>
    </g>
    <circle cx="300" cy="400" r="7" fill="#98703b" stroke="#f5dba1" stroke-width="1"/>
    <circle cx="300" cy="400" r="3" fill="#f3d99c"/>

    <!-- Crystal rim highlight -->
    <circle cx="300" cy="400" r="175" fill="none" stroke="#fff1cb" stroke-opacity=".12" stroke-width="1"/>
    <path d="M162 296 A174 174 0 0 1 263 230" fill="none"
          stroke="#fff2d0" stroke-opacity=".28" stroke-width="1.5" stroke-linecap="round"/>
  </svg>
</main>
<script>
(() => {
  const ns = "http://www.w3.org/2000/svg";
  const track = document.getElementById("minute-track");
  const indices = document.getElementById("hour-indices");

  function element(name, attributes) {
    const node = document.createElementNS(ns, name);
    for (const [key, value] of Object.entries(attributes)) node.setAttribute(key, value);
    return node;
  }

  for (let i = 0; i < 60; i++) {
    const major = i % 5 === 0;
    track.appendChild(element("line", {
      x1: 300, y1: major ? 232 : 235, x2: 300, y2: major ? 242 : 240,
      stroke: major ? "#d9bd83" : "#a99776",
      "stroke-width": major ? 1.5 : 0.7,
      opacity: major ? 0.95 : 0.7,
      transform: `rotate(${i * 6} 300 400)`
    }));
  }

  for (let i = 0; i < 12; i++) {
    if (i % 3 === 0) continue;
    indices.appendChild(element("path", {
      d: "M 296.5 252 L 300 247 L 303.5 252 L 302.5 270 L 297.5 270 Z",
      fill: "url(#handGold)",
      stroke: "#72552a",
      "stroke-width": 0.7,
      transform: `rotate(${i * 30} 300 400)`
    }));
  }

  const hour = document.getElementById("hour-hand");
  const minute = document.getElementById("minute-hand");
  const second = document.getElementById("second-hand");
  const date = document.getElementById("date");
  const watch = document.getElementById("watch");
  let lastDate = -1;
  let lastLabel = "";

  function update() {
    const now = new Date();
    const seconds = now.getSeconds() + now.getMilliseconds() / 1000;
    const minutes = now.getMinutes() + seconds / 60;
    const hours = (now.getHours() % 12) + minutes / 60;

    hour.setAttribute("transform", `translate(300 400) rotate(${hours * 30})`);
    minute.setAttribute("transform", `translate(300 400) rotate(${minutes * 6})`);
    second.setAttribute("transform", `translate(300 400) rotate(${seconds * 6})`);

    if (now.getDate() !== lastDate) {
      lastDate = now.getDate();
      date.textContent = lastDate;
    }
    const label = `Gold mechanical wristwatch. Local time ${now.toLocaleTimeString()}, date ${now.toLocaleDateString()}.`;
    if (label !== lastLabel) {
      watch.setAttribute("aria-label", label);
      lastLabel = label;
    }
    requestAnimationFrame(update);
  }
  update();
})();
</script>
</body>
</html>

Compare with

GPT-6.1 Terra: other attempts