animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to the deep blue (waves)

model output

GPT-5.4

the deep blue (waves)

A 0.84T 0.27
compare with ground truth →
1<!DOCTYPE html>
2<html lang="en">
3<head>
4<meta charset="UTF-8" />
5<meta name="viewport" content="width=device-width,initial-scale=1" />
6<title>The deep blue</title>
7<style>
8  :root{
9    --bg:#24384b;
10    --wave1:#4f7bdd;
11    --wave2:#436bc8;
12    --wave3:#3b5fb5;
13    --sea:#3a5fb1;
14    --text:rgba(255,255,255,.72);
15  }
16
17  html,body{
18    margin:0;
19    height:100%;
20    overflow:hidden;
21    background:var(--bg);
22    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
23  }
24
25  .scene{
26    position:relative;
27    width:100vw;
28    height:100vh;
29    background:var(--bg);
30    overflow:hidden;
31  }
32
33  .title{
34    position:absolute;
35    left:50%;
36    top:34%;
37    transform:translate(-50%,-50%);
38    z-index:10;
39    color:var(--text);
40    font-weight:200;
41    font-size:clamp(34px, 6vw, 82px);
42    letter-spacing:.01em;
43    white-space:nowrap;
44    pointer-events:none;
45    text-rendering:geometricPrecision;
46  }
47
48  .wave{
49    position:absolute;
50    left:-18vw;
51    width:136vw;
52    height:26vh;
53    border-radius:50% / 100%;
54    transform-origin:center center;
55    will-change:transform;
56  }
57
58  .w1{
59    top:7vh;
60    background:linear-gradient(to bottom, rgba(255,255,255,.03), rgba(255,255,255,0)) , var(--wave1);
61    opacity:.98;
62    animation: drift1 13s ease-in-out infinite alternate;
63  }
64
65  .w2{
66    top:12vh;
67    background:linear-gradient(to bottom, rgba(255,255,255,.02), rgba(255,255,255,0)) , var(--wave2);
68    opacity:.72;
69    animation: drift2 16s ease-in-out infinite alternate;
70  }
71
72  .w3{
73    top:16vh;
74    background:linear-gradient(to bottom, rgba(255,255,255,.015), rgba(255,255,255,0)) , var(--wave3);
75    opacity:.62;
76    animation: drift3 19s ease-in-out infinite alternate;
77  }
78
79  .sea{
80    position:absolute;
81    left:0;
82    right:0;
83    top:31vh;
84    bottom:0;
85    background:var(--sea);
86  }
87
88  @keyframes drift1{
89    0%   { transform:translateX(-10vw) translateY(0vh) rotate(-2.2deg) scaleX(1.02) scaleY(1); }
90    25%  { transform:translateX(-2vw)  translateY(1vh) rotate(-0.8deg) scaleX(1.00) scaleY(1.02); }
91    50%  { transform:translateX(7vw)   translateY(0vh) rotate(1.2deg)  scaleX(1.03) scaleY(.98); }
92    75%  { transform:translateX(14vw)  translateY(1.2vh) rotate(2.4deg) scaleX(1.01) scaleY(1.01); }
93    100% { transform:translateX(22vw)  translateY(0vh) rotate(4deg)    scaleX(1.04) scaleY(1); }
94  }
95
96  @keyframes drift2{
97    0%   { transform:translateX(18vw)  translateY(0vh) rotate(4deg)    scaleX(1.03) scaleY(1); }
98    25%  { transform:translateX(8vw)   translateY(.8vh) rotate(2deg)   scaleX(1.01) scaleY(1.02); }
99    50%  { transform:translateX(-2vw)  translateY(0vh) rotate(0deg)    scaleX(1.04) scaleY(.99); }
100    75%  { transform:translateX(-12vw) translateY(1vh) rotate(-2.2deg) scaleX(1.02) scaleY(1.01); }
101    100% { transform:translateX(-22vw) translateY(0vh) rotate(-4.2deg) scaleX(1.03) scaleY(1); }
102  }
103
104  @keyframes drift3{
105    0%   { transform:translateX(-16vw) translateY(0vh) rotate(-5deg)   scaleX(1.05) scaleY(1); }
106    25%  { transform:translateX(-7vw)  translateY(.8vh) rotate(-2.5deg) scaleX(1.02) scaleY(1.02); }
107    50%  { transform:translateX(3vw)   translateY(0vh) rotate(0deg)    scaleX(1.03) scaleY(.99); }
108    75%  { transform:translateX(13vw)  translateY(1vh) rotate(2.8deg)  scaleX(1.01) scaleY(1.01); }
109    100% { transform:translateX(24vw)  translateY(0vh) rotate(5deg)    scaleX(1.05) scaleY(1); }
110  }
111</style>
112</head>
113<body>
114  <div class="scene">
115    <div class="title">The deep blue</div>
116    <div class="wave w1"></div>
117    <div class="wave w2"></div>
118    <div class="wave w3"></div>
119    <div class="sea"></div>
120  </div>
121</body>
122</html>