animation2code benchmark
For best compatibility, please view this dashboard in a Chrome browser.
← back to Only CSS: Pulse Box

model output

Qwen3-VL-8B-Instruct

Only CSS: Pulse Box

A 0.44T 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>Abstract Geometric Animation</title>
7    <style>
8        body {
9            margin: 0;
10            overflow: hidden;
11            background-color: black;
12        }
13        .shape {
14            position: absolute;
15            border: 2px solid;
16            border-radius: 5px;
17            transform-origin: center;
18            animation: rotate 4s linear infinite;
19        }
20        .green {
21            border-color: #00ff7f;
22            animation-delay: 0s;
23        }
24        .blue {
25            border-color: #0000ff;
26            animation-delay: 0.5s;
27        }
28        .teal {
29            border-color: #00ffff;
30            animation-delay: 1s;
31        }
32        @keyframes rotate {
33            0% {
34                transform: rotate(0deg) translate(0, 0);
35            }
36            100% {
37                transform: rotate(360deg) translate(0, 0);
38            }
39        }
40        @keyframes move {
41            0% {
42                transform: translate(0, 0);
43            }
44            50% {
45                transform: translate(100px, 100px);
46            }
47            100% {
48                transform: translate(0, 0);
49            }
50        }
51    </style>
52</head>
53<body>
54    <script>
55        function createShapes() {
56            const container = document.body;
57            const colors = ['#00ff7f', '#0000ff', '#00ffff'];
58            const shapes = [];
59
60            for (let i = 0; i < 20; i++) {
61                const shape = document.createElement('div');
62                shape.className = 'shape';
63                shape.style.width = `${Math.random() * 100 + 50}px`;
64                shape.style.height = `${Math.random() * 100 + 50}px`;
65                shape.style.left = `${Math.random() * 100}%`;
66                shape.style.top = `${Math.random() * 100}%`;
67                shape.style.animationDuration = `${Math.random() * 3 + 2}s`;
68                shape.style.animationDelay = `${Math.random() * 2}s`;
69                shape.style.borderRadius = `${Math.random() * 50 + 10}px`;
70                shape.style.transform = `rotate(${Math.random() * 360}deg)`;
71                shape.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
72                shape.style.boxShadow = `0 0 ${Math.random() * 50 + 10}px ${colors[Math.floor(Math.random() * colors.length)]}`;
73                container.appendChild(shape);
74                shapes.push(shape);
75            }
76
77            // Add animation for each shape
78            shapes.forEach((shape, index) => {
79                const delay = index * 0.1;
80                const duration = Math.random() * 3 + 2;
81                const color = colors[Math.floor(Math.random() * colors.length)];
82                shape.style.animation = `rotate ${duration}s linear ${delay}s infinite`;
83                shape.style.borderColor = color;
84                shape.style.animationName = 'rotate';
85            });
86        }
87
88        window.onload = createShapes;
89    </script>
90</body>
91</html>