← back to Wavy Loading Animationscompare with ground truth →
model output
Gemini 3 Flash Preview
Wavy Loading Animations
A 0.75T 0.21
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.0">
6 <title>Pulsing Concentric Circles Animation</title>
7 <style>
8 /*
9 Analysis of Animation:
10 - Background: Light gray (#eeeeee)
11 - Element: 4 concentric circles, thin dark gray lines.
12 - Position: Horizontally centered, placed in the top third of the viewport.
13 - Animation: Pulsing scale and opacity.
14 - Timing: Approx 1 second per cycle (Peak at 1s, 2s, 3s; Trough at 1.5s, 2.5s).
15 - Easing: Smooth ease-in-out.
16 */
17
18 body {
19 margin: 0;
20 padding: 0;
21 background-color: #eeeeee;
22 display: flex;
23 justify-content: center;
24 height: 100vh;
25 overflow: hidden;
26 }
27
28 /* Container positioned near the top as seen in the video */
29 .animation-wrapper {
30 margin-top: 15vh;
31 position: relative;
32 display: flex;
33 justify-content: center;
34 align-items: center;
35 width: 100px;
36 height: 100px;
37 }
38
39 /* The group of circles pulses together */
40 .circles-group {
41 position: relative;
42 display: flex;
43 justify-content: center;
44 align-items: center;
45 animation: pulse-animation 1s ease-in-out infinite;
46 }
47
48 .circle {
49 position: absolute;
50 border-radius: 50%;
51 border: 1px solid rgba(0, 0, 0, 0.2);
52 box-sizing: border-box;
53 }
54
55 /* Concentric circle sizes */
56 .circle:nth-child(1) {
57 width: 12px;
58 height: 12px;
59 }
60 .circle:nth-child(2) {
61 width: 24px;
62 height: 24px;
63 }
64 .circle:nth-child(3) {
65 width: 36px;
66 height: 36px;
67 }
68 .circle:nth-child(4) {
69 width: 48px;
70 height: 48px;
71 }
72
73 /*
74 Animation Keyframes:
75 0% and 100% represent the trough (smallest state)
76 50% represents the peak (largest state)
77 */
78 @keyframes pulse-animation {
79 0%, 100% {
80 transform: scale(0.3);
81 opacity: 0.1;
82 }
83 50% {
84 transform: scale(1.3);
85 opacity: 0.5;
86 }
87 }
88
89 /* Initial fade-in to match video start (00:00.000 to 00:01.000) */
90 .animation-wrapper {
91 animation: initial-fade 1s ease-out forwards;
92 }
93
94 @keyframes initial-fade {
95 from { opacity: 0; }
96 to { opacity: 1; }
97 }
98 </style>
99</head>
100<body>
101
102 <div class="animation-wrapper">
103 <div class="circles-group">
104 <div class="circle"></div>
105 <div class="circle"></div>
106 <div class="circle"></div>
107 <div class="circle"></div>
108 </div>
109 </div>
110
111</body>
112</html>