animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to SVG Multi-Drip

model output

LLaMA 4 Scout

SVG Multi-Drip

A 0.68T 0.24
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.0">
6    <title>Animation</title>
7    <style>
8        body {
9            background-color: #000;
10            display: flex;
11            justify-content: center;
12            align-items: center;
13            height: 100vh;
14            margin: 0;
15        }
16        .animation-container {
17            position: relative;
18        }
19        .line {
20            position: absolute;
21            top: 50%;
22            left: 0;
23            transform: translateY(-50%);
24            width: 100%;
25            height: 2px;
26            background: linear-gradient(to right, #FF69B4, #FF0000);
27            filter: blur(2px);
28        }
29        .dots {
30            position: absolute;
31            top: 50%;
32            left: 0;
33            transform: translateY(-50%);
34            display: flex;
35            justify-content: space-between;
36            width: 100%;
37        }
38        .dot {
39            width: 4px;
40            height: 4px;
41            border-radius: 50%;
42            background-color: #FF69B4;
43            position: relative;
44            animation: dotAnimation 2s infinite;
45        }
46        .dot:nth-child(2n) {
47            background-color: #FF69B4;
48        }
49        .dot:nth-child(3n) {
50            background-color: #FF0000;
51        }
52        
53        @keyframes dotAnimation {
54            0% {
55                transform: translateX(0) scale(1);
56            }
57            100% {
58                transform: translateX(100%) scale(1);
59            }
60        }
61        
62        .dynamic-dots {
63            position: absolute;
64            top: 50%;
65            left: 0;
66            transform: translateY(-50%);
67            display: flex;
68        }
69        
70        .dynamic-dot {
71            width: 8px;
72            height: 8px;
73            border-radius: 50%;
74            background-color: #FF69B4;
75            animation: dynamicDotAnimation 2s infinite;
76        }
77        
78        @keyframes dynamicDotAnimation {
79            0% {
80                transform: translateX(0) scale(1);
81            }
82            100% {
83                transform: translateX(100%) scale(1);
84            }
85        }
86    </style>
87</head>
88<body>
89    <div class="animation-container">
90        <div class="line"></div>
91        <div class="dots">
92            <!-- dots will be generated dynamically -->
93        </div>
94        <div class="dynamic-dots">
95            <!-- dynamic dots will be generated dynamically -->
96        </div>
97    </div>
98    <script>
99        const dotsContainer = document.querySelector('.dots');
100        const dynamicDotsContainer = document.querySelector('.dynamic-dots');
101        const totalDots = 20; // Adjust based on design
102        const dynamicDots = 10; // Adjust based on design
103        
104        for (let i = 0; i < totalDots; i++) {
105            const dot = document.createElement('div');
106            dot.classList.add('dot');
107            dotsContainer.appendChild(dot);
108        }
109        
110        for (let i = 0; i < dynamicDots; i++) {
111            const dynamicDot = document.createElement('div');
112            dynamicDot.classList.add('dynamic-dot');
113            dynamicDotsContainer.appendChild(dynamicDot);
114        }
115    </script>
116</body>
117</html>