别测鹈鹕了,来测测哪吒吧

我deepseek用的网页版测试的,思考了65s。你这api接入codex里的感觉要精致很多


啥,国籍不对

4 Likes


1

1 Like

大善人astra,稳定发挥;
感觉claude跟deepseek-v4.1-flash的风格很像,怪怪的
nezha-codex
nezha-claude

1 Like

大善人的astra

codex app里的astra medium
PixPin_2026-09-13_22-50-56
网页端 极高(应该是5.6sol extrahigh吧)
PixPin_2026-09-13_22-53-18

网页端 6pro
PixPin_2026-09-13_23-10-10

202609256232532

qwen 3.8 27b

1 Like

看来是深有体会啊


Astra XHigh 如何?

看看我这个

代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>哪吒骑鳌拜 · 风火轮</title>
<style>
  :root {
    --gold: #f6d36a;
    --ink: #140806;
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html, body {
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #07040c;
    font-family: "Songti SC", "STSong", "Noto Serif SC", "SimSun", "Source Han Serif SC", serif;
    color: #f8e6c4;
  }
  .stage { position: relative; width: 100%; height: 100%; }
  svg.scene { display: block; width: 100%; height: 100%; }
  .hud {
    position: absolute;
    left: 28px;
    bottom: 24px;
    z-index: 4;
    pointer-events: none;
    text-shadow: 0 2px 18px rgba(0,0,0,.75);
  }
  .hud h1 {
    font-size: clamp(22px, 3.4vw, 44px);
    letter-spacing: .48em;
    font-weight: 700;
  }
  .hud p {
    margin-top: 8px;
    font-size: 13px;
    letter-spacing: .32em;
    opacity: .78;
  }
  .hint {
    position: absolute;
    right: 24px;
    bottom: 24px;
    font-size: 12px;
    letter-spacing: .2em;
    opacity: .55;
    z-index: 4;
    pointer-events: none;
  }
  .seal {
    position: absolute;
    right: 28px;
    top: 26px;
    width: 72px;
    height: 72px;
    border: 2px solid #c45a3a;
    color: #c45a3a;
    display: flex;
    align-items: center;
    justify-content: center;
    writing-mode: vertical-rl;
    letter-spacing: .28em;
    font-size: 15px;
    opacity: .72;
    pointer-events: none;
    text-shadow: none;
    box-shadow: 0 0 0 3px rgba(196,90,58,.18) inset;
    transform: rotate(8deg);
  }
</style>
</head>
<body>
<div class="stage">
  <svg class="scene" viewBox="0 0 1600 900" preserveAspectRatio="xMidYMid slice" role="img" aria-label="哪吒骑着鳌拜踩风火轮凌空疾驰">
    <defs>
      <linearGradient id="sky" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#12061c"/>
        <stop offset="38%" stop-color="#2a0c2a"/>
        <stop offset="68%" stop-color="#5a1824"/>
        <stop offset="100%" stop-color="#1a0a10"/>
      </linearGradient>
      <radialGradient id="moonGlow" cx="80%" cy="14%" r="30%">
        <stop offset="0%" stop-color="#fff4d2" stop-opacity=".92"/>
        <stop offset="30%" stop-color="#ffd08a" stop-opacity=".28"/>
        <stop offset="100%" stop-color="#ff8a3a" stop-opacity="0"/>
      </radialGradient>
      <radialGradient id="horizon" cx="50%" cy="100%" r="58%">
        <stop offset="0%" stop-color="#ff6a28" stop-opacity=".58"/>
        <stop offset="42%" stop-color="#8b1a28" stop-opacity=".24"/>
        <stop offset="100%" stop-color="#000" stop-opacity="0"/>
      </radialGradient>
      <linearGradient id="cloudFill" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#f7c9a4" stop-opacity=".55"/>
        <stop offset="100%" stop-color="#6a3048" stop-opacity=".16"/>
      </linearGradient>
      <linearGradient id="nSkin" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#ffd8b8"/>
        <stop offset="100%" stop-color="#e8a07a"/>
      </linearGradient>
      <linearGradient id="aSkin" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#e2b08a"/>
        <stop offset="100%" stop-color="#b06a48"/>
      </linearGradient>
      <linearGradient id="hair" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0%" stop-color="#2a0c10"/>
        <stop offset="100%" stop-color="#090406"/>
      </linearGradient>
      <linearGradient id="robe" x1="0" y1="0" x2=".35" y2="1">
        <stop offset="0%" stop-color="#ff5a3a"/>
        <stop offset="48%" stop-color="#c81c1c"/>
        <stop offset="100%" stop-color="#6e0c12"/>
      </linearGradient>
      <linearGradient id="goldTrim" x1="0" y1="0" x2="1" y2="1">
        <stop offset="0%" stop-color="#fff1b0"/>
        <stop offset="50%" stop-color="#f0c14a"/>
        <stop offset="100%" stop-color="#a86a12"/>
      </linearGradient>
      <linearGradient id="spearShaft" x1="0" y1="0" x2="1" y2="0">
        <stop offset="0%" stop-color="#7a1a12"/>
        <stop offset="50%" stop-color="#d43a22"/>
        <stop offset="100%" stop-color="#4a0c0c"/>
      </linearGradient>
      <linearGradient id="blade" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#fff7d2"/>
        <stop offset="40%" stop-color="#ffd36a"/>
        <stop offset="100%" stop-color="#c45a18"/>
      </linearGradient>
      <linearGradient id="ribbon" x1="0" y1="0" x2="1" y2="0">
        <stop offset="0%" stop-color="#ff7a5a"/>
        <stop offset="50%" stop-color="#e21828"/>
        <stop offset="100%" stop-color="#ffb07a"/>
      </linearGradient>
      <linearGradient id="magua" x1="0" y1="0" x2=".3" y2="1">
        <stop offset="0%" stop-color="#ffe08a"/>
        <stop offset="40%" stop-color="#e6b22a"/>
        <stop offset="100%" stop-color="#8a5a08"/>
      </linearGradient>
      <linearGradient id="armor" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#2a4a58"/>
        <stop offset="55%" stop-color="#163038"/>
        <stop offset="100%" stop-color="#0a181c"/>
      </linearGradient>
      <linearGradient id="fur" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#f0d2a8"/>
        <stop offset="100%" stop-color="#8a5a32"/>
      </linearGradient>
      <linearGradient id="beard" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#1a0c08"/>
        <stop offset="100%" stop-color="#3a2010"/>
      </linearGradient>
      <linearGradient id="boot" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0%" stop-color="#3a1c12"/>
        <stop offset="100%" stop-color="#120806"/>
      </linearGradient>
      <radialGradient id="wheelCore" cx="50%" cy="50%" r="50%">
        <stop offset="0%" stop-color="#fff6c8"/>
        <stop offset="32%" stop-color="#ffb020"/>
        <stop offset="70%" stop-color="#ff4a10"/>
        <stop offset="100%" stop-color="#7a0800" stop-opacity=".15"/>
      </radialGradient>
      <radialGradient id="vignetteR" cx="50%" cy="45%" r="72%">
        <stop offset="60%" stop-color="#000" stop-opacity="0"/>
        <stop offset="100%" stop-color="#000" stop-opacity=".55"/>
      </radialGradient>
      <filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
        <feGaussianBlur stdDeviation="6" result="b"/>
        <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
      </filter>
      <filter id="softGlow" x="-80%" y="-80%" width="260%" height="260%">
        <feGaussianBlur stdDeviation="12" result="b"/>
        <feMerge><feMergeNode in="b"/><feMergeNode in="SourceGraphic"/></feMerge>
      </filter>
      <filter id="fireBlur" x="-40%" y="-40%" width="180%" height="180%">
        <feGaussianBlur stdDeviation="2.4"/>
      </filter>
      <filter id="windBlur" x="-20%" y="-20%" width="140%" height="140%">
        <feGaussianBlur stdDeviation="1.2"/>
      </filter>
      <clipPath id="sceneClip"><rect width="1600" height="900"/></clipPath>
    </defs>

    <g clip-path="url(#sceneClip)">
      <rect width="1600" height="900" fill="url(#sky)"/>
      <rect width="1600" height="900" fill="url(#horizon)"/>
      <circle cx="1280" cy="132" r="240" fill="url(#moonGlow)"/>
      <circle cx="1280" cy="132" r="48" fill="#fff4d6"/>
      <circle cx="1298" cy="120" r="14" fill="#e8d2a8" opacity=".35"/>
      <circle cx="1266" cy="146" r="8" fill="#d8c090" opacity=".28"/>

      <g id="stars"></g>

      <g id="farMountains" opacity=".58">
        <path d="M0 720 L160 540 L310 670 L470 470 L650 690 L830 520 L990 680 L1160 450 L1340 660 L1500 500 L1600 630 L1600 900 L0 900 Z" fill="#2a101c"/>
        <path d="M0 790 L230 650 L410 770 L590 620 L780 780 L1010 640 L1220 770 L1410 610 L1600 740 L1600 900 L0 900 Z" fill="#1a0a12"/>
      </g>

      <g id="backClouds"></g>
      <g id="windStreaks" opacity=".55" filter="url(#windBlur)"></g>
      <g id="trail"></g>

      <!-- 骑乘组:哪吒在上,鳌拜在下,脚下风火轮 -->
      <g id="rider" transform="translate(800,470)">

        <!-- 混天绫后层(缰绳+飘带) -->
        <g id="ribbonBack" fill="none" stroke="url(#ribbon)" stroke-linecap="round" filter="url(#softGlow)"></g>

        <!-- 鳌拜辫子(脑后) -->
        <g id="queueWrap" fill="none" stroke="#120806" stroke-linecap="round"></g>

        <!-- 火尖枪 -->
        <g id="spear" transform="translate(18,-168) rotate(-32 40 -40)">
          <rect x="36" y="-250" width="8" height="400" rx="3" fill="url(#spearShaft)"/>
          <rect x="38" y="-250" width="3" height="400" fill="#ffd48a" opacity=".35"/>
          <polygon points="40,-274 22,-230 40,-240 58,-230" fill="url(#blade)" filter="url(#glow)"/>
          <circle cx="40" cy="-218" r="9" fill="url(#goldTrim)"/>
          <circle cx="40" cy="138" r="8" fill="url(#goldTrim)"/>
          <path d="M28 150 Q40 176 52 150" fill="#c81c1c"/>
          <g id="spearFire" filter="url(#fireBlur)"></g>
        </g>

        <!-- 风火轮 -->
        <g id="wheels">
          <ellipse cx="-78" cy="168" rx="70" ry="18" fill="#ff6a20" opacity=".28" filter="url(#softGlow)"/>
          <ellipse cx="86" cy="174" rx="70" ry="18" fill="#ff6a20" opacity=".28" filter="url(#softGlow)"/>
          <g class="wheel" transform="translate(-78,148)">
            <g class="wheelSpin"></g>
          </g>
          <g class="wheel" transform="translate(86,154)">
            <g class="wheelSpin"></g>
          </g>
        </g>

        <!-- 鳌拜 -->
        <g id="aobai">
          <!-- 左臂(平衡) -->
          <g id="aoArmL">
            <path d="M-62 -8 Q-128 8 -150 52 Q-128 66 -96 28 Q-70 6 -52 2 Z" fill="url(#aSkin)"/>
            <path d="M-132 40 Q-168 58 -158 78 Q-128 66 -126 48 Z" fill="url(#aSkin)"/>
            <path d="M-86 4 Q-102 18 -94 36 Q-74 22 -70 8 Z" fill="url(#armor)"/>
            <circle cx="-108" cy="22" r="9" fill="url(#goldTrim)"/>
            <path d="M-158 72 Q-176 86 -164 98 Q-146 90 -148 76 Z" fill="url(#aSkin)"/>
          </g>

          <!-- 腿 -->
          <g id="aoLegs">
            <g id="legL">
              <path d="M-28 58 Q-70 96 -86 142 Q-54 150 -28 108 Q-14 80 -8 62 Z" fill="url(#armor)"/>
              <path d="M-86 136 Q-102 156 -78 166 Q-60 150 -66 138 Z" fill="url(#boot)"/>
              <rect x="-98" y="158" width="40" height="10" rx="3" fill="#2a100c"/>
            </g>
            <g id="legR">
              <path d="M28 60 Q78 102 96 148 Q62 156 34 112 Q18 82 12 62 Z" fill="url(#armor)"/>
              <path d="M96 142 Q114 162 88 172 Q70 156 76 144 Z" fill="url(#boot)"/>
              <rect x="70" y="164" width="40" height="10" rx="3" fill="#2a100c"/>
            </g>
          </g>

          <!-- 躯干:石青甲 + 黄马褂 -->
          <g id="aoTorso">
            <path d="M-78 8 Q-88 58 -58 92 L58 94 Q90 56 78 6 Q42 -28 0 -26 Q-44 -30 -78 8 Z" fill="url(#magua)"/>
            <path d="M-62 18 Q-68 54 -44 78 L44 80 Q70 50 62 16 Q30 -8 0 -6 Q-32 -10 -62 18 Z" fill="url(#armor)"/>
            <!-- 甲片 -->
            <path d="M-48 28 H48" stroke="#f0c14a" stroke-width="2" opacity=".65"/>
            <path d="M-44 46 H44" stroke="#f0c14a" stroke-width="2" opacity=".5"/>
            <path d="M-38 64 H38" stroke="#f0c14a" stroke-width="2" opacity=".4"/>
            <path d="M0 10 V78" stroke="#ffd36a" stroke-width="2.2" opacity=".55"/>
            <!-- 蟒纹示意 -->
            <path d="M-28 36 Q-8 50 6 34 Q22 22 34 40" fill="none" stroke="#7a4a08" stroke-width="3" opacity=".45"/>
            <path d="M-22 52 Q0 66 20 50" fill="none" stroke="#7a4a08" stroke-width="2.4" opacity=".35"/>
            <!-- 腰带 + 鳌纹 -->
            <rect x="-46" y="74" width="92" height="16" rx="3" fill="url(#goldTrim)"/>
            <circle cx="0" cy="82" r="9" fill="#163038" stroke="#fff1b0" stroke-width="2"/>
            <path d="M-6 82 Q0 76 6 82 Q0 88 -6 82 Z" fill="#f0c14a"/>
            <!-- 黄马褂下摆 -->
            <path d="M-70 70 Q-40 108 0 96 Q40 110 70 72 Q78 88 42 118 Q0 132 -44 116 Q-80 90 -70 70 Z" fill="url(#magua)" opacity=".95"/>
            <path d="M-36 100 Q0 118 36 100" fill="none" stroke="#7a4a08" stroke-width="2" opacity=".35"/>
            <!-- 貂裘领 -->
            <path d="M-72 -8 Q-86 18 -48 22 Q-20 6 0 8 Q20 6 48 22 Q86 18 72 -8 Q36 -32 0 -28 Q-36 -32 -72 -8 Z" fill="url(#fur)"/>
            <path d="M-64 -2 Q-70 12 -48 12" fill="none" stroke="#5a3010" stroke-width="1.4" opacity=".4"/>
            <path d="M64 -2 Q70 12 48 12" fill="none" stroke="#5a3010" stroke-width="1.4" opacity=".4"/>
            <path d="M-20 -16 Q0 -6 20 -16" fill="none" stroke="#5a3010" stroke-width="1.6" opacity=".35"/>
            <!-- 护肩 -->
            <path d="M-78 -10 Q-102 4 -90 32 Q-68 18 -60 0 Z" fill="url(#goldTrim)"/>
            <path d="M78 -10 Q102 4 90 32 Q68 18 60 0 Z" fill="url(#goldTrim)"/>
          </g>

          <!-- 右臂 -->
          <g id="aoArmR">
            <path d="M62 -6 Q128 2 154 44 Q132 60 98 24 Q74 4 50 4 Z" fill="url(#aSkin)"/>
            <path d="M86 6 Q104 20 96 38 Q76 22 70 8 Z" fill="url(#armor)"/>
            <circle cx="114" cy="20" r="9" fill="url(#goldTrim)"/>
            <path d="M140 38 Q176 52 166 74 Q138 62 136 44 Z" fill="url(#aSkin)"/>
            <path d="M160 68 Q178 82 166 94 Q148 86 150 72 Z" fill="url(#aSkin)"/>
          </g>

          <!-- 头颅 -->
          <g id="aoHead" transform="translate(0,-86)">
            <!-- 耳 -->
            <ellipse cx="-38" cy="10" rx="7" ry="12" fill="url(#aSkin)"/>
            <ellipse cx="38" cy="10" rx="7" ry="12" fill="url(#aSkin)"/>
            <!-- 脸 -->
            <ellipse cx="0" cy="10" rx="38" ry="42" fill="url(#aSkin)"/>
            <!-- 满洲额顶(剃发) -->
            <path d="M-34 -8 Q-30 -36 0 -42 Q30 -36 34 -8 Q18 -28 0 -30 Q-18 -28 -34 -8 Z" fill="#e8c4a0"/>
            <path d="M-22 -18 Q0 -26 22 -18" fill="none" stroke="#c09070" stroke-width="1.2" opacity=".5"/>
            <!-- 脑后留发 -->
            <path d="M-16 -20 Q0 -38 16 -20 Q10 -8 0 -10 Q-10 -8 -16 -20 Z" fill="url(#hair)"/>
            <circle cx="0" cy="-24" r="7" fill="#120806"/>
            <!-- 鬓 -->
            <path d="M-36 2 Q-44 28 -22 38 Q-28 16 -30 6 Z" fill="url(#hair)"/>
            <path d="M36 2 Q44 28 22 38 Q28 16 30 6 Z" fill="url(#hair)"/>
            <!-- 浓眉 -->
            <path d="M-22 0 Q-12 -10 -2 2" fill="none" stroke="#120806" stroke-width="5.2" stroke-linecap="round"/>
            <path d="M22 0 Q12 -10 2 2" fill="none" stroke="#120806" stroke-width="5.2" stroke-linecap="round"/>
            <!-- 眼:略翻白、被骑得无奈又凶 -->
            <ellipse cx="-12" cy="12" rx="7" ry="6.2" fill="#f7efe4"/>
            <ellipse cx="12" cy="12" rx="7" ry="6.2" fill="#f7efe4"/>
            <ellipse cx="-11" cy="13" rx="3.2" ry="3.8" fill="#1a0808"/>
            <ellipse cx="13" cy="13" rx="3.2" ry="3.8" fill="#1a0808"/>
            <circle cx="-9.6" cy="11.4" r="1.2" fill="#fff"/>
            <circle cx="14.4" cy="11.4" r="1.2" fill="#fff"/>
            <!-- 鼻 -->
            <path d="M-4 16 Q0 28 4 16" fill="none" stroke="#8a4a32" stroke-width="2.2"/>
            <path d="M-5 28 Q0 32 5 28" fill="#c07858"/>
            <!-- 八字须 + 络腮 -->
            <path d="M-8 32 Q-28 36 -34 28" fill="none" stroke="#120806" stroke-width="3.4" stroke-linecap="round"/>
            <path d="M8 32 Q28 36 34 28" fill="none" stroke="#120806" stroke-width="3.4" stroke-linecap="round"/>
            <path d="M-28 30 Q-40 58 -16 78 Q0 92 16 78 Q40 58 28 30 Q16 54 0 60 Q-16 54 -28 30 Z" fill="url(#beard)"/>
            <path d="M-18 48 Q0 70 18 48" fill="none" stroke="#3a2010" stroke-width="2" opacity=".45"/>
            <!-- 嘴:咬牙 -->
            <path d="M-10 38 L10 38" stroke="#4a2018" stroke-width="2.4" stroke-linecap="round"/>
            <path d="M-6 38 L-4 42 L-1 38 L2 42 L5 38" fill="none" stroke="#f0d8c0" stroke-width="1.3"/>
            <!-- 额汗 -->
            <g id="sweat" opacity="0">
              <ellipse cx="24" cy="-6" rx="4" ry="6" fill="#b8d8e8" opacity=".8"/>
              <ellipse cx="24" cy="-8" rx="1.4" ry="2" fill="#fff" opacity=".7"/>
            </g>
          </g>
        </g>

        <!-- 哪吒(站在鳌拜肩上) -->
        <g id="nezha" transform="translate(6,-176) scale(0.78)">
          <!-- 莲光 -->
          <ellipse cx="2" cy="108" rx="50" ry="12" fill="#ff8a40" opacity=".22" filter="url(#softGlow)"/>

          <g id="nzLegs">
            <path d="M-16 40 Q-28 78 -22 112 Q-8 108 -4 78 Q0 54 4 42 Z" fill="url(#nSkin)"/>
            <path d="M18 42 Q32 80 28 114 Q12 110 8 78 Q6 54 8 42 Z" fill="url(#nSkin)"/>
            <path d="M-26 108 Q-30 122 -14 124 Q-8 112 -12 106 Z" fill="#4a0c10"/>
            <path d="M32 110 Q36 124 18 126 Q12 114 16 108 Z" fill="#4a0c10"/>
          </g>

          <!-- 莲瓣战裙 -->
          <path d="M-48 24 Q-8 64 6 38 Q26 66 50 26 Q36 86 4 76 Q-32 86 -48 24 Z" fill="url(#robe)"/>
          <path d="M-36 32 Q6 68 42 32" fill="none" stroke="url(#goldTrim)" stroke-width="3"/>
          <path d="M-18 38 L6 70 L30 38" fill="none" stroke="#ffd36a" stroke-width="1.4" opacity=".7"/>

          <!-- 赤膊肚兜 -->
          <path d="M-28 -4 Q-36 22 -16 40 Q6 48 28 38 Q40 16 26 -6 Q8 -20 0 -16 Q-16 -22 -28 -4 Z" fill="url(#nSkin)"/>
          <path d="M-16 -8 Q0 18 16 -8 Q8 36 0 40 Q-8 36 -16 -8 Z" fill="url(#robe)"/>
          <circle cx="0" cy="8" r="6" fill="url(#goldTrim)"/>

          <!-- 护肩 -->
          <path d="M-40 -16 Q-56 -4 -48 14 Q-34 6 -26 -8 Z" fill="url(#goldTrim)"/>
          <path d="M40 -16 Q56 -4 48 14 Q34 6 26 -8 Z" fill="url(#goldTrim)"/>

          <g id="nzArmL">
            <path d="M-32 -8 Q-62 18 -48 52 Q-32 44 -22 16 Q-18 2 -16 0 Z" fill="url(#nSkin)"/>
            <circle cx="-42" cy="18" r="6" fill="url(#goldTrim)"/>
            <path d="M-50 46 Q-62 62 -50 66 Q-40 56 -44 48 Z" fill="url(#nSkin)"/>
          </g>
          <g id="nzArmR">
            <path d="M30 -6 Q64 -22 86 -78 Q102 -70 80 -20 Q58 10 36 10 Z" fill="url(#nSkin)"/>
            <circle cx="64" cy="-18" r="6" fill="url(#goldTrim)"/>
          </g>

          <!-- 乾坤圈 -->
          <ellipse cx="2" cy="-4" rx="54" ry="16" fill="none" stroke="url(#goldTrim)" stroke-width="7" filter="url(#glow)"/>
          <ellipse cx="2" cy="-4" rx="54" ry="16" fill="none" stroke="#fff6c8" stroke-width="1.5" opacity=".7"/>

          <g id="nzHead" transform="translate(0,-56)">
            <ellipse cx="0" cy="8" rx="26" ry="30" fill="url(#nSkin)"/>
            <!-- 双髻 -->
            <circle cx="-16" cy="-28" r="13" fill="url(#hair)"/>
            <circle cx="16" cy="-28" r="13" fill="url(#hair)"/>
            <circle cx="-16" cy="-28" r="6" fill="url(#goldTrim)"/>
            <circle cx="16" cy="-28" r="6" fill="url(#goldTrim)"/>
            <path d="M-22 -8 Q-8 -24 0 -18 Q8 -24 22 -8 Q14 -2 0 -6 Q-14 -2 -22 -8 Z" fill="url(#hair)"/>
            <path d="M-22 2 Q-34 20 -16 28" fill="url(#hair)"/>
            <path d="M22 2 Q34 20 16 28" fill="url(#hair)"/>
            <path d="M-14 -8 Q0 -16 14 -8 Q6 0 0 -2 Q-6 0 -14 -8 Z" fill="url(#goldTrim)"/>
            <circle cx="0" cy="-6" r="3.2" fill="#e21828"/>
            <path d="M-13 4 Q-7 0 -2 5" fill="none" stroke="#2a0c10" stroke-width="2.1" stroke-linecap="round"/>
            <path d="M13 4 Q7 0 2 5" fill="none" stroke="#2a0c10" stroke-width="2.1" stroke-linecap="round"/>
            <ellipse cx="-8" cy="10" rx="4" ry="4.8" fill="#1a0808"/>
            <ellipse cx="8" cy="10" rx="4" ry="4.8" fill="#1a0808"/>
            <circle cx="-6.6" cy="8.4" r="1.3" fill="#fff"/>
            <circle cx="9.4" cy="8.4" r="1.3" fill="#fff"/>
            <!-- 魔丸纹 -->
            <path d="M-4 16 Q0 22 4 16" fill="none" stroke="#c81c1c" stroke-width="1.6"/>
            <path d="M0 14 L0 22" stroke="#c81c1c" stroke-width="1.4"/>
            <path d="M-7 24 Q0 30 7 24" fill="none" stroke="#a04838" stroke-width="1.8" stroke-linecap="round"/>
            <ellipse cx="-26" cy="8" rx="4.6" ry="7.4" fill="url(#nSkin)"/>
            <ellipse cx="26" cy="8" rx="4.6" ry="7.4" fill="url(#nSkin)"/>
          </g>
        </g>

        <g id="ribbonFront" fill="none" stroke="url(#ribbon)" stroke-linecap="round" filter="url(#glow)"></g>
        <g id="sparks"></g>
      </g>

      <g id="frontClouds"></g>
      <g id="embers"></g>
      <rect width="1600" height="900" fill="url(#vignetteR)" pointer-events="none"/>
    </g>
  </svg>
  <div class="hud">
    <h1>哪吒骑鳌拜</h1>
    <p>风火轮疾驰 · 混天绫作缰 · 火尖枪开路</p>
  </div>
  <div class="seal">御鳌</div>
  <div class="hint">单击画面或按空格加速</div>
</div>

<script>
(() => {
  const svgNS = "http://www.w3.org/2000/svg";
  const $ = (id) => document.getElementById(id);
  function el(name, attrs = {}, parent) {
    const n = document.createElementNS(svgNS, name);
    for (const [k, v] of Object.entries(attrs)) n.setAttribute(k, v);
    if (parent) parent.appendChild(n);
    return n;
  }

  const stars = $("stars");
  for (let i = 0; i < 96; i++) {
    const c = el("circle", {
      cx: (Math.random() * 1600).toFixed(1),
      cy: (Math.random() * 500).toFixed(1),
      r: (Math.random() * 1.6 + 0.3).toFixed(2),
      fill: Math.random() > .25 ? "#fff6d8" : "#ffd08a",
      opacity: (Math.random() * 0.7 + 0.2).toFixed(2)
    }, stars);
    el("animate", {
      attributeName: "opacity",
      values: "0.15;0.95;0.2",
      dur: (1.6 + Math.random() * 2.8).toFixed(2) + "s",
      begin: (Math.random() * 3).toFixed(2) + "s",
      repeatCount: "indefinite"
    }, c);
  }

  function cloudPath(w, h) {
    const bumps = 5 + Math.floor(Math.random() * 3);
    let d = `M 0 ${h * 0.7}`;
    for (let i = 0; i <= bumps; i++) {
      const x = (i / bumps) * w;
      const y = h * (0.25 + Math.sin(i * 1.7) * 0.18 + (i % 2) * 0.08);
      const cx = x - w / bumps * 0.5;
      d += ` Q ${cx.toFixed(1)} ${(y - h * 0.35).toFixed(1)} ${x.toFixed(1)} ${y.toFixed(1)}`;
    }
    d += ` L ${w} ${h} L 0 ${h} Z`;
    return d;
  }
  function spawnClouds(layer, count, y0, y1, scaleMin, scaleMax, opacity, speedBase) {
    const items = [];
    for (let i = 0; i < count; i++) {
      const g = el("g", {}, layer);
      const w = 220 + Math.random() * 280;
      const h = 50 + Math.random() * 40;
      el("path", {
        d: cloudPath(w, h),
        fill: "url(#cloudFill)",
        opacity: String(opacity * (0.6 + Math.random() * 0.4))
      }, g);
      items.push({
        g,
        x: Math.random() * 1800 - 200,
        y: y0 + Math.random() * (y1 - y0),
        s: scaleMin + Math.random() * (scaleMax - scaleMin),
        v: speedBase * (0.6 + Math.random() * 0.8)
      });
    }
    return items;
  }
  const backClouds = spawnClouds($("backClouds"), 7, 400, 610, 0.7, 1.3, 0.45, 18);
  const frontClouds = spawnClouds($("frontClouds"), 5, 640, 830, 1.15, 1.85, 0.55, 44);

  const windLayer = $("windStreaks");
  const streaks = [];
  for (let i = 0; i < 20; i++) {
    const p = el("path", {
      fill: "none",
      stroke: i % 2 ? "#ffd08a" : "#ff8a4a",
      "stroke-width": (1 + Math.random() * 1.6).toFixed(2),
      opacity: "0.35"
    }, windLayer);
    streaks.push({
      p, x: Math.random() * 1600, y: 70 + Math.random() * 720,
      len: 40 + Math.random() * 90, v: 90 + Math.random() * 160,
      amp: 6 + Math.random() * 10
    });
  }

  function buildWheel(spinG) {
    el("circle", { r: "54", fill: "url(#wheelCore)", filter: "url(#softGlow)", opacity: ".92" }, spinG);
    el("circle", { r: "40", fill: "none", stroke: "#ffb020", "stroke-width": "8" }, spinG);
    el("circle", { r: "26", fill: "none", stroke: "#fff3b0", "stroke-width": "3.2" }, spinG);
    el("circle", { r: "12", fill: "#fff6c8" }, spinG);
    for (let i = 0; i < 8; i++) {
      const a = (i / 8) * Math.PI * 2;
      el("line", {
        x1: "0", y1: "0",
        x2: (Math.cos(a) * 40).toFixed(1),
        y2: (Math.sin(a) * 40).toFixed(1),
        stroke: "#7a1a08",
        "stroke-width": "3.4"
      }, spinG);
    }
    for (let i = 0; i < 14; i++) {
      const a = (i / 14) * Math.PI * 2;
      const r0 = 42, r1 = 62 + (i % 2) * 10;
      el("path", {
        d: `M ${(Math.cos(a)*r0).toFixed(1)} ${(Math.sin(a)*r0).toFixed(1)} Q ${(Math.cos(a+0.16)*r1).toFixed(1)} ${(Math.sin(a+0.16)*r1).toFixed(1)} ${(Math.cos(a+0.3)*r0).toFixed(1)} ${(Math.sin(a+0.3)*r0).toFixed(1)}`,
        fill: i % 2 ? "#ff5a10" : "#ffb020",
        opacity: ".88",
        filter: "url(#fireBlur)"
      }, spinG);
    }
  }
  document.querySelectorAll(".wheelSpin").forEach(buildWheel);

  const trail = $("trail");
  const particles = [];
  function burst(n = 6) {
    for (let i = 0; i < n; i++) {
      const c = el("circle", {
        r: (2 + Math.random() * 5).toFixed(1),
        fill: Math.random() > .4 ? "#ff7a20" : "#ffd060",
        filter: "url(#fireBlur)"
      }, trail);
      particles.push({
        n: c,
        x: 700 + Math.random() * 180,
        y: 600 + Math.random() * 50,
        vx: -90 - Math.random() * 170,
        vy: (Math.random() - 0.5) * 55,
        life: 1,
        decay: 0.55 + Math.random() * 0.85
      });
    }
  }

  const ribBack = $("ribbonBack");
  const ribFront = $("ribbonFront");
  const ribbonPaths = [];
  function makeRibbon(parent, width, segs, amp, phaseOff, yOff, x0, span) {
    const p = el("path", {
      "stroke-width": String(width),
      fill: "none",
      "stroke-linejoin": "round"
    }, parent);
    ribbonPaths.push({ p, segs, amp, phaseOff, yOff, x0, span });
  }
  makeRibbon(ribBack, 16, 18, 38, 0.4, -40, 10, 280);
  makeRibbon(ribBack, 9, 16, 26, 1.2, 20, -10, 240);
  makeRibbon(ribFront, 12, 14, 30, 2.1, -90, 20, 220);
  makeRibbon(ribFront, 7, 12, 18, 3.0, -20, 0, 200);
  /* 缰绳:从哪吒手绕过鳌拜胸前 */
  makeRibbon(ribFront, 8, 10, 14, 0.2, -110, 8, 90);

  function ribbonD(t, cfg) {
    const pts = [];
    for (let i = 0; i <= cfg.segs; i++) {
      const u = i / cfg.segs;
      const x = cfg.x0 - u * cfg.span - Math.sin(t * 1.6 + cfg.phaseOff) * 16;
      const y = cfg.yOff + Math.sin(t * 2.2 + u * 4.2 + cfg.phaseOff) * cfg.amp
              + Math.cos(t * 1.3 + u * 2.8) * (cfg.amp * 0.35)
              + u * u * 36;
      pts.push([x, y]);
    }
    let d = `M ${pts[0][0].toFixed(1)} ${pts[0][1].toFixed(1)}`;
    for (let i = 1; i < pts.length; i++) {
      const prev = pts[i - 1];
      const cur = pts[i];
      const cx = (prev[0] + cur[0]) / 2;
      const cy = (prev[1] + cur[1]) / 2;
      d += ` Q ${prev[0].toFixed(1)} ${prev[1].toFixed(1)} ${cx.toFixed(1)} ${cy.toFixed(1)}`;
    }
    return d;
  }

  const queueWrap = $("queueWrap");
  const queueMain = el("path", { fill: "none", stroke: "#120806", "stroke-width": "9", "stroke-linecap": "round" }, queueWrap);
  const queueHi = el("path", { fill: "none", stroke: "#3a2018", "stroke-width": "3", "stroke-linecap": "round", opacity: ".55" }, queueWrap);
  const queueTip = el("path", { fill: "none", stroke: "#120806", "stroke-width": "13", "stroke-linecap": "round" }, queueWrap);

  function queueD(t, boost) {
    const pts = [];
    for (let i = 0; i <= 14; i++) {
      const u = i / 14;
      const x = -8 - u * (210 + boost * 40) - Math.sin(t * 2 + u * 3) * 10;
      const y = -108 + u * 36 + Math.sin(t * 2.6 + u * 5) * (16 + boost * 8) + u * u * 20;
      pts.push([x, y]);
    }
    let d = `M ${pts[0][0].toFixed(1)} ${pts[0][1].toFixed(1)}`;
    for (let i = 1; i < pts.length; i++) {
      const prev = pts[i - 1], cur = pts[i];
      d += ` Q ${prev[0].toFixed(1)} ${prev[1].toFixed(1)} ${((prev[0]+cur[0])/2).toFixed(1)} ${((prev[1]+cur[1])/2).toFixed(1)}`;
    }
    return d;
  }

  const spearFire = $("spearFire");
  const flame = el("ellipse", { cx: "40", cy: "-278", rx: "10", ry: "18", fill: "#ffb020", opacity: ".85" }, spearFire);
  const flame2 = el("ellipse", { cx: "40", cy: "-292", rx: "6", ry: "14", fill: "#fff3b0", opacity: ".8" }, spearFire);

  const rider = $("rider");
  const wheels = [...document.querySelectorAll(".wheelSpin")];
  const aoArmL = $("aoArmL");
  const aoArmR = $("aoArmR");
  const aoHead = $("aoHead");
  const aoTorso = $("aoTorso");
  const legL = $("legL");
  const legR = $("legR");
  const nezha = $("nezha");
  const nzHead = $("nzHead");
  const nzArmL = $("nzArmL");
  const nzArmR = $("nzArmR");
  const spear = $("spear");
  const sweat = $("sweat");

  let boost = 0;
  let t0 = performance.now();
  const goBoost = () => { boost = 1; };
  document.querySelector(".stage").addEventListener("click", goBoost);
  window.addEventListener("keydown", (e) => {
    if (e.code === "Space") { e.preventDefault(); goBoost(); }
  });

  function tick(now) {
    const dt = Math.min(0.033, (now - t0) / 1000);
    t0 = now;
    const t = now / 1000;
    boost += (0 - boost) * dt * 1.35;

    const speed = 1 + boost * 2.5;
    const bob = Math.sin(t * 2.05) * 11 + Math.sin(t * 3.3) * 4;
    const sway = Math.sin(t * 1.35) * 10;
    const lean = -9 - Math.sin(t * 1.35) * 3 - boost * 12;

    rider.setAttribute("transform",
      `translate(${800 + sway}, ${470 + bob}) rotate(${lean})`);
    aoTorso.setAttribute("transform", `rotate(${Math.sin(t * 2.1) * 1.8})`);
    aoHead.setAttribute("transform", `translate(0,-86) rotate(${Math.sin(t * 2.5) * 3 - 2})`);
    aoArmL.setAttribute("transform", `rotate(${Math.sin(t * 2.8) * 10 - 8} -62 -8)`);
    aoArmR.setAttribute("transform", `rotate(${Math.sin(t * 2.6 + 1) * 10 + 6} 62 -6)`);
    legL.setAttribute("transform", `rotate(${Math.sin(t * 8 * speed) * 6} -28 58)`);
    legR.setAttribute("transform", `rotate(${Math.sin(t * 8 * speed + 3.1) * 6} 28 60)`);

    nezha.setAttribute("transform",
      `translate(${6 + Math.sin(t * 2.4) * 2}, ${-176 + Math.sin(t * 3.1) * 3}) scale(0.78) rotate(${Math.sin(t * 2.2) * 3})`);
    nzHead.setAttribute("transform", `translate(0,-56) rotate(${Math.sin(t * 2.8) * 5})`);
    nzArmL.setAttribute("transform", `rotate(${Math.sin(t * 3.2) * 10 - 20} -32 -8)`);
    nzArmR.setAttribute("transform", `rotate(${Math.sin(t * 2.7) * 6 - 4} 30 -6)`);
    spear.setAttribute("transform", `translate(18,-168) rotate(${-32 + Math.sin(t * 2.3) * 3} 40 -40)`);

    flame.setAttribute("ry", (16 + Math.sin(t * 14) * 4 + boost * 8).toFixed(1));
    flame2.setAttribute("ry", (12 + Math.sin(t * 18 + 1) * 3 + boost * 6).toFixed(1));
    sweat.setAttribute("opacity", (boost * 0.95).toFixed(2));

    wheels.forEach((w, i) => {
      w.setAttribute("transform", `rotate(${(t * (480 + i * 50) * speed) % 360})`);
    });

    ribbonPaths.forEach(cfg => cfg.p.setAttribute("d", ribbonD(t, cfg)));
    const qd = queueD(t, boost);
    queueMain.setAttribute("d", qd);
    queueHi.setAttribute("d", qd);
    queueTip.setAttribute("d", qd);

    const moveClouds = (arr) => {
      arr.forEach(c => {
        c.x -= c.v * speed * dt * (1 + boost);
        if (c.x < -420) c.x = 1680 + Math.random() * 200;
        c.g.setAttribute("transform", `translate(${c.x.toFixed(1)},${c.y.toFixed(1)}) scale(${c.s.toFixed(2)})`);
      });
    };
    moveClouds(backClouds);
    moveClouds(frontClouds);

    streaks.forEach(s => {
      s.x -= s.v * speed * dt * (1.2 + boost);
      if (s.x < -120) {
        s.x = 1680;
        s.y = 80 + Math.random() * 700;
        s.len = 40 + Math.random() * 90;
      }
      const y2 = s.y + Math.sin(t * 3 + s.y) * s.amp;
      s.p.setAttribute("d", `M ${s.x.toFixed(1)} ${s.y.toFixed(1)} Q ${(s.x - s.len * 0.5).toFixed(1)} ${y2.toFixed(1)} ${(s.x - s.len).toFixed(1)} ${s.y.toFixed(1)}`);
    });

    if (Math.random() < 0.6 + boost) burst(boost > 0.3 ? 12 : 5);
    for (let i = particles.length - 1; i >= 0; i--) {
      const p = particles[i];
      p.x += p.vx * dt * speed;
      p.y += p.vy * dt;
      p.life -= p.decay * dt;
      p.n.setAttribute("cx", p.x.toFixed(1));
      p.n.setAttribute("cy", p.y.toFixed(1));
      p.n.setAttribute("opacity", Math.max(0, p.life).toFixed(2));
      p.n.setAttribute("r", ((2 + p.life * 4) * (0.65 + boost)).toFixed(1));
      if (p.life <= 0) {
        p.n.remove();
        particles.splice(i, 1);
      }
    }
    if (particles.length > 90) {
      const extra = particles.splice(0, particles.length - 90);
      extra.forEach(p => p.n.remove());
    }

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


Mimo-X-Flash-Preview

Mimo-X-Pro-Preview
:zany_face: :zany_face: :zany_face:

这是什么面板? dsh吗? 跟我的咋不一样呢

小米的mimo desktop,现在还在测试

1 Like

手里还拿着双筷子,急着干饭吗 :laughing:

这tm 搞的跟开盲盒一样,怎么写生产的代码


:upside_down_face:

以下分别是白嫖的glm5.3flash,max思考强度:


ds官网网页版:

dsh极简模式high思考强度:(跑了一个小时,难绷)

1 Like