• 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 Terra ProOpenAI

Network offOpen alone (new tab)

Run details

Model
openai/gpt-6.1-terra-pro
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
78 s
Size
13 kB
Tokens
12,128 in, 11,292 out (2,317 of them thinking)
List price
$0.069 at today's price ($1 in / $5 out per M)
Paid
$0.069

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

13 kB 325 lines Raw

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="dark">
<title>Aurelle — Mechanical Watch</title>
<style>
  * { box-sizing: border-box; }

  :root {
    color-scheme: dark;
    font-family: Georgia, "Times New Roman", serif;
    background: #0b0e12;
    color: #e9e2d3;
  }

  body {
    margin: 0;
    min-height: 100vh;
    min-height: 100dvh;
    display: grid;
    place-items: center;
    background:
      radial-gradient(ellipse at 50% 42%, #283039 0%, #171c22 33%, transparent 68%),
      linear-gradient(135deg, #0c1014, #15191d 52%, #080a0d);
  }

  main {
    width: min(100%, 760px);
    padding: 28px 20px 30px;
    text-align: center;
  }

  .eyebrow {
    margin: 0;
    color: #b8a789;
    font: 10px/1.4 Arial, sans-serif;
    letter-spacing: .32em;
    text-transform: uppercase;
  }

  h1 {
    margin: 8px 0 0;
    font-size: clamp(21px, 4vw, 30px);
    font-weight: 400;
    letter-spacing: .12em;
  }

  .watch {
    display: block;
    width: min(100%, 530px);
    max-height: 72vh;
    margin: -8px auto -8px;
    overflow: visible;
  }

  .details {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 14px;
    color: #a99f90;
    font: 10px/1.5 Arial, sans-serif;
    letter-spacing: .18em;
    text-transform: uppercase;
  }

  .details span + span::before {
    content: "";
    display: inline-block;
    width: 3px;
    height: 3px;
    margin: 0 14px 3px 0;
    border-radius: 50%;
    background: #ad9870;
  }

  .local-time {
    margin: 10px 0 0;
    color: #e5dac6;
    font-size: 13px;
    letter-spacing: .12em;
    font-variant-numeric: tabular-nums;
  }

  @media (max-height: 650px) {
    main { padding: 14px 20px; }
    .watch { max-height: 67vh; }
    h1 { font-size: 20px; }
  }
</style>
</head>
<body>
<main>
  <p class="eyebrow">A study in precision</p>
  <h1>AURELLE</h1>

  <svg class="watch" id="watch" viewBox="0 0 600 800" role="img"
       aria-label="Mechanical wristwatch showing the local time and date">
    <defs>
      <linearGradient id="leather" x1="0" x2="1" y1="0" y2="0">
        <stop offset="0" stop-color="#12100f"/>
        <stop offset=".12" stop-color="#352c26"/>
        <stop offset=".3" stop-color="#1e1b19"/>
        <stop offset=".52" stop-color="#302924"/>
        <stop offset=".8" stop-color="#191716"/>
        <stop offset="1" stop-color="#0b0b0b"/>
      </linearGradient>
      <linearGradient id="steel" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0" stop-color="#4a4540"/>
        <stop offset=".12" stop-color="#f0e9db"/>
        <stop offset=".23" stop-color="#8f887d"/>
        <stop offset=".38" stop-color="#393a3a"/>
        <stop offset=".52" stop-color="#d6d0c4"/>
        <stop offset=".67" stop-color="#66635e"/>
        <stop offset=".82" stop-color="#e5ded1"/>
        <stop offset="1" stop-color="#3b3936"/>
      </linearGradient>
      <linearGradient id="bezel" x1="0" y1="0" x2=".85" y2="1">
        <stop offset="0" stop-color="#faf4e7"/>
        <stop offset=".18" stop-color="#aaa297"/>
        <stop offset=".38" stop-color="#44484a"/>
        <stop offset=".6" stop-color="#d9d2c5"/>
        <stop offset=".8" stop-color="#6b6862"/>
        <stop offset="1" stop-color="#f1ebdf"/>
      </linearGradient>
      <radialGradient id="dial" cx=".36" cy=".27" r=".8">
        <stop offset="0" stop-color="#34434a"/>
        <stop offset=".38" stop-color="#202e35"/>
        <stop offset=".75" stop-color="#111d23"/>
        <stop offset="1" stop-color="#080e12"/>
      </radialGradient>
      <linearGradient id="gold" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0" stop-color="#fff3c8"/>
        <stop offset=".35" stop-color="#cbb789"/>
        <stop offset=".65" stop-color="#8c7752"/>
        <stop offset="1" stop-color="#f2dfb2"/>
      </linearGradient>
      <linearGradient id="glass" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0" stop-color="#fff" stop-opacity=".12"/>
        <stop offset=".32" stop-color="#fff" stop-opacity=".015"/>
        <stop offset=".7" stop-color="#fff" stop-opacity="0"/>
        <stop offset="1" stop-color="#fff" stop-opacity=".06"/>
      </linearGradient>
      <filter id="shadow" x="-40%" y="-40%" width="180%" height="180%">
        <feGaussianBlur in="SourceAlpha" stdDeviation="12"/>
        <feOffset dy="12"/>
        <feComponentTransfer><feFuncA type="linear" slope=".65"/></feComponentTransfer>
        <feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>
      </filter>
      <filter id="handShadow" x="-100%" y="-100%" width="300%" height="300%">
        <feGaussianBlur in="SourceAlpha" stdDeviation="2"/>
        <feOffset dx="2" dy="3"/>
        <feComponentTransfer><feFuncA type="linear" slope=".7"/></feComponentTransfer>
        <feMerge><feMergeNode/><feMergeNode in="SourceGraphic"/></feMerge>
      </filter>
      <clipPath id="dialClip"><circle cx="300" cy="400" r="181"/></clipPath>
    </defs>

    <!-- Leather strap and stitching -->
    <g filter="url(#shadow)">
      <path d="M222 0 H378 L387 125 Q393 175 409 225 L191 225 Q207 175 213 125 Z"
            fill="url(#leather)" stroke="#51463a" stroke-width="2"/>
      <path d="M191 575 H409 Q393 625 387 675 L378 800 H222 L213 675 Q207 625 191 575 Z"
            fill="url(#leather)" stroke="#51463a" stroke-width="2"/>
      <path d="M230 0 L222 130 Q218 168 207 207 M370 0 L378 130 Q382 168 393 207
               M207 593 Q218 632 222 670 L230 800 M393 593 Q382 632 378 670 L370 800"
            fill="none" stroke="#a0937e" stroke-width="1.5"
            stroke-dasharray="5 7" opacity=".48"/>
      <path d="M242 0 L233 155 M358 0 L367 155 M233 645 L242 800 M367 645 L358 800"
            fill="none" stroke="#8b7766" opacity=".12" stroke-width="2"/>
    </g>

    <!-- Case, lugs, and crown -->
    <g filter="url(#shadow)">
      <path d="M180 245 L193 175 Q196 163 210 161 L248 164 L240 235 Z"
            fill="url(#steel)" stroke="#33312e" stroke-width="3"/>
      <path d="M420 245 L407 175 Q404 163 390 161 L352 164 L360 235 Z"
            fill="url(#steel)" stroke="#33312e" stroke-width="3"/>
      <path d="M180 555 L193 625 Q196 637 210 639 L248 636 L240 565 Z"
            fill="url(#steel)" stroke="#33312e" stroke-width="3"/>
      <path d="M420 555 L407 625 Q404 637 390 639 L352 636 L360 565 Z"
            fill="url(#steel)" stroke="#33312e" stroke-width="3"/>
      <rect x="497" y="376" width="29" height="48" rx="7" fill="#615e58" stroke="#262523" stroke-width="3"/>
      <rect x="516" y="371" width="28" height="58" rx="8" fill="url(#steel)" stroke="#292826" stroke-width="3"/>
      <path d="M522 378 V422 M527 375 V425 M532 375 V425 M537 378 V422"
            stroke="#514d46" stroke-width="1.5" opacity=".75"/>
      <circle cx="300" cy="400" r="213" fill="url(#steel)" stroke="#272726" stroke-width="4"/>
      <circle cx="300" cy="400" r="204" fill="#363838" stroke="#e0d9cd" stroke-width="2"/>
      <circle cx="300" cy="400" r="198" fill="url(#bezel)"/>
      <circle cx="300" cy="400" r="188" fill="#343b3b" stroke="#ede5d5" stroke-width="2"/>
      <circle cx="300" cy="400" r="182" fill="url(#dial)" stroke="#111719" stroke-width="3"/>
    </g>

    <!-- Dial printing -->
    <g clip-path="url(#dialClip)">
      <circle cx="300" cy="400" r="174" fill="none" stroke="#b8ac93" stroke-opacity=".3" stroke-width=".7"/>
      <circle cx="300" cy="400" r="141" fill="none" stroke="#c5baa4" stroke-opacity=".13" stroke-width=".7"/>
      <g id="minuteMarks"></g>
      <g id="hourMarks"></g>
      <text x="300" y="332" text-anchor="middle" fill="#e9e1ce"
            font-family="Georgia, serif" font-size="19" letter-spacing="4">AURELLE</text>
      <text x="300" y="348" text-anchor="middle" fill="#c7bda9"
            font-family="Arial, sans-serif" font-size="7" letter-spacing="2.3">GENÈVE</text>
      <text x="300" y="468" text-anchor="middle" fill="#e0d5bf"
            font-family="Georgia, serif" font-size="11" letter-spacing="1.6">AUTOMATIC</text>
      <text x="300" y="483" text-anchor="middle" fill="#adab9f"
            font-family="Arial, sans-serif" font-size="6.5" letter-spacing="1.8">TWENTY-EIGHT JEWELS</text>
      <text x="300" y="559" text-anchor="middle" fill="#a99f8c"
            font-family="Arial, sans-serif" font-size="6" letter-spacing="1.6">SWISS MADE</text>

      <!-- Date aperture -->
      <rect x="388" y="386" width="43" height="28" rx="2" fill="#070c0e"
            stroke="url(#gold)" stroke-width="2"/>
      <rect x="391" y="389" width="37" height="22" fill="#e4dfd1"/>
      <text id="dateNumber" x="409.5" y="406" text-anchor="middle"
            fill="#202626" font-family="Georgia, serif" font-size="16">1</text>

      <circle cx="300" cy="400" r="181" fill="url(#glass)" pointer-events="none"/>

      <!-- Hands point to twelve before rotation -->
      <g id="hourHand" filter="url(#handShadow)">
        <path d="M300 305 L306 319 L304 411 L300 419 L296 411 L294 319 Z"
              fill="url(#gold)" stroke="#403d35" stroke-width=".8"/>
        <path d="M300 315 L302 323 L301.5 394 L298.5 394 L298 323 Z"
              fill="#ece6d3" opacity=".85"/>
      </g>
      <g id="minuteHand" filter="url(#handShadow)">
        <path d="M300 267 L305 283 L303 412 L300 421 L297 412 L295 283 Z"
              fill="url(#gold)" stroke="#403d35" stroke-width=".8"/>
        <path d="M300 278 L301.7 286 L301.3 393 L298.7 393 L298.3 286 Z"
              fill="#f3edda" opacity=".9"/>
      </g>
      <g id="secondHand" filter="url(#handShadow)">
        <path d="M300 251 L301.2 392 L301.2 435 L300 447 L298.8 435 L298.8 392 Z"
              fill="#d9bf87"/>
        <circle cx="300" cy="427" r="5" fill="none" stroke="#d9bf87" stroke-width="1.5"/>
      </g>
      <circle cx="300" cy="400" r="7" fill="#d4c39d" stroke="#514734" stroke-width="1.5"/>
      <circle cx="300" cy="400" r="2.5" fill="#f5ead0"/>
    </g>
  </svg>

  <div class="details" aria-hidden="true">
    <span>Automatic</span><span>Local time</span><span>Steel</span>
  </div>
  <p class="local-time" id="localTime"></p>
</main>

<script>
(() => {
  const ns = "http://www.w3.org/2000/svg";
  const minuteMarks = document.getElementById("minuteMarks");
  const hourMarks = document.getElementById("hourMarks");

  for (let i = 0; i < 60; i++) {
    const mark = document.createElementNS(ns, "line");
    const major = i % 5 === 0;
    mark.setAttribute("x1", "300");
    mark.setAttribute("y1", major ? "228" : "230");
    mark.setAttribute("x2", "300");
    mark.setAttribute("y2", major ? "235" : "233");
    mark.setAttribute("stroke", major ? "#dfd4bd" : "#a9a89d");
    mark.setAttribute("stroke-width", major ? "1.4" : ".7");
    mark.setAttribute("transform", `rotate(${i * 6} 300 400)`);
    minuteMarks.appendChild(mark);
  }

  for (let i = 0; i < 12; i++) {
    if (i === 3) continue; // The date aperture occupies three o'clock.
    const group = document.createElementNS(ns, "g");
    group.setAttribute("transform", `rotate(${i * 30} 300 400)`);
    const offsets = i === 0 ? [-4.5, 4.5] : [0];
    offsets.forEach(offset => {
      const marker = document.createElementNS(ns, "path");
      marker.setAttribute("d", `M ${300 + offset - 2.5} 239 L ${300 + offset + 2.5} 239 L ${300 + offset + 1.7} 256 L ${300 + offset - 1.7} 256 Z`);
      marker.setAttribute("fill", "url(#gold)");
      marker.setAttribute("stroke", "#4a463c");
      marker.setAttribute("stroke-width", ".6");
      group.appendChild(marker);
    });
    hourMarks.appendChild(group);
  }

  const hourHand = document.getElementById("hourHand");
  const minuteHand = document.getElementById("minuteHand");
  const secondHand = document.getElementById("secondHand");
  const dateNumber = document.getElementById("dateNumber");
  const localTime = document.getElementById("localTime");
  const watch = document.getElementById("watch");
  const timeFormat = new Intl.DateTimeFormat(undefined, {
    hour: "numeric", minute: "2-digit", second: "2-digit"
  });
  const dateFormat = new Intl.DateTimeFormat(undefined, {
    weekday: "long", month: "long", day: "numeric"
  });
  let lastSecond = -1;

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

    hourHand.setAttribute("transform", `rotate(${hours * 30} 300 400)`);
    minuteHand.setAttribute("transform", `rotate(${minutes * 6} 300 400)`);
    secondHand.setAttribute("transform", `rotate(${seconds * 6} 300 400)`);

    if (now.getSeconds() !== lastSecond) {
      lastSecond = now.getSeconds();
      dateNumber.textContent = now.getDate();
      const time = timeFormat.format(now);
      const date = dateFormat.format(now);
      localTime.textContent = time;
      watch.setAttribute("aria-label", `Mechanical wristwatch showing ${time}, ${date}, local time`);
    }
    requestAnimationFrame(draw);
  }

  draw();
})();
</script>
</body>
</html>

Compare with

GPT-6.1 Terra Pro: other attempts