animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Nice spinny stuff

model output

Qwen3-VL-8B-Instruct

Nice spinny stuff

A 0.65T 0.11
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>Pink Dots Animation</title>
7    <style>
8        body {
9            margin: 0;
10            padding: 0;
11            background-color: white;
12            overflow: hidden;
13            display: flex;
14            justify-content: center;
15            align-items: center;
16            height: 100vh;
17        }
18        .dot-container {
19            position: relative;
20            width: 100%;
21            height: 100%;
22        }
23        .dot {
24            position: absolute;
25            background-color: #ffccdd;
26            border-radius: 50%;
27            width: 8px;
28            height: 8px;
29            animation: float 3s ease-in-out infinite;
30        }
31        @keyframes float {
32            0%, 100% {
33                transform: translateY(0) translateX(0);
34                opacity: 0.7;
35            }
36            50% {
37                transform: translateY(-20px) translateX(10px);
38                opacity: 1;
39            }
40        }
41    </style>
42</head>
43<body>
44    <div class="dot-container" id="dotContainer"></div>
45
46    <script>
47        const container = document.getElementById('dotContainer');
48        const dotCount = 15;
49        const maxDistance = 100;
50        const maxOpacity = 0.7;
51
52        for (let i = 0; i < dotCount; i++) {
53            const dot = document.createElement('div');
54            dot.classList.add('dot');
55            dot.style.left = `${Math.random() * 100}%`;
56            dot.style.top = `${Math.random() * 100}%`;
57            dot.style.animationDelay = `${Math.random() * 3}s`;
58            dot.style.opacity = `${Math.random() * maxOpacity + 0.3}`;
59            dot.style.animationDuration = `${Math.random() * 2 + 1}s`;
60            container.appendChild(dot);
61        }
62
63        // Add subtle movement to dots
64        const dots = document.querySelectorAll('.dot');
65        dots.forEach((dot, index) => {
66            const delay = index * 0.1;
67            const duration = Math.random() * 3 + 1;
68            const amplitude = Math.random() * 20 + 10;
69            const frequency = Math.random() * 0.5 + 0.1;
70
71            dot.style.animation = `float ${duration}s ease-in-out infinite ${delay}s`;
72            dot.style.animationTimingFunction = 'ease-in-out';
73        });
74    </script>
75</body>
76</html>