• Updated 11 Nov, 12:43 UTC
  • Next run 12 Nov, 05:17 UTCNext 12 Nov 05:17
  • Last 7 days: 10 new models · 61 runs7 d: 10 models · 61 runs
Wristwatch that shows the current time

Muse EmberMeta

Network offOpen alone (new tab)

Run details

Model
meta/muse-ember
Route
OpenRouter API, one user message
Served by
Meta
Effort
max, OpenRouter's default for this model
Limits
60 min · 943,718 output tokens (the model's limit)
Date
9 Nov 2026
Time
40 s
Size
18 kB
Tokens
84 in, 22,540 out (15,778 of them thinking)
List price
$0.011 at today's price ($0.10 in / $0.50 out per M)
Paid
$0.011

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

18 kB 399 lines Raw

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>AURELE — Automatic Tourbillon</title>
<style>
  *{margin:0;padding:0;box-sizing:border-box}
  html,body{height:100%}
  body{
    background:radial-gradient(ellipse at 50% 36%,#2b241c 0%,#131318 46%,#050506 100%);
    color:#e8ddd0;
    font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;
    display:grid;place-items:center;overflow:hidden;position:relative;
  }
  body::after{
    content:"";position:fixed;inset:0;pointer-events:none;
    background:radial-gradient(ellipse at center,transparent 52%,rgba(0,0,0,.62) 100%);
  }
  .corner{
    position:absolute;z-index:5;font-size:9px;letter-spacing:3px;
    text-transform:uppercase;color:rgba(216,190,140,.58);white-space:nowrap;
  }
  .tl{top:26px;left:30px}.tr{top:26px;right:30px;text-align:right}
  .bl{bottom:26px;left:30px}.br{bottom:26px;right:30px;text-align:right}
  .scene{position:relative;display:flex;flex-direction:column;align-items:center;perspective:1200px;z-index:2}
  .halo{
    position:absolute;top:44%;left:50%;width:760px;height:760px;border-radius:50%;
    transform:translate(-50%,-50%);pointer-events:none;
    background:radial-gradient(circle,rgba(212,175,116,.17),rgba(212,175,116,.05) 42%,transparent 66%);
  }
  .tilt{transform-style:preserve-3d;will-change:transform}
  .watch{
    position:relative;display:flex;flex-direction:column;align-items:center;
    user-select:none;-webkit-user-select:none;
    filter:drop-shadow(0 34px 52px rgba(0,0,0,.78));
  }
  /* ---------- strap ---------- */
  .strap{
    width:164px;height:195px;position:relative;z-index:1;overflow:hidden;
    background-color:#1c120d;
    background-image:
      radial-gradient(ellipse at 30% 18%,rgba(255,255,255,.08),transparent 52%),
      repeating-linear-gradient(0deg,rgba(0,0,0,.20) 0 2px,transparent 2px 7px),
      repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 3px,transparent 3px 10px),
      linear-gradient(180deg,#2d1e15,#17100c 58%,#0f0907);
    box-shadow:inset 0 0 0 1px rgba(0,0,0,.65),inset -14px 0 22px rgba(0,0,0,.55),inset 14px 0 22px rgba(0,0,0,.55);
  }
  .strap::before{
    content:"";position:absolute;inset:10px 12px;border-radius:10px;
    border:1.5px dashed rgba(203,165,105,.55);
  }
  .strap-top{margin-bottom:-78px;border-radius:18px 18px 6px 6px}
  .strap-bottom{margin-top:-78px;border-radius:6px 6px 18px 18px}
  .buckle{
    position:absolute;top:16px;left:50%;transform:translateX(-50%);
    width:92px;height:54px;border:5px solid #c9a35f;border-radius:8px;
    box-shadow:0 3px 8px rgba(0,0,0,.6),inset 0 1px 2px rgba(255,240,200,.8);
  }
  .buckle span{position:absolute;left:50%;top:7px;bottom:7px;width:2px;background:#c9a35f;transform:translateX(-50%)}
  .keeper{
    position:absolute;left:8px;right:8px;height:20px;
    background:linear-gradient(180deg,#2f2017,#150e0a);
    border-top:1px solid rgba(201,163,95,.38);border-bottom:1px solid rgba(0,0,0,.85);
    box-shadow:0 2px 5px rgba(0,0,0,.5);
  }
  .keeper.upper{top:90px}
  .keeper.lower{top:86px;height:18px}
  .holes{
    position:absolute;left:50%;top:148px;width:10px;height:88px;
    transform:translate(-50%,-50%);
    background-image:radial-gradient(circle,#050303 3.5px,#4a3423 4.5px,transparent 5.5px);
    background-size:10px 26px;background-repeat:repeat-y;
  }
  /* ---------- case ---------- */
  .case{
    position:relative;width:360px;height:360px;z-index:2;border-radius:50%;
    background:conic-gradient(from 210deg,#f7f7fa,#8f8f9a,#e9e9ee,#6f6f7b,#d7d7de,#898995,#f2f2f6,#777783,#f7f7fa);
    box-shadow:0 26px 60px rgba(0,0,0,.8),0 4px 12px rgba(0,0,0,.6),inset 0 2px 2px rgba(255,255,255,.9),inset 0 -3px 6px rgba(0,0,0,.5);
  }
  .lug{position:absolute;width:26px;height:24px;border-radius:4px;z-index:1;background:linear-gradient(90deg,#8f8f9a,#ececf0 50%,#6f6f7b);box-shadow:0 2px 4px rgba(0,0,0,.5)}
  .lug.tl{left:calc(50% - 56px);top:-9px}.lug.tr{left:calc(50% + 30px);top:-9px}
  .lug.bl{left:calc(50% - 56px);bottom:-9px}.lug.br{left:calc(50% + 30px);bottom:-9px}
  .bezel{
    position:absolute;inset:4px;border-radius:50%;
    background:repeating-conic-gradient(from 0deg,#f3c99b 0deg 3.6deg,#9c5a3c 3.6deg 7.2deg);
    box-shadow:inset 0 2px 3px rgba(255,255,255,.85),inset 0 -3px 6px rgba(60,30,10,.65),0 1px 2px rgba(0,0,0,.4);
  }
  .bezel::after{
    content:"";position:absolute;inset:11px;border-radius:50%;
    background:linear-gradient(145deg,#eec39b,#b76e79 48%,#f6d1a8 76%,#8a4e38);
    box-shadow:inset 0 1px 2px rgba(255,255,255,.85),inset 0 -2px 4px rgba(0,0,0,.45);
  }
  .crown{
    position:absolute;right:-16px;top:50%;transform:translateY(-50%);
    width:20px;height:32px;border-radius:5px;z-index:1;
    background:repeating-linear-gradient(90deg,#e6c08a 0 3px,#8a5a2e 3px 5px);
    box-shadow:0 2px 5px rgba(0,0,0,.6),inset 0 1px 2px rgba(255,255,255,.7);
  }
  .crown::after{
    content:"A";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-family:Didot,"Bodoni MT",Georgia,serif;font-size:11px;font-weight:700;color:#3a2410;
  }
  .pusher{
    position:absolute;right:-9px;width:13px;height:18px;border-radius:4px;z-index:1;
    background:linear-gradient(90deg,#d7d7de,#8f8f9a,#f0f0f4);box-shadow:0 2px 4px rgba(0,0,0,.55);
  }
  .pusher.top{top:30%;transform:rotate(18deg)}
  .pusher.bottom{top:calc(70% - 18px);transform:rotate(-18deg)}
  /* ---------- dial ---------- */
  .dial{
    position:absolute;inset:26px;border-radius:50%;overflow:hidden;z-index:2;
    background:
      repeating-conic-gradient(from 0deg at 50% 50%,rgba(255,255,255,.035) 0deg .8deg,transparent .8deg 2.4deg),
      repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.02) 0 1px,transparent 1px 5px),
      radial-gradient(circle at 38% 32%,#1d3455 0%,#0f2138 38%,#081426 68%,#040a16 100%);
    box-shadow:inset 0 0 0 1px rgba(212,175,116,.35),inset 0 0 45px rgba(0,0,0,.85),inset 0 12px 24px rgba(0,0,0,.5);
  }
  .dial::before{
    content:"";position:absolute;inset:7px;border-radius:50%;pointer-events:none;
    border:1px solid rgba(212,175,116,.22);
  }
  .ticks,.indices{position:absolute;inset:0}
  .tick{
    position:absolute;left:50%;top:50%;width:1.5px;height:9px;margin:-4.5px 0 0 -.75px;
    background:rgba(232,220,195,.72);border-radius:1px;
  }
  .tick.major{width:2.5px;height:13px;margin:-6.5px 0 0 -1.25px;background:#d8c49a}
  .index{
    position:absolute;left:50%;top:50%;width:6px;height:20px;margin:-10px 0 0 -3px;border-radius:2px;
    background:linear-gradient(90deg,#7a5527,#f2d5a0 45%,#fff0c8 54%,#9c743d);
    box-shadow:0 2px 4px rgba(0,0,0,.7),inset 0 0 2px rgba(0,0,0,.35);
  }
  .index.double{
    width:16px;margin-left:-8px;
    background:
      linear-gradient(90deg,#6e4f22,#f2d5a0 55%,#9c743d) 0 0/5px 100% no-repeat,
      linear-gradient(90deg,#6e4f22,#f2d5a0 55%,#9c743d) 100% 0/5px 100% no-repeat;
  }
  .brand{position:absolute;top:56px;left:0;right:0;text-align:center;z-index:3}
  .logo{
    width:22px;height:22px;margin:0 auto 5px;border:1px solid rgba(230,201,143,.85);border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    font-family:Didot,"Bodoni MT",Georgia,serif;font-size:12px;color:#e6c98f;
  }
  .brand .name{font-family:Didot,"Bodoni MT",Georgia,serif;font-size:20px;font-weight:500;letter-spacing:6px;padding-left:6px;color:#e6c98f;text-shadow:0 1px 2px #000}
  .brand .sub{margin-top:4px;font-size:7.5px;letter-spacing:3.5px;padding-left:3px;text-transform:uppercase;color:rgba(230,201,143,.75)}
  .lower-text{
    position:absolute;left:0;right:0;top:calc(50% + 33px);text-align:center;z-index:3;
    font-size:7.5px;letter-spacing:3px;text-transform:uppercase;color:rgba(230,201,143,.82);
  }
  .swiss{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:6.5px;letter-spacing:2px;color:rgba(230,201,143,.6);z-index:3}
  /* date window */
  .date-window{
    position:absolute;left:calc(50% + 108px);top:50%;transform:translate(-50%,-50%);z-index:4;padding:3px;border-radius:3px;
    background:linear-gradient(145deg,#f0c98f,#9c6b3f 55%,#e6c08a);
    box-shadow:0 3px 7px rgba(0,0,0,.75),inset 0 1px 1px rgba(255,255,255,.8);
  }
  .date-inner{
    width:32px;height:24px;background:linear-gradient(180deg,#fdf8ec,#ece2c8);
    display:flex;align-items:center;justify-content:center;
    font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:17px;color:#111;
    box-shadow:inset 0 1px 3px rgba(0,0,0,.35);
  }
  /* tourbillon */
  .tourbillon{
    position:absolute;left:50%;top:calc(50% + 84px);transform:translate(-50%,-50%);
    width:70px;height:70px;border-radius:50%;z-index:3;overflow:hidden;
    background:radial-gradient(circle at 35% 30%,#182233,#05080f 72%);
    border:2px solid #c9a35f;
    box-shadow:inset 0 0 0 3px rgba(0,0,0,.8),inset 0 0 0 5px rgba(201,163,95,.35),0 4px 10px rgba(0,0,0,.65);
  }
  .tourbillon::before{
    content:"";position:absolute;inset:10px;border-radius:50%;opacity:.55;
    background:repeating-conic-gradient(from 0deg,rgba(201,163,95,.35) 0deg 10deg,transparent 10deg 20deg);
  }
  .cage{position:absolute;inset:7px;border-radius:50%;border:1.5px solid rgba(230,201,143,.9);animation:spin 60s linear infinite}
  .arm{
    position:absolute;left:50%;top:50%;width:50%;height:2px;margin-top:-1px;
    background:linear-gradient(90deg,#e6c98f,#8a642f);transform-origin:0 50%;transform:rotate(var(--r));
  }
  .balance{
    position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;
    border:2.5px solid #cbd5e1;box-shadow:inset 0 0 0 1px rgba(0,0,0,.5);
    animation:swing .85s ease-in-out infinite alternate;
  }
  .balance::before{content:"";position:absolute;left:50%;top:50%;width:100%;height:2px;background:#e2e8f0;transform:translate(-50%,-50%)}
  .jewel{
    position:absolute;left:50%;top:50%;width:7px;height:7px;transform:translate(-50%,-50%);border-radius:50%;z-index:2;
    background:radial-gradient(circle at 30% 30%,#ff9a9a,#b91c1c 72%);box-shadow:0 0 5px rgba(255,0,0,.65);
  }
  /* hands */
  .hand{position:absolute;left:50%}
  .hour-hand{
    width:13px;height:86px;top:calc(50% - 86px);margin-left:-6.5px;transform-origin:50% 100%;z-index:5;
    background:linear-gradient(90deg,#6e4f22,#e8c88a 42%,#fff3d0 50%,#c19a55 58%,#5f421e);
    clip-path:polygon(50% 0%,78% 68%,100% 100%,0% 100%,22% 68%);
    filter:drop-shadow(0 2px 3px rgba(0,0,0,.6));
  }
  .minute-hand{
    width:9px;height:130px;top:calc(50% - 130px);margin-left:-4.5px;transform-origin:50% 100%;z-index:6;
    background:linear-gradient(90deg,#6e4f22,#e8c88a 42%,#fff3d0 50%,#c19a55 58%,#5f421e);
    clip-path:polygon(50% 0%,80% 72%,100% 100%,0% 100%,20% 72%);
    filter:drop-shadow(0 2px 3px rgba(0,0,0,.6));
  }
  .second-hand{
    width:3px;height:168px;top:calc(50% - 138px);margin-left:-1.5px;transform-origin:50% 138px;z-index:7;border-radius:2px;
    background:linear-gradient(90deg,#8a642f,#f6dd9f 45%,#fff0bd 55%,#8a642f);
    box-shadow:0 1px 3px rgba(0,0,0,.5);
  }
  .second-hand::after{
    content:"";position:absolute;left:50%;top:138px;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;
    background:radial-gradient(circle at 32% 30%,#ffeec0,#c9a35f 55%,#7a551f);
    box-shadow:0 1px 4px rgba(0,0,0,.6),inset 0 0 0 2px rgba(255,255,255,.25);
  }
  .center-cap{
    position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;z-index:8;
    background:radial-gradient(circle at 34% 30%,#fff0c8,#c9a35f 52%,#6e4f22);
    box-shadow:0 2px 5px rgba(0,0,0,.7),inset 0 1px 1px rgba(255,255,255,.9);
  }
  .center-cap::after{content:"";position:absolute;inset:6px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2a2a2a,#050505)}
  /* sapphire glass */
  .glass{
    position:absolute;inset:0;border-radius:50%;z-index:9;pointer-events:none;
    background:linear-gradient(118deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,.07) 22%,transparent 42%,transparent 68%,rgba(255,255,255,.05) 84%,transparent 100%);
  }
  .glass::before{
    content:"";position:absolute;left:12%;top:6%;width:52%;height:34%;border-radius:50%;
    background:radial-gradient(ellipse at center,rgba(255,255,255,.22),transparent 68%);
    transform:rotate(-18deg);filter:blur(2px);
  }
  .glass::after{
    content:"";position:absolute;right:14%;bottom:9%;width:34%;height:20%;border-radius:50%;
    background:radial-gradient(ellipse,rgba(255,255,255,.09),transparent 70%);transform:rotate(-18deg);
  }
  /* caption */
  .caption{margin-top:26px;text-align:center;position:relative;z-index:3}
  .caption .title{font-family:Didot,"Bodoni MT",Georgia,serif;font-size:13px;letter-spacing:6px;padding-left:6px;text-transform:uppercase;color:#d8c49a}
  .caption .time{margin-top:9px;font-size:11px;letter-spacing:3px;color:rgba(232,221,200,.68);font-variant-numeric:tabular-nums}
  .caption .date-full{margin-top:5px;font-size:9px;letter-spacing:2px;text-transform:uppercase;color:rgba(232,221,200,.4)}
  @keyframes spin{to{transform:rotate(360deg)}}
  @keyframes swing{from{transform:rotate(-135deg)}to{transform:rotate(135deg)}}
  @media (max-width:520px){.scaler{transform:scale(.78)}}
  @media (max-width:380px){.scaler{transform:scale(.62)}}
  @media (max-height:720px){.scaler{transform:scale(.84)}}
  @media (max-height:600px){.scaler{transform:scale(.68)}}
  @media (max-width:720px){.corner{display:none}}
</style>
</head>
<body>
  <div class="corner tl">Maison Aurele — Genève</div>
  <div class="corner tr">Calibre A-01 · In-House Automatic</div>
  <div class="corner bl">Haute Horlogerie</div>
  <div class="corner br">Sapphire Crystal · 41 mm</div>

  <main class="scene" aria-label="Mechanical wristwatch showing the current local time">
    <div class="halo"></div>
    <div class="scaler">
      <div class="tilt" id="tilt">
        <div class="watch">
          <div class="strap strap-top">
            <div class="buckle"><span></span></div>
            <div class="keeper upper"></div>
          </div>

          <div class="case">
            <div class="lug tl"></div><div class="lug tr"></div>
            <div class="lug bl"></div><div class="lug br"></div>
            <div class="pusher top"></div>
            <div class="pusher bottom"></div>
            <div class="bezel"></div>

            <div class="dial" id="dial">
              <div class="ticks" id="ticks"></div>
              <div class="indices" id="indices"></div>

              <div class="brand">
                <div class="logo">A</div>
                <div class="name">AURELE</div>
                <div class="sub">Genève</div>
              </div>

              <div class="lower-text">Automatique · Chronomètre</div>

              <div class="date-window"><div class="date-inner" id="dateNum">1</div></div>

              <div class="tourbillon">
                <div class="cage">
                  <div class="arm" style="--r:0deg"></div>
                  <div class="arm" style="--r:120deg"></div>
                  <div class="arm" style="--r:240deg"></div>
                  <div class="balance"></div>
                </div>
                <div class="jewel"></div>
              </div>

              <div class="swiss">SWISS MADE</div>

              <div class="hand hour-hand" id="hourHand"></div>
              <div class="hand minute-hand" id="minuteHand"></div>
              <div class="hand second-hand" id="secondHand"></div>
              <div class="center-cap"></div>
              <div class="glass"></div>
            </div>

            <div class="crown"></div>
          </div>

          <div class="strap strap-bottom">
            <div class="keeper lower"></div>
            <div class="holes"></div>
          </div>
        </div>
      </div>
    </div>

    <div class="caption">
      <div class="title">Aurele Tourbillon</div>
      <div class="time" id="digitalTime">--:--:--</div>
      <div class="date-full" id="fullDate"></div>
    </div>
  </main>

<script>
  // Build minute track
  var ticksEl = document.getElementById('ticks');
  for (var i = 0; i < 60; i++) {
    var t = document.createElement('div');
    t.className = 'tick' + (i % 5 === 0 ? ' major' : '');
    t.style.transform = 'rotate(' + (i * 6) + 'deg) translateY(-140px)';
    ticksEl.appendChild(t);
  }

  // Build applied hour indices (3 o'clock = date window, 6 o'clock = tourbillon)
  var indicesEl = document.getElementById('indices');
  for (var h = 0; h < 12; h++) {
    if (h === 3 || h === 6) continue;
    var el = document.createElement('div');
    el.className = 'index' + (h === 0 ? ' double' : '');
    el.style.transform = 'rotate(' + (h * 30) + 'deg) translateY(-118px)';
    indicesEl.appendChild(el);
  }

  var hourHand   = document.getElementById('hourHand');
  var minuteHand = document.getElementById('minuteHand');
  var secondHand = document.getElementById('secondHand');
  var dateNum    = document.getElementById('dateNum');
  var digitalTime= document.getElementById('digitalTime');
  var fullDate   = document.getElementById('fullDate');
  var tilt       = document.getElementById('tilt');

  // Gentle 3D tilt following the cursor
  var targetX = 0, targetY = 0, curX = 0, curY = 0;
  window.addEventListener('mousemove', function (e) {
    targetY =  (e.clientX / window.innerWidth  - 0.5) * 8;
    targetX = -(e.clientY / window.innerHeight - 0.5) * 8;
  });

  var lastDay = -1;
  var lastSec = -1;

  function pad(n){ return String(n).padStart(2,'0'); }

  function tick(){
    var now = new Date();
    var ms = now.getMilliseconds();

    // Sweeping seconds: continuous motion using milliseconds
    var s = now.getSeconds() + ms / 1000;
    var m = now.getMinutes() + s / 60;
    var hr = (now.getHours() % 12) + m / 60;

    secondHand.style.transform = 'rotate(' + (s  * 6)  + 'deg)';
    minuteHand.style.transform = 'rotate(' + (m  * 6)  + 'deg)';
    hourHand.style.transform   = 'rotate(' + (hr * 30) + 'deg)';

    if (now.getDate() !== lastDay) {
      lastDay = now.getDate();
      dateNum.textContent = lastDay;
      fullDate.textContent = now.toLocaleDateString(undefined, {
        weekday:'long', day:'numeric', month:'long', year:'numeric'
      });
    }

    if (now.getSeconds() !== lastSec) {
      lastSec = now.getSeconds();
      digitalTime.textContent = pad(now.getHours()) + ':' + pad(now.getMinutes()) + ':' + pad(now.getSeconds());
    }

    curX += (targetX - curX) * 0.06;
    curY += (targetY - curY) * 0.06;
    tilt.style.transform = 'rotateX(' + curX.toFixed(3) + 'deg) rotateY(' + curY.toFixed(3) + 'deg)';

    requestAnimationFrame(tick);
  }
  requestAnimationFrame(tick);
</script>
</body>
</html>

Compare with

Muse Ember: other attempts