Showcase

A penguin about to deadlift, built by Ling 3.1 Flash

Hostedvia OpenCodeOpenRouter
Running live in your browserNew tab
Show the code the model wrote
HTML16,766 characters
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Powerlifting Penguin 🐧</title>
<style>
  :root { color-scheme: dark; }
  * { box-sizing: border-box; }
  body {
    margin: 0;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: radial-gradient(1200px 700px at 50% -10%, #1d2733, #0d1117 70%);
    font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  }
  .card { text-align: center; max-width: 920px; }
  h1 { margin: 0 0 4px; font-size: clamp(1.4rem, 3vw, 2rem); color: #f1f5f9; letter-spacing: .02em; }
  .sub { margin: 0 0 14px; color: #94a3b8; font-size: .95rem; }
  svg {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.06);
    background: #dfe7ee;
  }
  .hint { margin: 12px 0 0; color: #64748b; font-size: .8rem; }

  /* ---- SVG animations ---- */
  .rep { animation: rep 4.5s cubic-bezier(.45,.05,.35,1) infinite; }
  @keyframes rep {
    0%, 12%   { transform: translateY(0); }
    42%, 58%  { transform: translateY(-26px); }
    88%, 100% { transform: translateY(0); }
  }
  .puff { opacity: 0; animation: puff 4.5s ease-out infinite; }
  @keyframes puff {
    0%, 16%   { opacity: 0; transform: translateY(0); }
    28%       { opacity: .8; transform: translateY(-12px); }
    50%, 100% { opacity: 0; transform: translateY(-28px); }
  }
  .sh { transform-box: fill-box; transform-origin: center; animation: sh 4.5s cubic-bezier(.45,.05,.35,1) infinite; }
  @keyframes sh {
    0%, 12%   { opacity: var(--so, .25); transform: scaleX(1); }
    42%, 58%  { opacity: calc(var(--so, .25) * .5); transform: scaleX(.84); }
    88%, 100% { opacity: var(--so, .25); transform: scaleX(1); }
  }
  @media (prefers-reduced-motion: reduce) {
    .rep, .puff, .sh { animation: none; }
    .puff { opacity: 0; }
  }
</style>
</head>
<body>
  <main class="card">
    <h1>🐧 Penguin PR Day</h1>
    <p class="sub">At the power rack — belt on, chalk up, ready to deadlift.</p>

    <svg viewBox="0 0 800 600" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="svgTitle svgDesc">
      <title id="svgTitle">Penguin ready to deadlift at a power rack</title>
      <desc id="svgDesc">A cartoon penguin wearing a lifting belt, headband and chalked flippers stands behind a loaded barbell on the gym floor, beside a power rack with stored plates, a motivational poster and a chalkboard.</desc>

      <defs>
        <linearGradient id="wallGrad" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0" stop-color="#e9eff5"/>
          <stop offset="1" stop-color="#ccd7e1"/>
        </linearGradient>
        <linearGradient id="floorGrad" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0" stop-color="#5d636d"/>
          <stop offset="1" stop-color="#43484f"/>
        </linearGradient>
        <linearGradient id="steelGrad" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0" stop-color="#57606e"/>
          <stop offset=".5" stop-color="#3d4550"/>
          <stop offset="1" stop-color="#2c333d"/>
        </linearGradient>
        <linearGradient id="barGrad" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0" stop-color="#e8ecf2"/>
          <stop offset=".45" stop-color="#aeb6c2"/>
          <stop offset="1" stop-color="#7c8492"/>
        </linearGradient>
        <radialGradient id="bodyGrad" cx=".35" cy=".28" r=".95">
          <stop offset="0" stop-color="#2e3a48"/>
          <stop offset="1" stop-color="#151d27"/>
        </radialGradient>
        <clipPath id="headClip"><circle cx="400" cy="218" r="42"/></clipPath>

        <!-- competition plates -->
        <g id="plate25">
          <circle r="78" fill="#d84545" stroke="#9e2f2f" stroke-width="5"/>
          <circle r="60" fill="none" stroke="#c03a3a" stroke-width="4"/>
          <circle r="15" fill="#c9ccd4" stroke="#8a8f98" stroke-width="3"/>
          <circle r="6" fill="#3a4149"/>
          <text x="0" y="31" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="18" font-weight="bold" fill="#ffffff" opacity=".9">25</text>
        </g>
        <g id="plate20">
          <circle r="56" fill="#2f6fd0" stroke="#1f4f9e" stroke-width="4"/>
          <circle r="40" fill="none" stroke="#295fba" stroke-width="3"/>
          <circle r="12" fill="#c9ccd4" stroke="#8a8f98" stroke-width="3"/>
          <circle r="5" fill="#3a4149"/>
        </g>
        <g id="plate15">
          <circle r="36" fill="#eab308" stroke="#b8890a" stroke-width="4"/>
          <circle r="10" fill="#c9ccd4" stroke="#8a8f98" stroke-width="3"/>
          <circle r="4" fill="#3a4149"/>
        </g>
        <g id="plate10">
          <circle r="20" fill="#3d9e4d" stroke="#2c7a39" stroke-width="3"/>
          <circle r="7" fill="#c9ccd4" stroke="#8a8f98" stroke-width="2"/>
          <circle r="3" fill="#3a4149"/>
        </g>
      </defs>

      <!-- ============ GYM ROOM ============ -->
      <rect x="0" y="0" width="800" height="472" fill="url(#wallGrad)"/>
      <rect x="0" y="470" width="800" height="130" fill="url(#floorGrad)"/>
      <g stroke="#3a3f46" stroke-width="2" opacity=".55">
        <line x1="0" y1="540" x2="800" y2="540"/>
        <line x1="120" y1="472" x2="100" y2="600"/>
        <line x1="240" y1="472" x2="228" y2="600"/>
        <line x1="360" y1="472" x2="356" y2="600"/>
        <line x1="480" y1="472" x2="484" y2="600"/>
        <line x1="600" y1="472" x2="612" y2="600"/>
        <line x1="720" y1="472" x2="740" y2="600"/>
      </g>
      <ellipse cx="400" cy="562" rx="300" ry="42" fill="#ffffff" opacity=".04"/>
      <rect x="0" y="462" width="800" height="10" fill="#aeb8c2"/>

      <!-- poster -->
      <g>
        <rect x="30" y="70" width="112" height="150" rx="6" fill="#f4f6f8" stroke="#9aa1ac" stroke-width="2"/>
        <rect x="38" y="78" width="96" height="134" rx="3" fill="#f59e0b"/>
        <rect x="58" y="126" width="60" height="6" rx="3" fill="#20242b"/>
        <circle cx="56" cy="129" r="10" fill="#20242b"/>
        <circle cx="120" cy="129" r="10" fill="#20242b"/>
        <text x="86" y="162" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="13" font-weight="bold" fill="#20242b">DEADLIFT</text>
        <text x="86" y="178" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="13" font-weight="bold" fill="#20242b">CLUB</text>
        <text x="86" y="198" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="8" fill="#7c4a03">EST. 2024</text>
      </g>

      <!-- chalkboard -->
      <g>
        <rect x="662" y="64" width="128" height="108" rx="6" fill="#8b6b4a"/>
        <rect x="670" y="72" width="112" height="92" rx="3" fill="#33413a"/>
        <text x="726" y="96" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="11" font-weight="bold" fill="#e8f0ea">TODAY'S GOAL</text>
        <text x="726" y="124" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="17" font-weight="bold" fill="#ffffff">225 kg</text>
        <text x="726" y="145" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="10" fill="#cfe0d4">x 3 reps</text>
        <path d="M 698 153 L 754 153" stroke="#ffffff" stroke-width="2" opacity=".6" stroke-linecap="round"/>
      </g>

      <!-- ============ POWER RACK ============ -->
      <g id="rack">
        <rect x="132" y="458" width="36" height="16" rx="4" fill="#2c333d"/>
        <rect x="632" y="458" width="36" height="16" rx="4" fill="#2c333d"/>
        <rect x="142" y="120" width="16" height="344" rx="3" fill="url(#steelGrad)" stroke="#1f252d" stroke-width="2"/>
        <rect x="642" y="120" width="16" height="344" rx="3" fill="url(#steelGrad)" stroke="#1f252d" stroke-width="2"/>
        <rect x="142" y="106" width="516" height="16" rx="4" fill="url(#steelGrad)" stroke="#1f252d" stroke-width="2"/>
        <!-- hole columns -->
        <line x1="150" y1="148" x2="150" y2="452" stroke="#181d24" stroke-width="5" stroke-dasharray="0.1 19.9" stroke-linecap="round"/>
        <line x1="650" y1="148" x2="650" y2="452" stroke="#181d24" stroke-width="5" stroke-dasharray="0.1 19.9" stroke-linecap="round"/>
        <!-- nameplate -->
        <rect x="368" y="109" width="64" height="10" rx="2" fill="#c8ccd4" stroke="#8a8f98"/>
        <text x="400" y="116.5" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="6" fill="#333a44">PENGUIN GYM</text>
        <!-- safety arms -->
        <rect x="156" y="298" width="142" height="11" rx="4" fill="url(#steelGrad)" stroke="#1f252d" stroke-width="1.5"/>
        <rect x="502" y="298" width="142" height="11" rx="4" fill="url(#steelGrad)" stroke="#1f252d" stroke-width="1.5"/>
        <!-- storage pegs + stored plates -->
        <rect x="156" y="404" width="64" height="9" rx="3" fill="#2c333d"/>
        <rect x="580" y="404" width="64" height="9" rx="3" fill="#2c333d"/>
        <use href="#plate20" transform="translate(212 392) scale(.42)"/>
        <use href="#plate15" transform="translate(222 396) scale(.42)"/>
        <use href="#plate20" transform="translate(588 392) scale(.42)"/>
        <use href="#plate15" transform="translate(578 396) scale(.42)"/>
      </g>

      <!-- bar resting in the rack -->
      <g id="rackedBar">
        <rect x="140" y="166" width="22" height="12" rx="3" fill="#2c333d"/>
        <rect x="638" y="166" width="22" height="12" rx="3" fill="#2c333d"/>
        <rect x="118" y="171" width="564" height="9" rx="4.5" fill="url(#barGrad)" stroke="#6b7280"/>
        <use href="#plate25" transform="translate(244 175.5) scale(.68)"/>
        <use href="#plate20" transform="translate(256 175.5) scale(.68)"/>
        <use href="#plate15" transform="translate(266 175.5) scale(.68)"/>
        <use href="#plate25" transform="translate(556 175.5) scale(.68)"/>
        <use href="#plate20" transform="translate(544 175.5) scale(.68)"/>
        <use href="#plate15" transform="translate(534 175.5) scale(.68)"/>
        <rect x="276" y="169" width="10" height="13" fill="#20242b"/>
        <rect x="514" y="169" width="10" height="13" fill="#20242b"/>
      </g>

      <!-- rack shadows -->
      <ellipse cx="150" cy="476" rx="26" ry="6" fill="#000000" opacity=".18"/>
      <ellipse cx="650" cy="476" rx="26" ry="6" fill="#000000" opacity=".18"/>

      <!-- ============ PENGUIN ============ -->
      <g id="lifter" class="rep">
        <!-- feet -->
        <ellipse cx="370" cy="468" rx="21" ry="10" fill="#f6a623" stroke="#d97706" stroke-width="2" transform="rotate(-8 370 468)"/>
        <ellipse cx="430" cy="468" rx="21" ry="10" fill="#f6a623" stroke="#d97706" stroke-width="2" transform="rotate(8 430 468)"/>
        <!-- body -->
        <ellipse cx="400" cy="345" rx="70" ry="112" fill="url(#bodyGrad)" stroke="#0e141b" stroke-width="2"/>
        <!-- belly -->
        <ellipse cx="400" cy="356" rx="47" ry="84" fill="#f8fafc"/>
        <!-- belt -->
        <path d="M 347 404 Q 400 432 453 404" fill="none" stroke="#20242b" stroke-width="22" stroke-linecap="round"/>
        <rect x="390" y="414" width="20" height="16" rx="3" fill="#d7dbe2" stroke="#9aa1ac" stroke-width="1.5"/>
        <rect x="395" y="418" width="10" height="8" fill="#20242b"/>
        <!-- head -->
        <circle cx="400" cy="218" r="42" fill="url(#bodyGrad)" stroke="#0e141b" stroke-width="2"/>
        <g clip-path="url(#headClip)">
          <rect x="356" y="184" width="88" height="12" fill="#f6a623"/>
          <rect x="356" y="184" width="88" height="3" fill="#d97706" opacity=".7"/>
        </g>
        <!-- face -->
        <ellipse cx="383" cy="216" rx="15" ry="19" fill="#f8fafc"/>
        <ellipse cx="417" cy="216" rx="15" ry="19" fill="#f8fafc"/>
        <circle cx="383" cy="212" r="7.5" fill="#ffffff" stroke="#0e141b" stroke-width="1.5"/>
        <circle cx="417" cy="212" r="7.5" fill="#ffffff" stroke="#0e141b" stroke-width="1.5"/>
        <circle cx="384" cy="214" r="3.4" fill="#0e141b"/>
        <circle cx="416" cy="214" r="3.4" fill="#0e141b"/>
        <circle cx="385.3" cy="212.7" r="1.1" fill="#ffffff"/>
        <circle cx="417.3" cy="212.7" r="1.1" fill="#ffffff"/>
        <path d="M 371 197 L 393 202" stroke="#0e141b" stroke-width="4.5" stroke-linecap="round"/>
        <path d="M 407 202 L 429 197" stroke="#0e141b" stroke-width="4.5" stroke-linecap="round"/>
        <path d="M 390 231 Q 400 235 410 231 Q 405 245 400 247 Q 395 245 390 231 Z" fill="#f6a623" stroke="#d97706" stroke-width="1.5" stroke-linejoin="round"/>
        <path d="M 394 233 Q 400 236 406 233 Q 403 240 400 241 Q 397 240 394 233 Z" fill="#b45309"/>
      </g>

      <!-- ============ BARBELL ON THE FLOOR ============ -->
      <g id="barbell" class="rep">
        <rect x="100" y="390" width="70" height="14" rx="7" fill="url(#barGrad)" stroke="#6b7280"/>
        <rect x="630" y="390" width="70" height="14" rx="7" fill="url(#barGrad)" stroke="#6b7280"/>
        <rect x="100" y="392" width="600" height="10" rx="5" fill="url(#barGrad)" stroke="#6b7280"/>
        <use href="#plate25" x="220" y="397"/>
        <use href="#plate20" x="232" y="397"/>
        <use href="#plate15" x="243" y="397"/>
        <use href="#plate10" x="253" y="397"/>
        <use href="#plate25" x="580" y="397"/>
        <use href="#plate20" x="568" y="397"/>
        <use href="#plate15" x="557" y="397"/>
        <use href="#plate10" x="547" y="397"/>
        <rect x="272" y="387" width="12" height="20" rx="2" fill="#20242b" stroke="#10141a"/>
        <rect x="516" y="387" width="12" height="20" rx="2" fill="#20242b" stroke="#10141a"/>
      </g>

      <!-- gripping flippers (over the bar) -->
      <g id="grip" class="rep">
        <path d="M 350 288 Q 326 330 338 384 Q 341 397 353 393 Q 358 390 356 381 Q 349 328 366 294 Q 358 287 350 288 Z" fill="#1a232d" stroke="#0e141b" stroke-width="2" stroke-linejoin="round"/>
        <path d="M 450 288 Q 474 330 462 384 Q 459 397 447 393 Q 442 390 444 381 Q 451 328 434 294 Q 442 287 450 288 Z" fill="#1a232d" stroke="#0e141b" stroke-width="2" stroke-linejoin="round"/>
        <g fill="#ffffff" opacity=".85">
          <circle cx="349" cy="388" r="2"/><circle cx="343" cy="380" r="1.6"/><circle cx="356" cy="394" r="1.4"/>
          <circle cx="451" cy="388" r="2"/><circle cx="457" cy="380" r="1.6"/><circle cx="444" cy="394" r="1.4"/>
        </g>
      </g>

      <!-- chalk bowl + spill -->
      <g>
        <path d="M 252 442 L 292 442 L 287 474 L 257 474 Z" fill="#7c8694" stroke="#5b636d" stroke-width="2"/>
        <ellipse cx="272" cy="442" rx="20" ry="5" fill="#ffffff"/>
        <ellipse cx="272" cy="442" rx="14" ry="3.2" fill="#e8edf2"/>
        <ellipse cx="305" cy="476" rx="12" ry="2.5" fill="#ffffff" opacity=".45"/>
        <circle cx="318" cy="478" r="2" fill="#ffffff" opacity=".4"/>
      </g>

      <!-- water bottle -->
      <g>
        <rect x="600" y="452" width="20" height="28" rx="5" fill="#3b82f6" stroke="#1d4ed8" stroke-width="2"/>
        <rect x="604" y="444" width="12" height="9" rx="2" fill="#1d4ed8"/>
        <rect x="603" y="462" width="14" height="8" fill="#dbeafe" opacity=".8"/>
      </g>

      <!-- scattered plates -->
      <use href="#plate15" transform="translate(90 484) scale(.4)"/>
      <use href="#plate10" transform="translate(120 490) scale(.3)"/>
      <use href="#plate20" transform="translate(716 488) scale(.3)"/>
      <use href="#plate10" transform="translate(742 492) scale(.35)"/>

      <!-- animated shadows -->
      <ellipse class="sh" style="--so:.22" cx="400" cy="481" rx="102" ry="11" fill="#000000" opacity=".22"/>
      <ellipse class="sh" style="--so:.28" cx="225" cy="478" rx="88" ry="9" fill="#000000" opacity=".28"/>
      <ellipse class="sh" style="--so:.28" cx="575" cy="478" rx="88" ry="9" fill="#000000" opacity=".28"/>

      <!-- chalk puff + effort lines while pulling -->
      <g class="puff" fill="#ffffff">
        <circle cx="368" cy="398" r="5"/>
        <circle cx="400" cy="404" r="6"/>
        <circle cx="432" cy="398" r="5"/>
        <circle cx="384" cy="410" r="4"/>
        <circle cx="416" cy="410" r="4"/>
      </g>
      <g class="puff" stroke="#ffffff" stroke-width="3" stroke-linecap="round" fill="none">
        <path d="M 322 358 L 311 354"/>
        <path d="M 326 372 L 314 372"/>
        <path d="M 322 386 L 311 390"/>
        <path d="M 478 358 L 489 354"/>
        <path d="M 474 372 L 486 372"/>
        <path d="M 478 386 L 489 390"/>
      </g>
    </svg>

    <p class="hint">Watch the little guy pull 225 kg for a triple.</p>
  </main>
</body>
</html>

Same prompt, other models

5 more
Compare side by side

One email when a new model lands on the board or in the showcase. Unsubscribe anytime.